public void improveDeviceCPU(MutableUserAgent userAgent, ClientHints clientHints) {
        // Improve the Device CPU has a better value.
        String architecture = clientHints.getArchitecture();
        String bitness = clientHints.getBitness();

        if (bitness != null && !bitness.isEmpty()) {
            overrideValue(userAgent.get(DEVICE_CPU_BITS), bitness);
        }

        if (architecture != null) {
            String newArchitecture;
            switch (architecture) {
                case "x86":
                    newArchitecture = "Intel x86_64";
                    if ("32".equals(bitness)) {
                        newArchitecture = "Intel x86";
                    }
                    break;
                case "arm":
                    newArchitecture = "ARM";
                    break;
                default:
                    newArchitecture = architecture;
                    break;
            }

            MutableAgentField deviceCpu = userAgent.get(DEVICE_CPU);
            overrideValue(deviceCpu, newArchitecture);
        }
    }
Some device names are "Generic" and thus must be overwritten if a Client hint is available.
analyzer/src/main/java/nl/basjes/parse/useragent/clienthints/ClientHintsAnalyzer.java