[pve-devel] [PATCH v3 qemu-server 2/7] cpumodel: add cpu models with flags

Alexandre Derumier aderumier at odiso.com
Mon May 22 12:25:23 CEST 2023


This is all qemu cpu models for qemu 8.0 with cpu flags
extracted from qemu cpu.c using
https://github.com/libvirt/libvirt/blob/master/src/cpu_map/sync_qemu_models_i386.py
(with some modifications, as the script is buggy, and override main model flags with
last version flags)

Signed-off-by: Alexandre Derumier <aderumier at odiso.com>
---
 PVE/QemuServer/CPUConfig.pm |   78 +-
 PVE/QemuServer/CPUModels.pm | 4211 +++++++++++++++++++++++++++++++++++
 PVE/QemuServer/Makefile     |    1 +
 3 files changed, 4220 insertions(+), 70 deletions(-)
 create mode 100644 PVE/QemuServer/CPUModels.pm

diff --git a/PVE/QemuServer/CPUConfig.pm b/PVE/QemuServer/CPUConfig.pm
index 54bbd55..758f93f 100644
--- a/PVE/QemuServer/CPUConfig.pm
+++ b/PVE/QemuServer/CPUConfig.pm
@@ -6,6 +6,7 @@ use warnings;
 use PVE::JSONSchema;
 use PVE::Cluster qw(cfs_register_file cfs_read_file);
 use PVE::QemuServer::Helpers qw(min_version);
+use PVE::QemuServer::CPUModels qw(get_default_cpu_models);
 
 use base qw(PVE::SectionConfig Exporter);
 
@@ -56,70 +57,7 @@ my $depreacated_cpu_map = {
     'Icelake-Client-noTSX' => 'Icelake-Server-noTSX',
 };
 
-my $cpu_vendor_list = {
-    # Intel CPUs
-    486 => 'GenuineIntel',
-    pentium => 'GenuineIntel',
-    pentium2 => 'GenuineIntel',
-    pentium3 => 'GenuineIntel',
-    coreduo => 'GenuineIntel',
-    core2duo => 'GenuineIntel',
-    Conroe => 'GenuineIntel',
-    Penryn => 'GenuineIntel',
-    Nehalem => 'GenuineIntel',
-    'Nehalem-IBRS' => 'GenuineIntel',
-    Westmere => 'GenuineIntel',
-    'Westmere-IBRS' => 'GenuineIntel',
-    SandyBridge => 'GenuineIntel',
-    'SandyBridge-IBRS' => 'GenuineIntel',
-    IvyBridge => 'GenuineIntel',
-    'IvyBridge-IBRS' => 'GenuineIntel',
-    Haswell => 'GenuineIntel',
-    'Haswell-IBRS' => 'GenuineIntel',
-    'Haswell-noTSX' => 'GenuineIntel',
-    'Haswell-noTSX-IBRS' => 'GenuineIntel',
-    Broadwell => 'GenuineIntel',
-    'Broadwell-IBRS' => 'GenuineIntel',
-    'Broadwell-noTSX' => 'GenuineIntel',
-    'Broadwell-noTSX-IBRS' => 'GenuineIntel',
-    'Skylake-Client' => 'GenuineIntel',
-    'Skylake-Client-IBRS' => 'GenuineIntel',
-    'Skylake-Client-noTSX-IBRS' => 'GenuineIntel',
-    'Skylake-Server' => 'GenuineIntel',
-    'Skylake-Server-IBRS' => 'GenuineIntel',
-    'Skylake-Server-noTSX-IBRS' => 'GenuineIntel',
-    'Cascadelake-Server' => 'GenuineIntel',
-    'Cascadelake-Server-noTSX' => 'GenuineIntel',
-    KnightsMill => 'GenuineIntel',
-    'Icelake-Client' => 'GenuineIntel', # depreacated, removed with QEMU 7.1
-    'Icelake-Client-noTSX' => 'GenuineIntel', # depreacated, removed with QEMU 7.1
-    'Icelake-Server' => 'GenuineIntel',
-    'Icelake-Server-noTSX' => 'GenuineIntel',
-
-    # AMD CPUs
-    athlon => 'AuthenticAMD',
-    phenom => 'AuthenticAMD',
-    Opteron_G1 => 'AuthenticAMD',
-    Opteron_G2 => 'AuthenticAMD',
-    Opteron_G3 => 'AuthenticAMD',
-    Opteron_G4 => 'AuthenticAMD',
-    Opteron_G5 => 'AuthenticAMD',
-    EPYC => 'AuthenticAMD',
-    'EPYC-IBPB' => 'AuthenticAMD',
-    'EPYC-Rome' => 'AuthenticAMD',
-    'EPYC-Milan' => 'AuthenticAMD',
-
-    # generic types, use vendor from host node
-    host => 'default',
-    kvm32 => 'default',
-    kvm64 => 'default',
-    qemu32 => 'default',
-    qemu64 => 'default',
-    'x86-64-v1' => 'default',
-    'x86-64-v2' => 'default',
-    'x86-64-v3' => 'default',
-    max => 'default',
-};
+my $qemu_cpu_models = get_default_cpu_models();
 
 my @supported_cpu_flags = (
     'pcid',
@@ -153,7 +91,7 @@ my $cpu_fmt = {
 	description => "CPU model and vendor to report to the guest. Must be a QEMU/KVM supported model."
 	    ." Only valid for custom CPU model definitions, default models will always report themselves to the guest OS.",
 	type => 'string',
-	enum => [ sort { lc("$a") cmp lc("$b") } keys %$cpu_vendor_list ],
+	enum => [ sort { lc("$a") cmp lc("$b") } keys %$qemu_cpu_models ],
 	default => 'kvm64',
 	optional => 1,
     },
@@ -234,7 +172,7 @@ sub validate_vm_cpu_conf {
 	get_custom_model($cputype);
     } else {
 	die "Built-in cputype '$cputype' is not defined (missing 'custom-' prefix?)\n"
-	    if !defined($cpu_vendor_list->{$cputype});
+	    if !defined($qemu_cpu_models->{$cputype});
     }
 
     # in a VM-specific config, certain properties are limited/forbidden
@@ -316,11 +254,11 @@ sub get_cpu_models {
 
     my $models = [];
 
-    for my $default_model (keys %{$cpu_vendor_list}) {
+    for my $default_model (keys %{$qemu_cpu_models}) {
 	push @$models, {
 	    name => $default_model,
 	    custom => 0,
-	    vendor => $cpu_vendor_list->{$default_model},
+	    vendor => $qemu_cpu_models->{$default_model}->{vendor},
 	};
     }
 
@@ -330,7 +268,7 @@ sub get_cpu_models {
     for my $custom_model (keys %{$conf->{ids}}) {
 	my $reported_model = $conf->{ids}->{$custom_model}->{'reported-model'};
 	$reported_model //= $cpu_fmt->{'reported-model'}->{default};
-	my $vendor = $cpu_vendor_list->{$reported_model};
+	my $vendor = $qemu_cpu_models->{$reported_model}->{vendor};
 	push @$models, {
 	    name => "custom-$custom_model",
 	    custom => 1,
@@ -550,7 +488,7 @@ sub get_cpu_options {
 
     # $cputype is the "reported-model" for custom types, so we can just look up
     # the vendor in the default list
-    my $cpu_vendor = $cpu_vendor_list->{$cputype};
+    my $cpu_vendor = $qemu_cpu_models->{$cputype}->{vendor};
     if ($cpu_vendor) {
 	$pve_forced_flags->{'vendor'} = {
 	    value => $cpu_vendor,
diff --git a/PVE/QemuServer/CPUModels.pm b/PVE/QemuServer/CPUModels.pm
new file mode 100644
index 0000000..20aacb1
--- /dev/null
+++ b/PVE/QemuServer/CPUModels.pm
@@ -0,0 +1,4211 @@
+package PVE::QemuServer::CPUModels;
+
+use strict;
+use warnings;
+
+use base 'Exporter';
+
+our @EXPORT_OK = qw(
+get_default_cpu_models
+);
+
+
+my $cpumodels = {
+    'Icelake-Client' => { # depreacated, removed with QEMU 7.1
+	vendor => 'GenuineIntel', # depreacated, removed with QEMU 7.1
+	family => 0,
+        model => 0,
+        version => 0,
+    },
+    'Icelake-Client-noTSX' => { # depreacated, removed with QEMU 7.1
+	vendor => 'GenuineIntel',
+	family => 0,
+        model => 0,
+        version => 0,
+    },
+    'host' => {
+        vendor => 'default',
+	family => 1,
+        model => 0,
+        version => 1,
+    },
+    'max' => {
+        vendor => 'default',
+	family => 1,
+        model => 0,
+        version => 1,
+    },
+    'x86-64-v1' => {
+        vendor => 'default',
+	family => 2,
+        model => 11,
+        version => 1,
+        flags => {
+            'apic' => 1,
+            'clflush' => 1,
+            'cmov' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'fpu' => 1,
+            'fxsr' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pge' => 1,
+            'pni' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'sep' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+	}
+    },
+    'x86-64-v2' => {
+        vendor => 'default',
+	family => 2,
+        model => 12,
+        version => 1,
+        flags => {
+            'apic' => 1,
+            'clflush' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'fpu' => 1,
+            'fxsr' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pge' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'sep' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'ssse3' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'vme' => 1,
+	    'aes' => 1,
+	}
+    },
+    'x86-64-v3' => {
+        vendor => 'default',
+	family => 2,
+        model => 13,
+        version => 1,
+        flags => {
+            'abm' => 1,
+            'aes' => 1,
+            'apic' => 1,
+            'arat' => 1,
+            'avx' => 1,
+            'avx2' => 1,
+            'bmi1' => 1,
+            'bmi2' => 1,
+            'clflush' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'f16c' => 1,
+            'fma' => 1,
+            'fpu' => 1,
+            'fsgsbase' => 1,
+            'fxsr' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'movbe' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pge' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdrand' => 1,
+            'rdtscp' => 1,
+            'sep' => 1,
+            'smep' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'ssse3' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'vme' => 1,
+            'xsave' => 1,
+            'xsaveopt' => 1,
+        },
+    },
+    'qemu64' => {
+        vendor => 'default',
+	family => 1,
+        model => 1,
+        version => 1,
+        flags => {
+            'apic' => 1,
+            'clflush' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'fpu' => 1,
+            'fxsr' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pge' => 1,
+            'pni' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'sep' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'svm' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+        },
+    },
+    'phenom' => {
+        vendor => 'AuthenticAMD',
+        model => 2,
+        version => 1,
+        flags => {
+            '3dnow' => 1,
+            '3dnowext' => 1,
+            'abm' => 1,
+            'apic' => 1,
+            'clflush' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'fpu' => 1,
+            'fxsr' => 1,
+            'fxsr_opt' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'mmxext' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'npt' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pdpe1gb' => 1,
+            'pge' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdtscp' => 1,
+            'sep' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4a' => 1,
+            'svm' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'vme' => 1,
+        },
+    },
+    'core2duo' => { 
+        vendor => 'GenuineIntel',
+        model => 15,
+	family => 6,
+        version => 1,
+        flags => {
+            'acpi' => 1,
+            'apic' => 1,
+            'clflush' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'fpu' => 1,
+            'fxsr' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pge' => 1,
+            'pni' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'sep' => 1,
+            'ss' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'ssse3' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'vme' => 1,
+        },
+    },
+    'kvm64' => {
+        vendor => 'default',
+	family => 2,
+        model => 6,
+        version => 1,
+        flags => {
+            'apic' => 1,
+            'clflush' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'fpu' => 1,
+            'fxsr' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pge' => 1,
+            'pni' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'sep' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'vme' => 1,
+        },
+    },
+    'qemu32' => {
+        vendor => 'default',
+	family => 1,
+        model => 6,
+        version => 1,
+        flags => {
+            'apic' => 1,
+            'cmov' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'fpu' => 1,
+            'fxsr' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'msr' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pge' => 1,
+            'pni' => 1,
+            'pse' => 1,
+            'sep' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'tsc' => 1,
+        },
+    },
+    'kvm32' => {
+        vendor => 'default',
+	family => 1,
+        model => 6,
+        version => 1,
+        flags => {
+            'apic' => 1,
+            'clflush' => 1,
+            'cmov' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'fpu' => 1,
+            'fxsr' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pge' => 1,
+            'pni' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'sep' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'tsc' => 1,
+            'vme' => 1,
+        },
+    },
+    'coreduo' => { 
+        vendor => 'GenuineIntel',
+	family => 6,
+        model => 14,
+        version => 1,
+        flags => {
+            'acpi' => 1,
+            'apic' => 1,
+            'clflush' => 1,
+            'cmov' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'fpu' => 1,
+            'fxsr' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pge' => 1,
+            'pni' => 1,
+            'pse' => 1,
+            'sep' => 1,
+            'ss' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'tsc' => 1,
+            'vme' => 1,
+        },
+    },
+    '486' => {
+        vendor => 'GenuineIntel',
+	family => 4,
+        model => 8,
+        version => 1,
+        flags => {
+            'fpu' => 1,
+            'pse' => 1,
+            'vme' => 1,
+        },
+    },
+    'pentium' => {
+        vendor => 'GenuineIntel',
+	family => 5,
+        model => 4,
+        version => 1,
+        flags => {
+            'apic' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'fpu' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'msr' => 1,
+            'pse' => 1,
+            'tsc' => 1,
+            'vme' => 1,
+        },
+    },
+    'pentium2' => {
+        vendor => 'GenuineIntel',
+	family => 6,
+        model => 5,
+        version => 1,
+        flags => {
+            'apic' => 1,
+            'cmov' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'fpu' => 1,
+            'fxsr' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pge' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'sep' => 1,
+            'tsc' => 1,
+            'vme' => 1,
+        },
+    },
+    'pentium3' => {
+        vendor => 'GenuineIntel',
+	family => 6,
+        model => 7,
+        version => 1,
+        flags => {
+            'apic' => 1,
+            'cmov' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'fpu' => 1,
+            'fxsr' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pge' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'sep' => 1,
+            'sse' => 1,
+            'tsc' => 1,
+            'vme' => 1,
+        },
+    },
+    'athlon' => {
+        vendor => 'AuthenticAMD',
+        model => 2,
+        version => 1,
+        flags => {
+            '3dnow' => 1,
+            '3dnowext' => 1,
+            'apic' => 1,
+            'cmov' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'fpu' => 1,
+            'fxsr' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'mmxext' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pge' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'sep' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'tsc' => 1,
+            'vme' => 1,
+        },
+    },
+    'Conroe' => {
+        vendor => 'GenuineIntel',
+	family => 6,
+        model => 15,
+        version => 1,
+        flags => {
+            'apic' => 1,
+            'clflush' => 1,
+            'cmov' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'fpu' => 1,
+            'fxsr' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pge' => 1,
+            'pni' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'sep' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'ssse3' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'vme' => 1,
+        },
+    },
+    'Penryn' => {
+        vendor => 'GenuineIntel',
+	family => 6,
+        model => 23,
+        version => 1,
+        flags => {
+            'apic' => 1,
+            'clflush' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'fpu' => 1,
+            'fxsr' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pge' => 1,
+            'pni' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'sep' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'ssse3' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'vme' => 1,
+        },
+    },
+    'Nehalem' => {
+        vendor => 'GenuineIntel',
+	family => 6,
+        model => 26,
+        version => 1,
+        flags => {
+            'apic' => 1,
+            'clflush' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'fpu' => 1,
+            'fxsr' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pge' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'sep' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'ssse3' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'vme' => 1,
+        },
+    },
+    'Nehalem-IBRS' => {
+        vendor => 'GenuineIntel',
+	family => 6,
+        model => 26,
+        version => 2,
+        flags => {
+            'apic' => 1,
+            'clflush' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'fpu' => 1,
+            'fxsr' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pge' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'sep' => 1,
+            'spec-ctrl' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'ssse3' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'vme' => 1,
+        },
+    },
+    'Westmere' => {
+        vendor => 'GenuineIntel',
+	family => 6,
+        model => 44,
+        version => 1,
+        flags => {
+            'aes' => 1,
+            'apic' => 1,
+            'arat' => 1,
+            'clflush' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'fpu' => 1,
+            'fxsr' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pclmuldq' => 1,
+            'pge' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'sep' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'ssse3' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'vme' => 1,
+        },
+    },
+    'Westmere-IBRS' => {
+        vendor => 'GenuineIntel',
+	family => 6,
+        model => 44,
+        version => 2,
+        flags => {
+            'aes' => 1,
+            'apic' => 1,
+            'arat' => 1,
+            'clflush' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'fpu' => 1,
+            'fxsr' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pclmuldq' => 1,
+            'pge' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'sep' => 1,
+            'spec-ctrl' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'ssse3' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'vme' => 1,
+        },
+    },
+    'SandyBridge' => {
+        vendor => 'GenuineIntel',
+	family => 6,
+        model => 45,
+        version => 1,
+        flags => {
+            'aes' => 1,
+            'apic' => 1,
+            'arat' => 1,
+            'avx' => 1,
+            'clflush' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'fpu' => 1,
+            'fxsr' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pclmuldq' => 1,
+            'pge' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdtscp' => 1,
+            'sep' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'ssse3' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'tsc-deadline' => 1,
+            'vme' => 1,
+            'x2apic' => 1,
+            'xsave' => 1,
+            'xsaveopt' => 1,
+        },
+    },
+    'SandyBridge-IBRS' => {
+        vendor => 'GenuineIntel',
+	family => 6,
+        model => 45,
+        version => 2,
+        flags => {
+            'aes' => 1,
+            'apic' => 1,
+            'arat' => 1,
+            'avx' => 1,
+            'clflush' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'fpu' => 1,
+            'fxsr' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pclmuldq' => 1,
+            'pge' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdtscp' => 1,
+            'sep' => 1,
+            'spec-ctrl' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'ssse3' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'tsc-deadline' => 1,
+            'vme' => 1,
+            'x2apic' => 1,
+            'xsave' => 1,
+            'xsaveopt' => 1,
+        },
+    },
+    'IvyBridge' => {
+        vendor => 'GenuineIntel',
+	family => 6,
+        model => 62,
+        version => 1,
+        flags => {
+            'aes' => 1,
+            'apic' => 1,
+            'arat' => 1,
+            'avx' => 1,
+            'clflush' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'erms' => 1,
+            'f16c' => 1,
+            'fpu' => 1,
+            'fsgsbase' => 1,
+            'fxsr' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pclmuldq' => 1,
+            'pge' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdrand' => 1,
+            'rdtscp' => 1,
+            'sep' => 1,
+            'smep' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'ssse3' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'tsc-deadline' => 1,
+            'vme' => 1,
+            'x2apic' => 1,
+            'xsave' => 1,
+            'xsaveopt' => 1,
+        },
+    },
+    'IvyBridge-IBRS' => {
+        vendor => 'GenuineIntel',
+	family => 6,
+        model => 62,
+        version => 2,
+        flags => {
+            'aes' => 1,
+            'apic' => 1,
+            'arat' => 1,
+            'avx' => 1,
+            'clflush' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'erms' => 1,
+            'f16c' => 1,
+            'fpu' => 1,
+            'fsgsbase' => 1,
+            'fxsr' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pclmuldq' => 1,
+            'pge' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdrand' => 1,
+            'rdtscp' => 1,
+            'sep' => 1,
+            'smep' => 1,
+            'spec-ctrl' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'ssse3' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'tsc-deadline' => 1,
+            'vme' => 1,
+            'x2apic' => 1,
+            'xsave' => 1,
+            'xsaveopt' => 1,
+        },
+    },
+    'Haswell' => {
+        vendor => 'GenuineIntel',
+	family => 6,
+        model => 63,
+        version => 1,
+        flags => {
+            'abm' => 1,
+            'aes' => 1,
+            'apic' => 1,
+            'arat' => 1,
+            'avx' => 1,
+            'avx2' => 1,
+            'bmi1' => 1,
+            'bmi2' => 1,
+            'clflush' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'erms' => 1,
+            'f16c' => 1,
+            'fma' => 1,
+            'fpu' => 1,
+            'fsgsbase' => 1,
+            'fxsr' => 1,
+            'hle' => 1,
+            'invpcid' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'movbe' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pcid' => 1,
+            'pclmuldq' => 1,
+            'pge' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdrand' => 1,
+            'rdtscp' => 1,
+            'rtm' => 1,
+            'sep' => 1,
+            'smep' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'ssse3' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'tsc-deadline' => 1,
+            'vme' => 1,
+            'x2apic' => 1,
+            'xsave' => 1,
+            'xsaveopt' => 1,
+        },
+    },
+    'Haswell-noTSX' => {
+        vendor => 'GenuineIntel',
+	family => 6,
+        model => 63,
+        version => 2,
+        flags => {
+            'abm' => 1,
+            'aes' => 1,
+            'apic' => 1,
+            'arat' => 1,
+            'avx' => 1,
+            'avx2' => 1,
+            'bmi1' => 1,
+            'bmi2' => 1,
+            'clflush' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'erms' => 1,
+            'f16c' => 1,
+            'fma' => 1,
+            'fpu' => 1,
+            'fsgsbase' => 1,
+            'fxsr' => 1,
+            'invpcid' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'movbe' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pcid' => 1,
+            'pclmuldq' => 1,
+            'pge' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdrand' => 1,
+            'rdtscp' => 1,
+            'sep' => 1,
+            'smep' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'ssse3' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'tsc-deadline' => 1,
+            'vme' => 1,
+            'x2apic' => 1,
+            'xsave' => 1,
+            'xsaveopt' => 1,
+        },
+    },
+    'Haswell-IBRS' => {
+        vendor => 'GenuineIntel',
+	family => 6,
+        model => 63,
+        version => 3,
+        flags => {
+            'abm' => 1,
+            'aes' => 1,
+            'apic' => 1,
+            'arat' => 1,
+            'avx' => 1,
+            'avx2' => 1,
+            'bmi1' => 1,
+            'bmi2' => 1,
+            'clflush' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'erms' => 1,
+            'f16c' => 1,
+            'fma' => 1,
+            'fpu' => 1,
+            'fsgsbase' => 1,
+            'fxsr' => 1,
+            'hle' => 1,
+            'invpcid' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'movbe' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pcid' => 1,
+            'pclmuldq' => 1,
+            'pge' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdrand' => 1,
+            'rdtscp' => 1,
+            'rtm' => 1,
+            'sep' => 1,
+            'smep' => 1,
+            'spec-ctrl' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'ssse3' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'tsc-deadline' => 1,
+            'vme' => 1,
+            'x2apic' => 1,
+            'xsave' => 1,
+            'xsaveopt' => 1,
+        },
+    },
+    'Haswell-noTSX-IBRS' => {
+        vendor => 'GenuineIntel',
+	family => 6,
+        model => 63,
+        version => 4,
+        flags => {
+            'abm' => 1,
+            'aes' => 1,
+            'apic' => 1,
+            'arat' => 1,
+            'avx' => 1,
+            'avx2' => 1,
+            'bmi1' => 1,
+            'bmi2' => 1,
+            'clflush' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'erms' => 1,
+            'f16c' => 1,
+            'fma' => 1,
+            'fpu' => 1,
+            'fsgsbase' => 1,
+            'fxsr' => 1,
+            'invpcid' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'movbe' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pcid' => 1,
+            'pclmuldq' => 1,
+            'pge' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdrand' => 1,
+            'rdtscp' => 1,
+            'sep' => 1,
+            'smep' => 1,
+            'spec-ctrl' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'ssse3' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'tsc-deadline' => 1,
+            'vme' => 1,
+            'x2apic' => 1,
+            'xsave' => 1,
+            'xsaveopt' => 1,
+        },
+    },
+    'Broadwell' => {
+        vendor => 'GenuineIntel',
+	family => 6,
+        model => 79,
+        version => 1,
+        flags => {
+            '3dnowprefetch' => 1,
+            'abm' => 1,
+            'adx' => 1,
+            'aes' => 1,
+            'apic' => 1,
+            'arat' => 1,
+            'avx' => 1,
+            'avx2' => 1,
+            'bmi1' => 1,
+            'bmi2' => 1,
+            'clflush' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'erms' => 1,
+            'f16c' => 1,
+            'fma' => 1,
+            'fpu' => 1,
+            'fsgsbase' => 1,
+            'fxsr' => 1,
+            'hle' => 1,
+            'invpcid' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'movbe' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pcid' => 1,
+            'pclmuldq' => 1,
+            'pge' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdrand' => 1,
+            'rdseed' => 1,
+            'rdtscp' => 1,
+            'rtm' => 1,
+            'sep' => 1,
+            'smap' => 1,
+            'smep' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'ssse3' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'tsc-deadline' => 1,
+            'vme' => 1,
+            'x2apic' => 1,
+            'xsave' => 1,
+            'xsaveopt' => 1,
+        },
+    },
+    'Broadwell-noTSX' => {
+        vendor => 'GenuineIntel',
+	family => 6,
+        model => 79,
+        version => 2,
+        flags => {
+            '3dnowprefetch' => 1,
+            'abm' => 1,
+            'adx' => 1,
+            'aes' => 1,
+            'apic' => 1,
+            'arat' => 1,
+            'avx' => 1,
+            'avx2' => 1,
+            'bmi1' => 1,
+            'bmi2' => 1,
+            'clflush' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'erms' => 1,
+            'f16c' => 1,
+            'fma' => 1,
+            'fpu' => 1,
+            'fsgsbase' => 1,
+            'fxsr' => 1,
+            'invpcid' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'movbe' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pcid' => 1,
+            'pclmuldq' => 1,
+            'pge' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdrand' => 1,
+            'rdseed' => 1,
+            'rdtscp' => 1,
+            'sep' => 1,
+            'smap' => 1,
+            'smep' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'ssse3' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'tsc-deadline' => 1,
+            'vme' => 1,
+            'x2apic' => 1,
+            'xsave' => 1,
+            'xsaveopt' => 1,
+        },
+    },
+    'Broadwell-IBRS' => {
+        vendor => 'GenuineIntel',
+	family => 6,
+        model => 79,
+        version => 3,
+        flags => {
+            '3dnowprefetch' => 1,
+            'abm' => 1,
+            'adx' => 1,
+            'aes' => 1,
+            'apic' => 1,
+            'arat' => 1,
+            'avx' => 1,
+            'avx2' => 1,
+            'bmi1' => 1,
+            'bmi2' => 1,
+            'clflush' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'erms' => 1,
+            'f16c' => 1,
+            'fma' => 1,
+            'fpu' => 1,
+            'fsgsbase' => 1,
+            'fxsr' => 1,
+            'hle' => 1,
+            'invpcid' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'movbe' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pcid' => 1,
+            'pclmuldq' => 1,
+            'pge' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdrand' => 1,
+            'rdseed' => 1,
+            'rdtscp' => 1,
+            'rtm' => 1,
+            'sep' => 1,
+            'smap' => 1,
+            'smep' => 1,
+            'spec-ctrl' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'ssse3' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'tsc-deadline' => 1,
+            'vme' => 1,
+            'x2apic' => 1,
+            'xsave' => 1,
+            'xsaveopt' => 1,
+        },
+    },
+    'Broadwell-noTSX-IBRS' => {
+        vendor => 'GenuineIntel',
+	family => 6,
+        model => 79,
+        version => 4,
+        flags => {
+            '3dnowprefetch' => 1,
+            'abm' => 1,
+            'adx' => 1,
+            'aes' => 1,
+            'apic' => 1,
+            'arat' => 1,
+            'avx' => 1,
+            'avx2' => 1,
+            'bmi1' => 1,
+            'bmi2' => 1,
+            'clflush' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'erms' => 1,
+            'f16c' => 1,
+            'fma' => 1,
+            'fpu' => 1,
+            'fsgsbase' => 1,
+            'fxsr' => 1,
+            'invpcid' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'movbe' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pcid' => 1,
+            'pclmuldq' => 1,
+            'pge' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdrand' => 1,
+            'rdseed' => 1,
+            'rdtscp' => 1,
+            'sep' => 1,
+            'smap' => 1,
+            'smep' => 1,
+            'spec-ctrl' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'ssse3' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'tsc-deadline' => 1,
+            'vme' => 1,
+            'x2apic' => 1,
+            'xsave' => 1,
+            'xsaveopt' => 1,
+        },
+    },
+    'Skylake-Client' => {
+        vendor => 'GenuineIntel',
+	family => 6,
+        model => 78,
+        version => 1,
+        flags => {
+            '3dnowprefetch' => 1,
+            'abm' => 1,
+            'adx' => 1,
+            'aes' => 1,
+            'apic' => 1,
+            'arat' => 1,
+            'avx' => 1,
+            'avx2' => 1,
+            'bmi1' => 1,
+            'bmi2' => 1,
+            'clflush' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'erms' => 1,
+            'f16c' => 1,
+            'fma' => 1,
+            'fpu' => 1,
+            'fsgsbase' => 1,
+            'fxsr' => 1,
+            'hle' => 1,
+            'invpcid' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'movbe' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pcid' => 1,
+            'pclmuldq' => 1,
+            'pge' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdrand' => 1,
+            'rdseed' => 1,
+            'rdtscp' => 1,
+            'rtm' => 1,
+            'sep' => 1,
+            'smap' => 1,
+            'smep' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'ssse3' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'tsc-deadline' => 1,
+            'vme' => 1,
+            'x2apic' => 1,
+            'xgetbv1' => 1,
+            'xsave' => 1,
+            'xsavec' => 1,
+            'xsaveopt' => 1,
+        },
+    },
+    'Skylake-Client-IBRS' => {
+        vendor => 'GenuineIntel',
+	family => 6,
+        model => 78,
+        version => 2,
+        flags => {
+            '3dnowprefetch' => 1,
+            'abm' => 1,
+            'adx' => 1,
+            'aes' => 1,
+            'apic' => 1,
+            'arat' => 1,
+            'avx' => 1,
+            'avx2' => 1,
+            'bmi1' => 1,
+            'bmi2' => 1,
+            'clflush' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'erms' => 1,
+            'f16c' => 1,
+            'fma' => 1,
+            'fpu' => 1,
+            'fsgsbase' => 1,
+            'fxsr' => 1,
+            'hle' => 1,
+            'invpcid' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'movbe' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pcid' => 1,
+            'pclmuldq' => 1,
+            'pge' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdrand' => 1,
+            'rdseed' => 1,
+            'rdtscp' => 1,
+            'rtm' => 1,
+            'sep' => 1,
+            'smap' => 1,
+            'smep' => 1,
+            'spec-ctrl' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'ssse3' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'tsc-deadline' => 1,
+            'vme' => 1,
+            'x2apic' => 1,
+            'xgetbv1' => 1,
+            'xsave' => 1,
+            'xsavec' => 1,
+            'xsaveopt' => 1,
+        },
+    },
+    'Skylake-Client-noTSX-IBRS' => {
+        vendor => 'GenuineIntel',
+	family => 6,
+        model => 78,
+        version => 3,
+        flags => {
+            '3dnowprefetch' => 1,
+            'abm' => 1,
+            'adx' => 1,
+            'aes' => 1,
+            'apic' => 1,
+            'arat' => 1,
+            'avx' => 1,
+            'avx2' => 1,
+            'bmi1' => 1,
+            'bmi2' => 1,
+            'clflush' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'erms' => 1,
+            'f16c' => 1,
+            'fma' => 1,
+            'fpu' => 1,
+            'fsgsbase' => 1,
+            'fxsr' => 1,
+            'invpcid' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'movbe' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pcid' => 1,
+            'pclmuldq' => 1,
+            'pge' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdrand' => 1,
+            'rdseed' => 1,
+            'rdtscp' => 1,
+            'sep' => 1,
+            'smap' => 1,
+            'smep' => 1,
+            'spec-ctrl' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'ssse3' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'tsc-deadline' => 1,
+            'vme' => 1,
+            'x2apic' => 1,
+            'xgetbv1' => 1,
+            'xsave' => 1,
+            'xsavec' => 1,
+            'xsaveopt' => 1,
+        },
+    },
+    'Skylake-Client-v4' => {
+        vendor => 'GenuineIntel',
+	family => 6,
+        model => 78,
+        version => 4,
+        flags => {
+            '3dnowprefetch' => 1,
+            'abm' => 1,
+            'adx' => 1,
+            'aes' => 1,
+            'apic' => 1,
+            'arat' => 1,
+            'avx' => 1,
+            'avx2' => 1,
+            'bmi1' => 1,
+            'bmi2' => 1,
+            'clflush' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'erms' => 1,
+            'f16c' => 1,
+            'fma' => 1,
+            'fpu' => 1,
+            'fsgsbase' => 1,
+            'fxsr' => 1,
+            'invpcid' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'movbe' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pcid' => 1,
+            'pclmuldq' => 1,
+            'pge' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdrand' => 1,
+            'rdseed' => 1,
+            'rdtscp' => 1,
+            'sep' => 1,
+            'smap' => 1,
+            'smep' => 1,
+            'spec-ctrl' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'ssse3' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'tsc-deadline' => 1,
+            'vme' => 1,
+            'x2apic' => 1,
+            'xgetbv1' => 1,
+            'xsave' => 1,
+            'xsavec' => 1,
+            'xsaveopt' => 1,
+            'xsaves' => 1,
+        },
+    },
+    'Skylake-Server' => {
+        vendor => 'GenuineIntel',
+	family => 6,
+        model => 85,
+        version => 1,
+        flags => {
+            '3dnowprefetch' => 1,
+            'abm' => 1,
+            'adx' => 1,
+            'aes' => 1,
+            'apic' => 1,
+            'arat' => 1,
+            'avx' => 1,
+            'avx2' => 1,
+            'avx512bw' => 1,
+            'avx512cd' => 1,
+            'avx512dq' => 1,
+            'avx512f' => 1,
+            'avx512vl' => 1,
+            'bmi1' => 1,
+            'bmi2' => 1,
+            'clflush' => 1,
+            'clflushopt' => 1,
+            'clwb' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'erms' => 1,
+            'f16c' => 1,
+            'fma' => 1,
+            'fpu' => 1,
+            'fsgsbase' => 1,
+            'fxsr' => 1,
+            'hle' => 1,
+            'invpcid' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'movbe' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pcid' => 1,
+            'pclmuldq' => 1,
+            'pdpe1gb' => 1,
+            'pge' => 1,
+            'pku' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdrand' => 1,
+            'rdseed' => 1,
+            'rdtscp' => 1,
+            'rtm' => 1,
+            'sep' => 1,
+            'smap' => 1,
+            'smep' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'ssse3' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'tsc-deadline' => 1,
+            'vme' => 1,
+            'x2apic' => 1,
+            'xgetbv1' => 1,
+            'xsave' => 1,
+            'xsavec' => 1,
+            'xsaveopt' => 1,
+        },
+    },
+    'Skylake-Server-IBRS' => {
+        vendor => 'GenuineIntel',
+	family => 6,
+        model => 85,
+        version => 2,
+        flags => {
+            '3dnowprefetch' => 1,
+            'abm' => 1,
+            'adx' => 1,
+            'aes' => 1,
+            'apic' => 1,
+            'arat' => 1,
+            'avx' => 1,
+            'avx2' => 1,
+            'avx512bw' => 1,
+            'avx512cd' => 1,
+            'avx512dq' => 1,
+            'avx512f' => 1,
+            'avx512vl' => 1,
+            'bmi1' => 1,
+            'bmi2' => 1,
+            'clflush' => 1,
+            'clwb' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'erms' => 1,
+            'f16c' => 1,
+            'fma' => 1,
+            'fpu' => 1,
+            'fsgsbase' => 1,
+            'fxsr' => 1,
+            'hle' => 1,
+            'invpcid' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'movbe' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pcid' => 1,
+            'pclmuldq' => 1,
+            'pdpe1gb' => 1,
+            'pge' => 1,
+            'pku' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdrand' => 1,
+            'rdseed' => 1,
+            'rdtscp' => 1,
+            'rtm' => 1,
+            'sep' => 1,
+            'smap' => 1,
+            'smep' => 1,
+            'spec-ctrl' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'ssse3' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'tsc-deadline' => 1,
+            'vme' => 1,
+            'x2apic' => 1,
+            'xgetbv1' => 1,
+            'xsave' => 1,
+            'xsavec' => 1,
+            'xsaveopt' => 1,
+        },
+    },
+    'Skylake-Server-noTSX-IBRS' => {
+        vendor => 'GenuineIntel',
+	family => 6,
+        model => 85,
+        version => 3,
+        flags => {
+            '3dnowprefetch' => 1,
+            'abm' => 1,
+            'adx' => 1,
+            'aes' => 1,
+            'apic' => 1,
+            'arat' => 1,
+            'avx' => 1,
+            'avx2' => 1,
+            'avx512bw' => 1,
+            'avx512cd' => 1,
+            'avx512dq' => 1,
+            'avx512f' => 1,
+            'avx512vl' => 1,
+            'bmi1' => 1,
+            'bmi2' => 1,
+            'clflush' => 1,
+            'clwb' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'erms' => 1,
+            'f16c' => 1,
+            'fma' => 1,
+            'fpu' => 1,
+            'fsgsbase' => 1,
+            'fxsr' => 1,
+            'invpcid' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'movbe' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pcid' => 1,
+            'pclmuldq' => 1,
+            'pdpe1gb' => 1,
+            'pge' => 1,
+            'pku' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdrand' => 1,
+            'rdseed' => 1,
+            'rdtscp' => 1,
+            'sep' => 1,
+            'smap' => 1,
+            'smep' => 1,
+            'spec-ctrl' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'ssse3' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'tsc-deadline' => 1,
+            'vme' => 1,
+            'x2apic' => 1,
+            'xgetbv1' => 1,
+            'xsave' => 1,
+            'xsavec' => 1,
+            'xsaveopt' => 1,
+        },
+    },
+    'Skylake-Server-v4' => {
+        vendor => 'GenuineIntel',
+	family => 6,
+        model => 85,
+        version => 4,
+        flags => {
+            '3dnowprefetch' => 1,
+            'abm' => 1,
+            'adx' => 1,
+            'aes' => 1,
+            'apic' => 1,
+            'arat' => 1,
+            'avx' => 1,
+            'avx2' => 1,
+            'avx512bw' => 1,
+            'avx512cd' => 1,
+            'avx512dq' => 1,
+            'avx512f' => 1,
+            'avx512vl' => 1,
+            'bmi1' => 1,
+            'bmi2' => 1,
+            'clflush' => 1,
+            'clwb' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'erms' => 1,
+            'f16c' => 1,
+            'fma' => 1,
+            'fpu' => 1,
+            'fsgsbase' => 1,
+            'fxsr' => 1,
+            'invpcid' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'movbe' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pcid' => 1,
+            'pclmuldq' => 1,
+            'pdpe1gb' => 1,
+            'pge' => 1,
+            'pku' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdrand' => 1,
+            'rdseed' => 1,
+            'rdtscp' => 1,
+            'sep' => 1,
+            'smap' => 1,
+            'smep' => 1,
+            'spec-ctrl' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'ssse3' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'tsc-deadline' => 1,
+            'vme' => 1,
+            'x2apic' => 1,
+            'xgetbv1' => 1,
+            'xsave' => 1,
+            'xsavec' => 1,
+            'xsaveopt' => 1,
+        },
+    },
+    'Skylake-Server-v5' => {
+        vendor => 'GenuineIntel',
+	family => 6,
+        model => 85,
+        version => 5,
+        flags => {
+            '3dnowprefetch' => 1,
+            'abm' => 1,
+            'adx' => 1,
+            'aes' => 1,
+            'apic' => 1,
+            'arat' => 1,
+            'avx' => 1,
+            'avx2' => 1,
+            'avx512bw' => 1,
+            'avx512cd' => 1,
+            'avx512dq' => 1,
+            'avx512f' => 1,
+            'avx512vl' => 1,
+            'bmi1' => 1,
+            'bmi2' => 1,
+            'clflush' => 1,
+            'clwb' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'erms' => 1,
+            'f16c' => 1,
+            'fma' => 1,
+            'fpu' => 1,
+            'fsgsbase' => 1,
+            'fxsr' => 1,
+            'invpcid' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'movbe' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pcid' => 1,
+            'pclmuldq' => 1,
+            'pdpe1gb' => 1,
+            'pge' => 1,
+            'pku' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdrand' => 1,
+            'rdseed' => 1,
+            'rdtscp' => 1,
+            'sep' => 1,
+            'smap' => 1,
+            'smep' => 1,
+            'spec-ctrl' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'ssse3' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'tsc-deadline' => 1,
+            'vme' => 1,
+            'x2apic' => 1,
+            'xgetbv1' => 1,
+            'xsave' => 1,
+            'xsavec' => 1,
+            'xsaveopt' => 1,
+            'xsaves' => 1,
+        },
+    },
+    'Cascadelake-Server' => {
+        vendor => 'GenuineIntel',
+	family => 6,
+        model => 86,
+        version => 1,
+        flags => {
+            '3dnowprefetch' => 1,
+            'abm' => 1,
+            'adx' => 1,
+            'aes' => 1,
+            'apic' => 1,
+            'arat' => 1,
+            'avx' => 1,
+            'avx2' => 1,
+            'avx512bw' => 1,
+            'avx512cd' => 1,
+            'avx512dq' => 1,
+            'avx512f' => 1,
+            'avx512vl' => 1,
+            'avx512vnni' => 1,
+            'bmi1' => 1,
+            'bmi2' => 1,
+            'clflush' => 1,
+            'clflushopt' => 1,
+            'clwb' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'erms' => 1,
+            'f16c' => 1,
+            'fma' => 1,
+            'fpu' => 1,
+            'fsgsbase' => 1,
+            'fxsr' => 1,
+            'hle' => 1,
+            'invpcid' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'movbe' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pcid' => 1,
+            'pclmuldq' => 1,
+            'pdpe1gb' => 1,
+            'pge' => 1,
+            'pku' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdrand' => 1,
+            'rdseed' => 1,
+            'rdtscp' => 1,
+            'rtm' => 1,
+            'sep' => 1,
+            'smap' => 1,
+            'smep' => 1,
+            'spec-ctrl' => 1,
+            'ssbd' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'ssse3' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'tsc-deadline' => 1,
+            'vme' => 1,
+            'x2apic' => 1,
+            'xgetbv1' => 1,
+            'xsave' => 1,
+            'xsavec' => 1,
+            'xsaveopt' => 1,
+        },
+    },
+    'Cascadelake-Server-v2' => {
+        vendor => 'GenuineIntel',
+	family => 6,
+        model => 86,
+        version => 2,
+        flags => {
+            '3dnowprefetch' => 1,
+            'abm' => 1,
+            'adx' => 1,
+            'aes' => 1,
+            'apic' => 1,
+            'arat' => 1,
+            'arch-capabilities' => 1,
+            'avx' => 1,
+            'avx2' => 1,
+            'avx512bw' => 1,
+            'avx512cd' => 1,
+            'avx512dq' => 1,
+            'avx512f' => 1,
+            'avx512vl' => 1,
+            'avx512vnni' => 1,
+            'bmi1' => 1,
+            'bmi2' => 1,
+            'clflush' => 1,
+            'clflushopt' => 1,
+            'clwb' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'erms' => 1,
+            'f16c' => 1,
+            'fma' => 1,
+            'fpu' => 1,
+            'fsgsbase' => 1,
+            'fxsr' => 1,
+            'hle' => 1,
+            'ibrs-all' => 1,
+            'invpcid' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mds-no' => 1,
+            'mmx' => 1,
+            'movbe' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pcid' => 1,
+            'pclmuldq' => 1,
+            'pdpe1gb' => 1,
+            'pge' => 1,
+            'pku' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdctl-no' => 1,
+            'rdrand' => 1,
+            'rdseed' => 1,
+            'rdtscp' => 1,
+            'rtm' => 1,
+            'sep' => 1,
+            'skip-l1dfl-vmentry' => 1,
+            'smap' => 1,
+            'smep' => 1,
+            'spec-ctrl' => 1,
+            'ssbd' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'ssse3' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'tsc-deadline' => 1,
+            'vme' => 1,
+            'x2apic' => 1,
+            'xgetbv1' => 1,
+            'xsave' => 1,
+            'xsavec' => 1,
+            'xsaveopt' => 1,
+        },
+    },
+    'Cascadelake-Server-noTSX' => {
+        vendor => 'GenuineIntel',
+	family => 6,
+        model => 86,
+        version => 3,
+        flags => {
+            '3dnowprefetch' => 1,
+            'abm' => 1,
+            'adx' => 1,
+            'aes' => 1,
+            'apic' => 1,
+            'arat' => 1,
+            'arch-capabilities' => 1,
+            'avx' => 1,
+            'avx2' => 1,
+            'avx512bw' => 1,
+            'avx512cd' => 1,
+            'avx512dq' => 1,
+            'avx512f' => 1,
+            'avx512vl' => 1,
+            'avx512vnni' => 1,
+            'bmi1' => 1,
+            'bmi2' => 1,
+            'clflush' => 1,
+            'clflushopt' => 1,
+            'clwb' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'erms' => 1,
+            'f16c' => 1,
+            'fma' => 1,
+            'fpu' => 1,
+            'fsgsbase' => 1,
+            'fxsr' => 1,
+            'ibrs-all' => 1,
+            'invpcid' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mds-no' => 1,
+            'mmx' => 1,
+            'movbe' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pcid' => 1,
+            'pclmuldq' => 1,
+            'pdpe1gb' => 1,
+            'pge' => 1,
+            'pku' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdctl-no' => 1,
+            'rdrand' => 1,
+            'rdseed' => 1,
+            'rdtscp' => 1,
+            'sep' => 1,
+            'skip-l1dfl-vmentry' => 1,
+            'smap' => 1,
+            'smep' => 1,
+            'spec-ctrl' => 1,
+            'ssbd' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'ssse3' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'tsc-deadline' => 1,
+            'vme' => 1,
+            'x2apic' => 1,
+            'xgetbv1' => 1,
+            'xsave' => 1,
+            'xsavec' => 1,
+            'xsaveopt' => 1,
+        },
+    },
+    'Cascadelake-Server-v4' => {
+        vendor => 'GenuineIntel',
+	family => 6,
+        model => 86,
+        version => 4,
+        flags => {
+            '3dnowprefetch' => 1,
+            'abm' => 1,
+            'adx' => 1,
+            'aes' => 1,
+            'apic' => 1,
+            'arat' => 1,
+            'arch-capabilities' => 1,
+            'avx' => 1,
+            'avx2' => 1,
+            'avx512bw' => 1,
+            'avx512cd' => 1,
+            'avx512dq' => 1,
+            'avx512f' => 1,
+            'avx512vl' => 1,
+            'avx512vnni' => 1,
+            'bmi1' => 1,
+            'bmi2' => 1,
+            'clflush' => 1,
+            'clflushopt' => 1,
+            'clwb' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'erms' => 1,
+            'f16c' => 1,
+            'fma' => 1,
+            'fpu' => 1,
+            'fsgsbase' => 1,
+            'fxsr' => 1,
+            'ibrs-all' => 1,
+            'invpcid' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mds-no' => 1,
+            'mmx' => 1,
+            'movbe' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pcid' => 1,
+            'pclmuldq' => 1,
+            'pdpe1gb' => 1,
+            'pge' => 1,
+            'pku' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdctl-no' => 1,
+            'rdrand' => 1,
+            'rdseed' => 1,
+            'rdtscp' => 1,
+            'sep' => 1,
+            'skip-l1dfl-vmentry' => 1,
+            'smap' => 1,
+            'smep' => 1,
+            'spec-ctrl' => 1,
+            'ssbd' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'ssse3' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'tsc-deadline' => 1,
+            'vme' => 1,
+            'x2apic' => 1,
+            'xgetbv1' => 1,
+            'xsave' => 1,
+            'xsavec' => 1,
+            'xsaveopt' => 1,
+        },
+    },
+    'Cascadelake-Server-v5' => {
+        vendor => 'GenuineIntel',
+	family => 6,
+        model => 86,
+        version => 5,
+        flags => {
+            '3dnowprefetch' => 1,
+            'abm' => 1,
+            'adx' => 1,
+            'aes' => 1,
+            'apic' => 1,
+            'arat' => 1,
+            'arch-capabilities' => 1,
+            'avx' => 1,
+            'avx2' => 1,
+            'avx512bw' => 1,
+            'avx512cd' => 1,
+            'avx512dq' => 1,
+            'avx512f' => 1,
+            'avx512vl' => 1,
+            'avx512vnni' => 1,
+            'bmi1' => 1,
+            'bmi2' => 1,
+            'clflush' => 1,
+            'clflushopt' => 1,
+            'clwb' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'erms' => 1,
+            'f16c' => 1,
+            'fma' => 1,
+            'fpu' => 1,
+            'fsgsbase' => 1,
+            'fxsr' => 1,
+            'ibrs-all' => 1,
+            'invpcid' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mds-no' => 1,
+            'mmx' => 1,
+            'movbe' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pcid' => 1,
+            'pclmuldq' => 1,
+            'pdpe1gb' => 1,
+            'pge' => 1,
+            'pku' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdctl-no' => 1,
+            'rdrand' => 1,
+            'rdseed' => 1,
+            'rdtscp' => 1,
+            'sep' => 1,
+            'skip-l1dfl-vmentry' => 1,
+            'smap' => 1,
+            'smep' => 1,
+            'spec-ctrl' => 1,
+            'ssbd' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'ssse3' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'tsc-deadline' => 1,
+            'vme' => 1,
+            'x2apic' => 1,
+            'xgetbv1' => 1,
+            'xsave' => 1,
+            'xsavec' => 1,
+            'xsaveopt' => 1,
+            'xsaves' => 1,
+        },
+    },
+    'Cooperlake' => {
+        vendor => 'GenuineIntel',
+	family => 6,
+        model => 87,
+        version => 1,
+        flags => {
+            '3dnowprefetch' => 1,
+            'abm' => 1,
+            'adx' => 1,
+            'aes' => 1,
+            'apic' => 1,
+            'arat' => 1,
+            'arch-capabilities' => 1,
+            'avx' => 1,
+            'avx2' => 1,
+            'avx512-bf16' => 1,
+            'avx512bw' => 1,
+            'avx512cd' => 1,
+            'avx512dq' => 1,
+            'avx512f' => 1,
+            'avx512vl' => 1,
+            'avx512vnni' => 1,
+            'bmi1' => 1,
+            'bmi2' => 1,
+            'clflush' => 1,
+            'clflushopt' => 1,
+            'clwb' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'erms' => 1,
+            'f16c' => 1,
+            'fma' => 1,
+            'fpu' => 1,
+            'fsgsbase' => 1,
+            'fxsr' => 1,
+            'hle' => 1,
+            'ibrs-all' => 1,
+            'invpcid' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mds-no' => 1,
+            'mmx' => 1,
+            'movbe' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pcid' => 1,
+            'pclmuldq' => 1,
+            'pdpe1gb' => 1,
+            'pge' => 1,
+            'pku' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pschange-mc-no' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdctl-no' => 1,
+            'rdrand' => 1,
+            'rdseed' => 1,
+            'rdtscp' => 1,
+            'rtm' => 1,
+            'sep' => 1,
+            'skip-l1dfl-vmentry' => 1,
+            'smap' => 1,
+            'smep' => 1,
+            'spec-ctrl' => 1,
+            'ssbd' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'ssse3' => 1,
+            'stibp' => 1,
+            'syscall' => 1,
+            'taa-no' => 1,
+            'tsc' => 1,
+            'tsc-deadline' => 1,
+            'vme' => 1,
+            'x2apic' => 1,
+            'xgetbv1' => 1,
+            'xsave' => 1,
+            'xsavec' => 1,
+            'xsaveopt' => 1,
+        },
+    },
+    'Cooperlake-v2' => { 
+        vendor => 'GenuineIntel',
+	family => 6,
+        model => 87,
+        version => 2,
+        flags => {
+            '3dnowprefetch' => 1,
+            'abm' => 1,
+            'adx' => 1,
+            'aes' => 1,
+            'apic' => 1,
+            'arat' => 1,
+            'arch-capabilities' => 1,
+            'avx' => 1,
+            'avx2' => 1,
+            'avx512-bf16' => 1,
+            'avx512bw' => 1,
+            'avx512cd' => 1,
+            'avx512dq' => 1,
+            'avx512f' => 1,
+            'avx512vl' => 1,
+            'avx512vnni' => 1,
+            'bmi1' => 1,
+            'bmi2' => 1,
+            'clflush' => 1,
+            'clflushopt' => 1,
+            'clwb' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'erms' => 1,
+            'f16c' => 1,
+            'fma' => 1,
+            'fpu' => 1,
+            'fsgsbase' => 1,
+            'fxsr' => 1,
+            'hle' => 1,
+            'ibrs-all' => 1,
+            'invpcid' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mds-no' => 1,
+            'mmx' => 1,
+            'movbe' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pcid' => 1,
+            'pclmuldq' => 1,
+            'pdpe1gb' => 1,
+            'pge' => 1,
+            'pku' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pschange-mc-no' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdctl-no' => 1,
+            'rdrand' => 1,
+            'rdseed' => 1,
+            'rdtscp' => 1,
+            'rtm' => 1,
+            'sep' => 1,
+            'skip-l1dfl-vmentry' => 1,
+            'smap' => 1,
+            'smep' => 1,
+            'spec-ctrl' => 1,
+            'ssbd' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'ssse3' => 1,
+            'stibp' => 1,
+            'syscall' => 1,
+            'taa-no' => 1,
+            'tsc' => 1,
+            'tsc-deadline' => 1,
+            'vme' => 1,
+            'x2apic' => 1,
+            'xgetbv1' => 1,
+            'xsave' => 1,
+            'xsavec' => 1,
+            'xsaveopt' => 1,
+            'xsaves' => 1,
+        },
+    },
+    'Icelake-Server' => {
+        vendor => 'GenuineIntel',
+	family => 6,
+        model => 134,
+        version => 1,
+        flags => {
+            '3dnowprefetch' => 1,
+            'abm' => 1,
+            'adx' => 1,
+            'aes' => 1,
+            'apic' => 1,
+            'arat' => 1,
+            'avx' => 1,
+            'avx2' => 1,
+            'avx512-vpopcntdq' => 1,
+            'avx512bitalg' => 1,
+            'avx512bw' => 1,
+            'avx512cd' => 1,
+            'avx512dq' => 1,
+            'avx512f' => 1,
+            'avx512vbmi' => 1,
+            'avx512vbmi2' => 1,
+            'avx512vl' => 1,
+            'avx512vnni' => 1,
+            'bmi1' => 1,
+            'bmi2' => 1,
+            'clflush' => 1,
+            'clflushopt' => 1,
+            'clwb' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'erms' => 1,
+            'f16c' => 1,
+            'fma' => 1,
+            'fpu' => 1,
+            'fsgsbase' => 1,
+            'fxsr' => 1,
+            'gfni' => 1,
+            'hle' => 1,
+            'invpcid' => 1,
+            'la57' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'movbe' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pcid' => 1,
+            'pclmuldq' => 1,
+            'pdpe1gb' => 1,
+            'pge' => 1,
+            'pku' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdrand' => 1,
+            'rdseed' => 1,
+            'rdtscp' => 1,
+            'rtm' => 1,
+            'sep' => 1,
+            'smap' => 1,
+            'smep' => 1,
+            'spec-ctrl' => 1,
+            'ssbd' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'ssse3' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'tsc-deadline' => 1,
+            'umip' => 1,
+            'vaes' => 1,
+            'vme' => 1,
+            'vpclmulqdq' => 1,
+            'wbnoinvd' => 1,
+            'x2apic' => 1,
+            'xgetbv1' => 1,
+            'xsave' => 1,
+            'xsavec' => 1,
+            'xsaveopt' => 1,
+        },
+    },
+    'Icelake-Server-noTSX' => {
+        vendor => 'GenuineIntel',
+	family => 6,
+        model => 134,
+        version => 2,
+        flags => {
+            '3dnowprefetch' => 1,
+            'abm' => 1,
+            'adx' => 1,
+            'aes' => 1,
+            'apic' => 1,
+            'arat' => 1,
+            'avx' => 1,
+            'avx2' => 1,
+            'avx512-vpopcntdq' => 1,
+            'avx512bitalg' => 1,
+            'avx512bw' => 1,
+            'avx512cd' => 1,
+            'avx512dq' => 1,
+            'avx512f' => 1,
+            'avx512vbmi' => 1,
+            'avx512vbmi2' => 1,
+            'avx512vl' => 1,
+            'avx512vnni' => 1,
+            'bmi1' => 1,
+            'bmi2' => 1,
+            'clflush' => 1,
+            'clflushopt' => 1,
+            'clwb' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'erms' => 1,
+            'f16c' => 1,
+            'fma' => 1,
+            'fpu' => 1,
+            'fsgsbase' => 1,
+            'fxsr' => 1,
+            'gfni' => 1,
+            'invpcid' => 1,
+            'la57' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'movbe' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pcid' => 1,
+            'pclmuldq' => 1,
+            'pdpe1gb' => 1,
+            'pge' => 1,
+            'pku' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdrand' => 1,
+            'rdseed' => 1,
+            'rdtscp' => 1,
+            'sep' => 1,
+            'smap' => 1,
+            'smep' => 1,
+            'spec-ctrl' => 1,
+            'ssbd' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'ssse3' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'tsc-deadline' => 1,
+            'umip' => 1,
+            'vaes' => 1,
+            'vme' => 1,
+            'vpclmulqdq' => 1,
+            'wbnoinvd' => 1,
+            'x2apic' => 1,
+            'xgetbv1' => 1,
+            'xsave' => 1,
+            'xsavec' => 1,
+            'xsaveopt' => 1,
+        },
+    },
+    'Icelake-Server-v3' => {
+        vendor => 'GenuineIntel',
+	family => 6,
+        model => 134,
+        version => 3,
+        flags => {
+            '3dnowprefetch' => 1,
+            'abm' => 1,
+            'adx' => 1,
+            'aes' => 1,
+            'apic' => 1,
+            'arat' => 1,
+            'arch-capabilities' => 1,
+            'avx' => 1,
+            'avx2' => 1,
+            'avx512-vpopcntdq' => 1,
+            'avx512bitalg' => 1,
+            'avx512bw' => 1,
+            'avx512cd' => 1,
+            'avx512dq' => 1,
+            'avx512f' => 1,
+            'avx512vbmi' => 1,
+            'avx512vbmi2' => 1,
+            'avx512vl' => 1,
+            'avx512vnni' => 1,
+            'bmi1' => 1,
+            'bmi2' => 1,
+            'clflush' => 1,
+            'clflushopt' => 1,
+            'clwb' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'erms' => 1,
+            'f16c' => 1,
+            'fma' => 1,
+            'fpu' => 1,
+            'fsgsbase' => 1,
+            'fxsr' => 1,
+            'gfni' => 1,
+            'ibrs-all' => 1,
+            'invpcid' => 1,
+            'la57' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mds-no' => 1,
+            'mmx' => 1,
+            'movbe' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pcid' => 1,
+            'pclmuldq' => 1,
+            'pdpe1gb' => 1,
+            'pge' => 1,
+            'pku' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pschange-mc-no' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdctl-no' => 1,
+            'rdrand' => 1,
+            'rdseed' => 1,
+            'rdtscp' => 1,
+            'sep' => 1,
+            'skip-l1dfl-vmentry' => 1,
+            'smap' => 1,
+            'smep' => 1,
+            'spec-ctrl' => 1,
+            'ssbd' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'ssse3' => 1,
+            'syscall' => 1,
+            'taa-no' => 1,
+            'tsc' => 1,
+            'tsc-deadline' => 1,
+            'umip' => 1,
+            'vaes' => 1,
+            'vme' => 1,
+            'vpclmulqdq' => 1,
+            'wbnoinvd' => 1,
+            'x2apic' => 1,
+            'xgetbv1' => 1,
+            'xsave' => 1,
+            'xsavec' => 1,
+            'xsaveopt' => 1,
+        },
+    },
+    'Icelake-Server-v4' => {
+        vendor => 'GenuineIntel',
+	family => 6,
+        model => 134,
+        version => 4,
+        flags => {
+            '3dnowprefetch' => 1,
+            'abm' => 1,
+            'adx' => 1,
+            'aes' => 1,
+            'apic' => 1,
+            'arat' => 1,
+            'arch-capabilities' => 1,
+            'avx' => 1,
+            'avx2' => 1,
+            'avx512-vpopcntdq' => 1,
+            'avx512bitalg' => 1,
+            'avx512bw' => 1,
+            'avx512cd' => 1,
+            'avx512dq' => 1,
+            'avx512f' => 1,
+            'avx512ifma' => 1,
+            'avx512vbmi' => 1,
+            'avx512vbmi2' => 1,
+            'avx512vl' => 1,
+            'avx512vnni' => 1,
+            'bmi1' => 1,
+            'bmi2' => 1,
+            'clflush' => 1,
+            'clflushopt' => 1,
+            'clwb' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'erms' => 1,
+            'f16c' => 1,
+            'fma' => 1,
+            'fpu' => 1,
+            'fsgsbase' => 1,
+            'fsrm' => 1,
+            'fxsr' => 1,
+            'gfni' => 1,
+            'ibrs-all' => 1,
+            'invpcid' => 1,
+            'la57' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mds-no' => 1,
+            'mmx' => 1,
+            'movbe' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pcid' => 1,
+            'pclmuldq' => 1,
+            'pdpe1gb' => 1,
+            'pge' => 1,
+            'pku' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pschange-mc-no' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdctl-no' => 1,
+            'rdpid' => 1,
+            'rdrand' => 1,
+            'rdseed' => 1,
+            'rdtscp' => 1,
+            'sep' => 1,
+            'sha-ni' => 1,
+            'skip-l1dfl-vmentry' => 1,
+            'smap' => 1,
+            'smep' => 1,
+            'spec-ctrl' => 1,
+            'ssbd' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'ssse3' => 1,
+            'syscall' => 1,
+            'taa-no' => 1,
+            'tsc' => 1,
+            'tsc-deadline' => 1,
+            'umip' => 1,
+            'vaes' => 1,
+            'vme' => 1,
+            'vpclmulqdq' => 1,
+            'wbnoinvd' => 1,
+            'x2apic' => 1,
+            'xgetbv1' => 1,
+            'xsave' => 1,
+            'xsavec' => 1,
+            'xsaveopt' => 1,
+        },
+    },
+    'Icelake-Server-v5' => {
+        vendor => 'GenuineIntel',
+	family => 6,
+        model => 134,
+        version => 5,
+        flags => {
+            '3dnowprefetch' => 1,
+            'abm' => 1,
+            'adx' => 1,
+            'aes' => 1,
+            'apic' => 1,
+            'arat' => 1,
+            'arch-capabilities' => 1,
+            'avx' => 1,
+            'avx2' => 1,
+            'avx512-vpopcntdq' => 1,
+            'avx512bitalg' => 1,
+            'avx512bw' => 1,
+            'avx512cd' => 1,
+            'avx512dq' => 1,
+            'avx512f' => 1,
+            'avx512ifma' => 1,
+            'avx512vbmi' => 1,
+            'avx512vbmi2' => 1,
+            'avx512vl' => 1,
+            'avx512vnni' => 1,
+            'bmi1' => 1,
+            'bmi2' => 1,
+            'clflush' => 1,
+            'clflushopt' => 1,
+            'clwb' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'erms' => 1,
+            'f16c' => 1,
+            'fma' => 1,
+            'fpu' => 1,
+            'fsgsbase' => 1,
+            'fsrm' => 1,
+            'fxsr' => 1,
+            'gfni' => 1,
+            'ibrs-all' => 1,
+            'invpcid' => 1,
+            'la57' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mds-no' => 1,
+            'mmx' => 1,
+            'movbe' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pcid' => 1,
+            'pclmuldq' => 1,
+            'pdpe1gb' => 1,
+            'pge' => 1,
+            'pku' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pschange-mc-no' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdctl-no' => 1,
+            'rdpid' => 1,
+            'rdrand' => 1,
+            'rdseed' => 1,
+            'rdtscp' => 1,
+            'sep' => 1,
+            'sha-ni' => 1,
+            'skip-l1dfl-vmentry' => 1,
+            'smap' => 1,
+            'smep' => 1,
+            'spec-ctrl' => 1,
+            'ssbd' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'ssse3' => 1,
+            'syscall' => 1,
+            'taa-no' => 1,
+            'tsc' => 1,
+            'tsc-deadline' => 1,
+            'umip' => 1,
+            'vaes' => 1,
+            'vme' => 1,
+            'vpclmulqdq' => 1,
+            'wbnoinvd' => 1,
+            'x2apic' => 1,
+            'xgetbv1' => 1,
+            'xsave' => 1,
+            'xsavec' => 1,
+            'xsaveopt' => 1,
+            'xsaves' => 1,
+        },
+    },
+    'Icelake-Server-v6' => {
+        vendor => 'GenuineIntel',
+	family => 6,
+        model => 134,
+        version => 6,
+        flags => {
+            '3dnowprefetch' => 1,
+            'abm' => 1,
+            'adx' => 1,
+            'aes' => 1,
+            'apic' => 1,
+            'arat' => 1,
+            'arch-capabilities' => 1,
+            'avx' => 1,
+            'avx2' => 1,
+            'avx512-vpopcntdq' => 1,
+            'avx512bitalg' => 1,
+            'avx512bw' => 1,
+            'avx512cd' => 1,
+            'avx512dq' => 1,
+            'avx512f' => 1,
+            'avx512ifma' => 1,
+            'avx512vbmi' => 1,
+            'avx512vbmi2' => 1,
+            'avx512vl' => 1,
+            'avx512vnni' => 1,
+            'bmi1' => 1,
+            'bmi2' => 1,
+            'clflush' => 1,
+            'clflushopt' => 1,
+            'clwb' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'erms' => 1,
+            'f16c' => 1,
+            'fma' => 1,
+            'fpu' => 1,
+            'fsgsbase' => 1,
+            'fsrm' => 1,
+            'fxsr' => 1,
+            'gfni' => 1,
+            'ibrs-all' => 1,
+            'invpcid' => 1,
+            'la57' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mds-no' => 1,
+            'mmx' => 1,
+            'movbe' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pcid' => 1,
+            'pclmuldq' => 1,
+            'pdpe1gb' => 1,
+            'pge' => 1,
+            'pku' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pschange-mc-no' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdctl-no' => 1,
+            'rdpid' => 1,
+            'rdrand' => 1,
+            'rdseed' => 1,
+            'rdtscp' => 1,
+            'sep' => 1,
+            'sha-ni' => 1,
+            'skip-l1dfl-vmentry' => 1,
+            'smap' => 1,
+            'smep' => 1,
+            'spec-ctrl' => 1,
+            'ssbd' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'ssse3' => 1,
+            'syscall' => 1,
+            'taa-no' => 1,
+            'tsc' => 1,
+            'tsc-deadline' => 1,
+            'umip' => 1,
+            'vaes' => 1,
+            'vme' => 1,
+            'vpclmulqdq' => 1,
+            'wbnoinvd' => 1,
+            'x2apic' => 1,
+            'xgetbv1' => 1,
+            'xsave' => 1,
+            'xsavec' => 1,
+            'xsaveopt' => 1,
+            'xsaves' => 1,
+        },
+    },
+    'SapphireRapids' => {
+        vendor => 'GenuineIntel',
+	family => 6,
+        model => 143,
+        version => 1,
+        flags => {
+            '3dnowprefetch' => 1,
+            'abm' => 1,
+            'adx' => 1,
+            'aes' => 1,
+            'amx-bf16' => 1,
+            'amx-int8' => 1,
+            'amx-tile' => 1,
+            'apic' => 1,
+            'arat' => 1,
+            'arch-capabilities' => 1,
+            'avx' => 1,
+            'avx-vnni' => 1,
+            'avx2' => 1,
+            'avx512-bf16' => 1,
+            'avx512-fp16' => 1,
+            'avx512-vpopcntdq' => 1,
+            'avx512bitalg' => 1,
+            'avx512bw' => 1,
+            'avx512cd' => 1,
+            'avx512dq' => 1,
+            'avx512f' => 1,
+            'avx512ifma' => 1,
+            'avx512vbmi' => 1,
+            'avx512vbmi2' => 1,
+            'avx512vl' => 1,
+            'avx512vnni' => 1,
+            'bmi1' => 1,
+            'bmi2' => 1,
+            'bus-lock-detect' => 1,
+            'clflush' => 1,
+            'clflushopt' => 1,
+            'clwb' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'erms' => 1,
+            'f16c' => 1,
+            'fma' => 1,
+            'fpu' => 1,
+            'fsgsbase' => 1,
+            'fsrc' => 1,
+            'fsrm' => 1,
+            'fsrs' => 1,
+            'fxsr' => 1,
+            'fzrm' => 1,
+            'gfni' => 1,
+            'hle' => 1,
+            'ibrs-all' => 1,
+            'invpcid' => 1,
+            'la57' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mds-no' => 1,
+            'mmx' => 1,
+            'movbe' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pcid' => 1,
+            'pclmuldq' => 1,
+            'pdpe1gb' => 1,
+            'pge' => 1,
+            'pku' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pschange-mc-no' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdctl-no' => 1,
+            'rdpid' => 1,
+            'rdrand' => 1,
+            'rdseed' => 1,
+            'rdtscp' => 1,
+            'rtm' => 1,
+            'sep' => 1,
+            'serialize' => 1,
+            'sha-ni' => 1,
+            'skip-l1dfl-vmentry' => 1,
+            'smap' => 1,
+            'smep' => 1,
+            'spec-ctrl' => 1,
+            'ssbd' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'ssse3' => 1,
+            'syscall' => 1,
+            'taa-no' => 1,
+            'tsc' => 1,
+            'tsc-deadline' => 1,
+            'tsx-ldtrk' => 1,
+            'umip' => 1,
+            'vaes' => 1,
+            'vme' => 1,
+            'vpclmulqdq' => 1,
+            'wbnoinvd' => 1,
+            'x2apic' => 1,
+            'xfd' => 1,
+            'xgetbv1' => 1,
+            'xsave' => 1,
+            'xsavec' => 1,
+            'xsaveopt' => 1,
+            'xsaves' => 1,
+        },
+    },
+    'Opteron_G1' => {
+        vendor => 'AuthenticAMD',
+	family => 15,
+        model => 6,
+        version => 1,
+        flags => {
+            'apic' => 1,
+            'clflush' => 1,
+            'cmov' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'fpu' => 1,
+            'fxsr' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pge' => 1,
+            'pni' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'sep' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'vme' => 1,
+        },
+    },
+    'Opteron_G2' => {
+        vendor => 'AuthenticAMD',
+	family => 16,
+        model => 6,
+        version => 1,
+        flags => {
+            'apic' => 1,
+            'clflush' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'fpu' => 1,
+            'fxsr' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'mmx' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pge' => 1,
+            'pni' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'sep' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'svm' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'vme' => 1,
+        },
+    },
+    'Opteron_G3' => {
+        vendor => 'AuthenticAMD',
+	family => 16,
+        model => 2,
+        version => 1,
+        flags => {
+            'abm' => 1,
+            'apic' => 1,
+            'clflush' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'fpu' => 1,
+            'fxsr' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'misalignsse' => 1,
+            'mmx' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pge' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdtscp' => 1,
+            'sep' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4a' => 1,
+            'svm' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'vme' => 1,
+        },
+    },
+    'Opteron_G4' => {
+        vendor => 'AuthenticAMD',
+	family => 21,
+        model => 1,
+        version => 1,
+        flags => {
+            '3dnowprefetch' => 1,
+            'abm' => 1,
+            'aes' => 1,
+            'apic' => 1,
+            'avx' => 1,
+            'clflush' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'fma4' => 1,
+            'fpu' => 1,
+            'fxsr' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'misalignsse' => 1,
+            'mmx' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'npt' => 1,
+            'nrip-save' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pclmuldq' => 1,
+            'pdpe1gb' => 1,
+            'pge' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdtscp' => 1,
+            'sep' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'sse4a' => 1,
+            'ssse3' => 1,
+            'svm' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'vme' => 1,
+            'xop' => 1,
+            'xsave' => 1,
+        },
+    },
+    'Opteron_G5' => {
+        vendor => 'AuthenticAMD',
+	family => 21,
+        model => 2,
+        version => 1,
+        flags => {
+            '3dnowprefetch' => 1,
+            'abm' => 1,
+            'aes' => 1,
+            'apic' => 1,
+            'avx' => 1,
+            'clflush' => 1,
+            'cmov' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'f16c' => 1,
+            'fma' => 1,
+            'fma4' => 1,
+            'fpu' => 1,
+            'fxsr' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'misalignsse' => 1,
+            'mmx' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'npt' => 1,
+            'nrip-save' => 1,
+            'nx' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pclmuldq' => 1,
+            'pdpe1gb' => 1,
+            'pge' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdtscp' => 1,
+            'sep' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'sse4a' => 1,
+            'ssse3' => 1,
+            'svm' => 1,
+            'syscall' => 1,
+            'tbm' => 1,
+            'tsc' => 1,
+            'vme' => 1,
+            'xop' => 1,
+            'xsave' => 1,
+        },
+    },
+    'EPYC' => {
+        vendor => 'AuthenticAMD',
+	family => 23,
+        model => 1,
+        version => 1,
+        flags => {
+            '3dnowprefetch' => 1,
+            'abm' => 1,
+            'adx' => 1,
+            'aes' => 1,
+            'apic' => 1,
+            'arat' => 1,
+            'avx' => 1,
+            'avx2' => 1,
+            'bmi1' => 1,
+            'bmi2' => 1,
+            'clflush' => 1,
+            'clflushopt' => 1,
+            'cmov' => 1,
+            'cr8legacy' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'f16c' => 1,
+            'fma' => 1,
+            'fpu' => 1,
+            'fsgsbase' => 1,
+            'fxsr' => 1,
+            'fxsr_opt' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'misalignsse' => 1,
+            'mmx' => 1,
+            'mmxext' => 1,
+            'movbe' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'npt' => 1,
+            'nrip-save' => 1,
+            'nx' => 1,
+            'osvw' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pclmuldq' => 1,
+            'pdpe1gb' => 1,
+            'pge' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdrand' => 1,
+            'rdseed' => 1,
+            'rdtscp' => 1,
+            'sep' => 1,
+            'sha-ni' => 1,
+            'smap' => 1,
+            'smep' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'sse4a' => 1,
+            'ssse3' => 1,
+            'svm' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'vme' => 1,
+            'xgetbv1' => 1,
+            'xsave' => 1,
+            'xsavec' => 1,
+            'xsaveopt' => 1,
+        },
+    },
+    'EPYC-IBPB' => {
+        vendor => 'AuthenticAMD',
+	family => 23,
+        model => 1,
+        version => 2,
+        flags => {
+            '3dnowprefetch' => 1,
+            'abm' => 1,
+            'adx' => 1,
+            'aes' => 1,
+            'apic' => 1,
+            'arat' => 1,
+            'avx' => 1,
+            'avx2' => 1,
+            'bmi1' => 1,
+            'bmi2' => 1,
+            'clflush' => 1,
+            'clflushopt' => 1,
+            'cmov' => 1,
+            'cr8legacy' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'f16c' => 1,
+            'fma' => 1,
+            'fpu' => 1,
+            'fsgsbase' => 1,
+            'fxsr' => 1,
+            'fxsr_opt' => 1,
+            'ibpb' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'misalignsse' => 1,
+            'mmx' => 1,
+            'mmxext' => 1,
+            'movbe' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'npt' => 1,
+            'nrip-save' => 1,
+            'nx' => 1,
+            'osvw' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pclmuldq' => 1,
+            'pdpe1gb' => 1,
+            'pge' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdrand' => 1,
+            'rdseed' => 1,
+            'rdtscp' => 1,
+            'sep' => 1,
+            'sha-ni' => 1,
+            'smap' => 1,
+            'smep' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'sse4a' => 1,
+            'ssse3' => 1,
+            'svm' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'vme' => 1,
+            'xgetbv1' => 1,
+            'xsave' => 1,
+            'xsavec' => 1,
+            'xsaveopt' => 1,
+        },
+    },
+    'EPYC-v3' => {
+        vendor => 'AuthenticAMD',
+	family => 23,
+        model => 1,
+        version => 3,
+        flags => {
+            '3dnowprefetch' => 1,
+            'abm' => 1,
+            'adx' => 1,
+            'aes' => 1,
+            'apic' => 1,
+            'arat' => 1,
+            'avx' => 1,
+            'avx2' => 1,
+            'bmi1' => 1,
+            'bmi2' => 1,
+            'clflush' => 1,
+            'clflushopt' => 1,
+            'clzero' => 1,
+            'cmov' => 1,
+            'cr8legacy' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'f16c' => 1,
+            'fma' => 1,
+            'fpu' => 1,
+            'fsgsbase' => 1,
+            'fxsr' => 1,
+            'fxsr_opt' => 1,
+            'ibpb' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'misalignsse' => 1,
+            'mmx' => 1,
+            'mmxext' => 1,
+            'movbe' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'npt' => 1,
+            'nrip-save' => 1,
+            'nx' => 1,
+            'osvw' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pclmuldq' => 1,
+            'pdpe1gb' => 1,
+            'perfctr_core' => 1,
+            'pge' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdrand' => 1,
+            'rdseed' => 1,
+            'rdtscp' => 1,
+            'sep' => 1,
+            'sha-ni' => 1,
+            'smap' => 1,
+            'smep' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'sse4a' => 1,
+            'ssse3' => 1,
+            'svm' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'vme' => 1,
+            'xgetbv1' => 1,
+            'xsave' => 1,
+            'xsavec' => 1,
+            'xsaveerptr' => 1,
+            'xsaveopt' => 1,
+            'xsaves' => 1,
+        },
+    },
+    'EPYC-Rome' => {
+        vendor => 'AuthenticAMD',
+	family => 23,
+        model => 49,
+        version => 1,
+        flags => {
+            '3dnowprefetch' => 1,
+            'abm' => 1,
+            'adx' => 1,
+            'aes' => 1,
+            'amd-stibp' => 1,
+            'apic' => 1,
+            'arat' => 1,
+            'avx' => 1,
+            'avx2' => 1,
+            'bmi1' => 1,
+            'bmi2' => 1,
+            'clflush' => 1,
+            'clflushopt' => 1,
+            'clwb' => 1,
+            'clzero' => 1,
+            'cmov' => 1,
+            'cr8legacy' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'f16c' => 1,
+            'fma' => 1,
+            'fpu' => 1,
+            'fsgsbase' => 1,
+            'fxsr' => 1,
+            'fxsr_opt' => 1,
+            'ibpb' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'misalignsse' => 1,
+            'mmx' => 1,
+            'mmxext' => 1,
+            'movbe' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'npt' => 1,
+            'nrip-save' => 1,
+            'nx' => 1,
+            'osvw' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pclmuldq' => 1,
+            'pdpe1gb' => 1,
+            'perfctr_core' => 1,
+            'pge' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdpid' => 1,
+            'rdrand' => 1,
+            'rdseed' => 1,
+            'rdtscp' => 1,
+            'sep' => 1,
+            'sha-ni' => 1,
+            'smap' => 1,
+            'smep' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'sse4a' => 1,
+            'ssse3' => 1,
+            'svm' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'umip' => 1,
+            'vme' => 1,
+            'wbnoinvd' => 1,
+            'xgetbv1' => 1,
+            'xsave' => 1,
+            'xsavec' => 1,
+            'xsaveerptr' => 1,
+            'xsaveopt' => 1,
+            'xsaves' => 1,
+        },
+    },
+    'EPYC-Rome-v2' => {
+        vendor => 'AuthenticAMD',
+	family => 23,
+        model => 49,
+        version => 2,
+        flags => {
+            '3dnowprefetch' => 1,
+            'abm' => 1,
+            'adx' => 1,
+            'aes' => 1,
+            'amd-ssbd' => 1,
+            'amd-stibp' => 1,
+            'apic' => 1,
+            'arat' => 1,
+            'avx' => 1,
+            'avx2' => 1,
+            'bmi1' => 1,
+            'bmi2' => 1,
+            'clflush' => 1,
+            'clflushopt' => 1,
+            'clwb' => 1,
+            'clzero' => 1,
+            'cmov' => 1,
+            'cr8legacy' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'f16c' => 1,
+            'fma' => 1,
+            'fpu' => 1,
+            'fsgsbase' => 1,
+            'fxsr' => 1,
+            'fxsr_opt' => 1,
+            'ibpb' => 1,
+            'ibrs' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'misalignsse' => 1,
+            'mmx' => 1,
+            'mmxext' => 1,
+            'movbe' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'npt' => 1,
+            'nrip-save' => 1,
+            'nx' => 1,
+            'osvw' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pclmuldq' => 1,
+            'pdpe1gb' => 1,
+            'perfctr_core' => 1,
+            'pge' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdpid' => 1,
+            'rdrand' => 1,
+            'rdseed' => 1,
+            'rdtscp' => 1,
+            'sep' => 1,
+            'sha-ni' => 1,
+            'smap' => 1,
+            'smep' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'sse4a' => 1,
+            'ssse3' => 1,
+            'svm' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'umip' => 1,
+            'vme' => 1,
+            'wbnoinvd' => 1,
+            'xgetbv1' => 1,
+            'xsave' => 1,
+            'xsavec' => 1,
+            'xsaveerptr' => 1,
+            'xsaveopt' => 1,
+            'xsaves' => 1,
+        },
+    },
+    'EPYC-Milan' => {
+        vendor => 'AuthenticAMD',
+	family => 25,
+        model => 1,
+        version => 1,
+        flags => {
+            '3dnowprefetch' => 1,
+            'abm' => 1,
+            'adx' => 1,
+            'aes' => 1,
+            'amd-ssbd' => 1,
+            'amd-stibp' => 1,
+            'apic' => 1,
+            'arat' => 1,
+            'avx' => 1,
+            'avx2' => 1,
+            'bmi1' => 1,
+            'bmi2' => 1,
+            'clflush' => 1,
+            'clflushopt' => 1,
+            'clwb' => 1,
+            'clzero' => 1,
+            'cmov' => 1,
+            'cr8legacy' => 1,
+            'cx16' => 1,
+            'cx8' => 1,
+            'de' => 1,
+            'erms' => 1,
+            'f16c' => 1,
+            'fma' => 1,
+            'fpu' => 1,
+            'fsgsbase' => 1,
+            'fsrm' => 1,
+            'fxsr' => 1,
+            'fxsr_opt' => 1,
+            'ibpb' => 1,
+            'ibrs' => 1,
+            'invpcid' => 1,
+            'lahf_lm' => 1,
+            'lm' => 1,
+            'mca' => 1,
+            'mce' => 1,
+            'misalignsse' => 1,
+            'mmx' => 1,
+            'mmxext' => 1,
+            'movbe' => 1,
+            'msr' => 1,
+            'mtrr' => 1,
+            'npt' => 1,
+            'nrip-save' => 1,
+            'nx' => 1,
+            'osvw' => 1,
+            'pae' => 1,
+            'pat' => 1,
+            'pcid' => 1,
+            'pclmuldq' => 1,
+            'pdpe1gb' => 1,
+            'perfctr_core' => 1,
+            'pge' => 1,
+            'pku' => 1,
+            'pni' => 1,
+            'popcnt' => 1,
+            'pse' => 1,
+            'pse36' => 1,
+            'rdpid' => 1,
+            'rdrand' => 1,
+            'rdseed' => 1,
+            'rdtscp' => 1,
+            'sep' => 1,
+            'sha-ni' => 1,
+            'smap' => 1,
+            'smep' => 1,
+            'sse' => 1,
+            'sse2' => 1,
+            'sse4.1' => 1,
+            'sse4.2' => 1,
+            'sse4a' => 1,
+            'ssse3' => 1,
+            'svm' => 1,
+            'svme-addr-chk' => 1,
+            'syscall' => 1,
+            'tsc' => 1,
+            'umip' => 1,
+            'vme' => 1,
+            'wbnoinvd' => 1,
+            'xgetbv1' => 1,
+            'xsave' => 1,
+            'xsavec' => 1,
+            'xsaveerptr' => 1,
+            'xsaveopt' => 1,
+            'xsaves' => 1,
+        },
+    },
+};
+
+
+sub get_default_cpu_models {
+    return $cpumodels;
+}
+
+1;
\ No newline at end of file
diff --git a/PVE/QemuServer/Makefile b/PVE/QemuServer/Makefile
index e4ed184..97540af 100644
--- a/PVE/QemuServer/Makefile
+++ b/PVE/QemuServer/Makefile
@@ -9,6 +9,7 @@ SOURCES=PCI.pm		\
 	Monitor.pm	\
 	Machine.pm	\
 	CPUConfig.pm	\
+	CPUModels.pm	\
 	CGroup.pm	\
 	Drive.pm	\
 
-- 
2.30.2





More information about the pve-devel mailing list