[PATCH v2 26/36] cpu_map: Add versions of Haswell CPU model

Jiri Denemark posted 36 patches 1 week, 4 days ago
[PATCH v2 26/36] cpu_map: Add versions of Haswell CPU model
Posted by Jiri Denemark 1 week, 4 days ago
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---

Notes:
    Version 2:
    - Haswell-v2 defined as Haswell-noTSX
    - Haswell-v3 defined as Haswell-IBRS
    - Haswell-v4 defined as Haswell-noTSX-IBRS
    - <decode host='on' guest='off'/> for all versioned models
    - canonical CPU models in domain capabilities
    - CPU models are no longer canonicalized in post-parse

 src/cpu_map/index.xml                         |  4 ++
 src/cpu_map/meson.build                       |  4 ++
 src/cpu_map/x86_Haswell-v1.xml                |  6 ++
 src/cpu_map/x86_Haswell-v2.xml                |  6 ++
 src/cpu_map/x86_Haswell-v3.xml                |  6 ++
 src/cpu_map/x86_Haswell-v4.xml                |  6 ++
 .../x86_64-cpuid-Core-i5-4670T-host.xml       |  2 +-
 .../x86_64-cpuid-Core-i7-4600U-host.xml       |  2 +-
 .../x86_64-cpuid-Xeon-E5-2609-v3-host.xml     |  2 +-
 .../x86_64-cpuid-Xeon-E5-2630-v3-host.xml     |  2 +-
 .../x86_64-cpuid-Xeon-E5-2650-v3-host.xml     |  2 +-
 .../x86_64-cpuid-Xeon-E7-8890-v3-host.xml     |  2 +-
 .../domaincapsdata/qemu_5.2.0-q35.x86_64.xml  | 38 ++++++++++--
 .../domaincapsdata/qemu_5.2.0-tcg.x86_64.xml  | 58 +++++++++++++++++--
 tests/domaincapsdata/qemu_5.2.0.x86_64.xml    | 38 ++++++++++--
 .../domaincapsdata/qemu_6.0.0-q35.x86_64.xml  | 38 ++++++++++--
 .../domaincapsdata/qemu_6.0.0-tcg.x86_64.xml  | 58 +++++++++++++++++--
 tests/domaincapsdata/qemu_6.0.0.x86_64.xml    | 38 ++++++++++--
 .../domaincapsdata/qemu_6.1.0-q35.x86_64.xml  | 38 ++++++++++--
 .../domaincapsdata/qemu_6.1.0-tcg.x86_64.xml  | 58 +++++++++++++++++--
 tests/domaincapsdata/qemu_6.1.0.x86_64.xml    | 38 ++++++++++--
 .../domaincapsdata/qemu_6.2.0-q35.x86_64.xml  | 38 ++++++++++--
 .../domaincapsdata/qemu_6.2.0-tcg.x86_64.xml  | 58 +++++++++++++++++--
 tests/domaincapsdata/qemu_6.2.0.x86_64.xml    | 38 ++++++++++--
 .../domaincapsdata/qemu_7.0.0-q35.x86_64.xml  | 38 ++++++++++--
 .../domaincapsdata/qemu_7.0.0-tcg.x86_64.xml  | 58 +++++++++++++++++--
 tests/domaincapsdata/qemu_7.0.0.x86_64.xml    | 38 ++++++++++--
 .../domaincapsdata/qemu_7.1.0-q35.x86_64.xml  | 38 ++++++++++--
 .../domaincapsdata/qemu_7.1.0-tcg.x86_64.xml  | 58 +++++++++++++++++--
 tests/domaincapsdata/qemu_7.1.0.x86_64.xml    | 38 ++++++++++--
 .../domaincapsdata/qemu_7.2.0-q35.x86_64.xml  | 38 ++++++++++--
 .../qemu_7.2.0-tcg.x86_64+hvf.xml             | 42 ++++++++++++--
 .../domaincapsdata/qemu_7.2.0-tcg.x86_64.xml  | 42 ++++++++++++--
 tests/domaincapsdata/qemu_7.2.0.x86_64.xml    | 38 ++++++++++--
 .../domaincapsdata/qemu_8.0.0-q35.x86_64.xml  | 38 ++++++++++--
 .../domaincapsdata/qemu_8.0.0-tcg.x86_64.xml  | 42 ++++++++++++--
 tests/domaincapsdata/qemu_8.0.0.x86_64.xml    | 38 ++++++++++--
 .../domaincapsdata/qemu_8.1.0-q35.x86_64.xml  | 38 ++++++++++--
 .../domaincapsdata/qemu_8.1.0-tcg.x86_64.xml  | 42 ++++++++++++--
 tests/domaincapsdata/qemu_8.1.0.x86_64.xml    | 38 ++++++++++--
 .../domaincapsdata/qemu_8.2.0-q35.x86_64.xml  | 38 ++++++++++--
 .../domaincapsdata/qemu_8.2.0-tcg.x86_64.xml  | 42 ++++++++++++--
 tests/domaincapsdata/qemu_8.2.0.x86_64.xml    | 38 ++++++++++--
 .../domaincapsdata/qemu_9.0.0-q35.x86_64.xml  | 38 ++++++++++--
 .../domaincapsdata/qemu_9.0.0-tcg.x86_64.xml  | 38 ++++++++++--
 tests/domaincapsdata/qemu_9.0.0.x86_64.xml    | 38 ++++++++++--
 .../domaincapsdata/qemu_9.1.0-q35.x86_64.xml  | 38 ++++++++++--
 .../domaincapsdata/qemu_9.1.0-tcg.x86_64.xml  | 38 ++++++++++--
 tests/domaincapsdata/qemu_9.1.0.x86_64.xml    | 38 ++++++++++--
 .../domaincapsdata/qemu_9.2.0-q35.x86_64.xml  | 38 ++++++++++--
 .../domaincapsdata/qemu_9.2.0-tcg.x86_64.xml  | 38 ++++++++++--
 tests/domaincapsdata/qemu_9.2.0.x86_64.xml    | 38 ++++++++++--
 52 files changed, 1538 insertions(+), 166 deletions(-)
 create mode 100644 src/cpu_map/x86_Haswell-v1.xml
 create mode 100644 src/cpu_map/x86_Haswell-v2.xml
 create mode 100644 src/cpu_map/x86_Haswell-v3.xml
 create mode 100644 src/cpu_map/x86_Haswell-v4.xml

diff --git a/src/cpu_map/index.xml b/src/cpu_map/index.xml
index 204cce459a..c94be551fb 100644
--- a/src/cpu_map/index.xml
+++ b/src/cpu_map/index.xml
@@ -41,6 +41,10 @@
       <include filename='x86_Haswell-noTSX-IBRS.xml'/>
       <include filename='x86_Haswell.xml'/>
       <include filename='x86_Haswell-IBRS.xml'/>
+      <include filename='x86_Haswell-v1.xml'/>
+      <include filename='x86_Haswell-v2.xml'/>
+      <include filename='x86_Haswell-v3.xml'/>
+      <include filename='x86_Haswell-v4.xml'/>
       <include filename='x86_Broadwell-noTSX.xml'/>
       <include filename='x86_Broadwell-noTSX-IBRS.xml'/>
       <include filename='x86_Broadwell.xml'/>
diff --git a/src/cpu_map/meson.build b/src/cpu_map/meson.build
index 410f29f505..e230ade8f0 100644
--- a/src/cpu_map/meson.build
+++ b/src/cpu_map/meson.build
@@ -59,6 +59,10 @@ cpumap_data = [
   'x86_Haswell-IBRS.xml',
   'x86_Haswell-noTSX-IBRS.xml',
   'x86_Haswell-noTSX.xml',
+  'x86_Haswell-v1.xml',
+  'x86_Haswell-v2.xml',
+  'x86_Haswell-v3.xml',
+  'x86_Haswell-v4.xml',
   'x86_Haswell.xml',
   'x86_Icelake-Client-noTSX.xml',
   'x86_Icelake-Client.xml',
diff --git a/src/cpu_map/x86_Haswell-v1.xml b/src/cpu_map/x86_Haswell-v1.xml
new file mode 100644
index 0000000000..729daf18df
--- /dev/null
+++ b/src/cpu_map/x86_Haswell-v1.xml
@@ -0,0 +1,6 @@
+<cpus>
+  <model name='Haswell-v1'>
+    <decode host='on' guest='off'/>
+    <model name='Haswell'/>
+  </model>
+</cpus>
diff --git a/src/cpu_map/x86_Haswell-v2.xml b/src/cpu_map/x86_Haswell-v2.xml
new file mode 100644
index 0000000000..1657d0db5f
--- /dev/null
+++ b/src/cpu_map/x86_Haswell-v2.xml
@@ -0,0 +1,6 @@
+<cpus>
+  <model name='Haswell-v2'>
+    <decode host='on' guest='off'/>
+    <model name='Haswell-noTSX'/>
+  </model>
+</cpus>
diff --git a/src/cpu_map/x86_Haswell-v3.xml b/src/cpu_map/x86_Haswell-v3.xml
new file mode 100644
index 0000000000..fd38a8677f
--- /dev/null
+++ b/src/cpu_map/x86_Haswell-v3.xml
@@ -0,0 +1,6 @@
+<cpus>
+  <model name='Haswell-v3'>
+    <decode host='on' guest='off'/>
+    <model name='Haswell-IBRS'/>
+  </model>
+</cpus>
diff --git a/src/cpu_map/x86_Haswell-v4.xml b/src/cpu_map/x86_Haswell-v4.xml
new file mode 100644
index 0000000000..d28eb1430a
--- /dev/null
+++ b/src/cpu_map/x86_Haswell-v4.xml
@@ -0,0 +1,6 @@
+<cpus>
+  <model name='Haswell-v4'>
+    <decode host='on' guest='off'/>
+    <model name='Haswell-noTSX-IBRS'/>
+  </model>
+</cpus>
diff --git a/tests/cputestdata/x86_64-cpuid-Core-i5-4670T-host.xml b/tests/cputestdata/x86_64-cpuid-Core-i5-4670T-host.xml
index bb15f84c47..7986162053 100644
--- a/tests/cputestdata/x86_64-cpuid-Core-i5-4670T-host.xml
+++ b/tests/cputestdata/x86_64-cpuid-Core-i5-4670T-host.xml
@@ -1,6 +1,6 @@
 <cpu>
   <arch>x86_64</arch>
-  <model>Haswell-noTSX</model>
+  <model>Haswell-v2</model>
   <vendor>Intel</vendor>
   <signature family='6' model='60' stepping='3'/>
   <feature name='dtes64'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-4600U-host.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-4600U-host.xml
index fbcb3bd63f..41545483f2 100644
--- a/tests/cputestdata/x86_64-cpuid-Core-i7-4600U-host.xml
+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-4600U-host.xml
@@ -1,6 +1,6 @@
 <cpu>
   <arch>x86_64</arch>
-  <model>Haswell-noTSX</model>
+  <model>Haswell-v2</model>
   <vendor>Intel</vendor>
   <signature family='6' model='69' stepping='1'/>
   <feature name='dtes64'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-E5-2609-v3-host.xml b/tests/cputestdata/x86_64-cpuid-Xeon-E5-2609-v3-host.xml
index d641d70bbd..9e57e13c7d 100644
--- a/tests/cputestdata/x86_64-cpuid-Xeon-E5-2609-v3-host.xml
+++ b/tests/cputestdata/x86_64-cpuid-Xeon-E5-2609-v3-host.xml
@@ -1,6 +1,6 @@
 <cpu>
   <arch>x86_64</arch>
-  <model>Haswell-noTSX-IBRS</model>
+  <model>Haswell-v4</model>
   <vendor>Intel</vendor>
   <signature family='6' model='63' stepping='2'/>
   <feature name='dtes64'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-E5-2630-v3-host.xml b/tests/cputestdata/x86_64-cpuid-Xeon-E5-2630-v3-host.xml
index b8bafccab3..44a435e71c 100644
--- a/tests/cputestdata/x86_64-cpuid-Xeon-E5-2630-v3-host.xml
+++ b/tests/cputestdata/x86_64-cpuid-Xeon-E5-2630-v3-host.xml
@@ -1,6 +1,6 @@
 <cpu>
   <arch>x86_64</arch>
-  <model>Haswell-noTSX</model>
+  <model>Haswell-v2</model>
   <vendor>Intel</vendor>
   <signature family='6' model='63' stepping='2'/>
   <feature name='dtes64'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-E5-2650-v3-host.xml b/tests/cputestdata/x86_64-cpuid-Xeon-E5-2650-v3-host.xml
index b8bafccab3..44a435e71c 100644
--- a/tests/cputestdata/x86_64-cpuid-Xeon-E5-2650-v3-host.xml
+++ b/tests/cputestdata/x86_64-cpuid-Xeon-E5-2650-v3-host.xml
@@ -1,6 +1,6 @@
 <cpu>
   <arch>x86_64</arch>
-  <model>Haswell-noTSX</model>
+  <model>Haswell-v2</model>
   <vendor>Intel</vendor>
   <signature family='6' model='63' stepping='2'/>
   <feature name='dtes64'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-E7-8890-v3-host.xml b/tests/cputestdata/x86_64-cpuid-Xeon-E7-8890-v3-host.xml
index 92d9206242..f5a846da27 100644
--- a/tests/cputestdata/x86_64-cpuid-Xeon-E7-8890-v3-host.xml
+++ b/tests/cputestdata/x86_64-cpuid-Xeon-E7-8890-v3-host.xml
@@ -1,6 +1,6 @@
 <cpu>
   <arch>x86_64</arch>
-  <model>Haswell</model>
+  <model>Haswell-v1</model>
   <vendor>Intel</vendor>
   <signature family='6' model='63' stepping='4'/>
   <feature name='dtes64'/>
diff --git a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
index d05a506975..b44ea2611d 100644
--- a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
@@ -260,7 +260,7 @@
       <model usable='yes' vendor='AMD'>EPYC</model>
       <model usable='yes' vendor='AMD'>EPYC-IBPB</model>
       <model usable='yes' vendor='AMD'>EPYC-Rome</model>
-      <model usable='no' vendor='Intel'>Haswell</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -268,7 +268,7 @@
         <feature name='pcid'/>
         <feature name='rtm'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v3'>Haswell-IBRS</model>
       <blockers model='Haswell-IBRS'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -277,19 +277,49 @@
         <feature name='rtm'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v2'>Haswell-noTSX</model>
       <blockers model='Haswell-noTSX'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v4'>Haswell-noTSX-IBRS</model>
       <blockers model='Haswell-noTSX-IBRS'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v1</model>
+      <blockers model='Haswell-v1'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v2</model>
+      <blockers model='Haswell-v2'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v3</model>
+      <blockers model='Haswell-v3'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v4</model>
+      <blockers model='Haswell-v4'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='no' deprecated='yes' vendor='Intel'>Icelake-Client</model>
       <blockers model='Icelake-Client'>
         <feature name='avx512-vpopcntdq'/>
diff --git a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
index a8e28d279c..799996be48 100644
--- a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
@@ -490,7 +490,7 @@
         <feature name='xsaveerptr'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='avx'/>
         <feature name='avx2'/>
@@ -503,7 +503,7 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v3'>Haswell-IBRS</model>
       <blockers model='Haswell-IBRS'>
         <feature name='avx'/>
         <feature name='avx2'/>
@@ -517,7 +517,7 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v2'>Haswell-noTSX</model>
       <blockers model='Haswell-noTSX'>
         <feature name='avx'/>
         <feature name='avx2'/>
@@ -528,7 +528,7 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v4'>Haswell-noTSX-IBRS</model>
       <blockers model='Haswell-noTSX-IBRS'>
         <feature name='avx'/>
         <feature name='avx2'/>
@@ -540,6 +540,56 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v1</model>
+      <blockers model='Haswell-v1'>
+        <feature name='avx'/>
+        <feature name='avx2'/>
+        <feature name='f16c'/>
+        <feature name='fma'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v2</model>
+      <blockers model='Haswell-v2'>
+        <feature name='avx'/>
+        <feature name='avx2'/>
+        <feature name='f16c'/>
+        <feature name='fma'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v3</model>
+      <blockers model='Haswell-v3'>
+        <feature name='avx'/>
+        <feature name='avx2'/>
+        <feature name='f16c'/>
+        <feature name='fma'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='spec-ctrl'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v4</model>
+      <blockers model='Haswell-v4'>
+        <feature name='avx'/>
+        <feature name='avx2'/>
+        <feature name='f16c'/>
+        <feature name='fma'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='spec-ctrl'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
       <model usable='no' deprecated='yes' vendor='Intel'>Icelake-Client</model>
       <blockers model='Icelake-Client'>
         <feature name='3dnowprefetch'/>
diff --git a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
index 17954892e0..252f6afa18 100644
--- a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
@@ -259,7 +259,7 @@
       <model usable='yes' vendor='AMD'>EPYC</model>
       <model usable='yes' vendor='AMD'>EPYC-IBPB</model>
       <model usable='yes' vendor='AMD'>EPYC-Rome</model>
-      <model usable='no' vendor='Intel'>Haswell</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -267,7 +267,7 @@
         <feature name='pcid'/>
         <feature name='rtm'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v3'>Haswell-IBRS</model>
       <blockers model='Haswell-IBRS'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -276,19 +276,49 @@
         <feature name='rtm'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v2'>Haswell-noTSX</model>
       <blockers model='Haswell-noTSX'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v4'>Haswell-noTSX-IBRS</model>
       <blockers model='Haswell-noTSX-IBRS'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v1</model>
+      <blockers model='Haswell-v1'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v2</model>
+      <blockers model='Haswell-v2'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v3</model>
+      <blockers model='Haswell-v3'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v4</model>
+      <blockers model='Haswell-v4'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='no' deprecated='yes' vendor='Intel'>Icelake-Client</model>
       <blockers model='Icelake-Client'>
         <feature name='avx512-vpopcntdq'/>
diff --git a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
index c7f12089c7..beaa1dafbd 100644
--- a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
@@ -269,7 +269,7 @@
         <feature name='pku'/>
       </blockers>
       <model usable='yes' vendor='AMD'>EPYC-Rome</model>
-      <model usable='no' vendor='Intel'>Haswell</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -277,7 +277,7 @@
         <feature name='pcid'/>
         <feature name='rtm'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v3'>Haswell-IBRS</model>
       <blockers model='Haswell-IBRS'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -286,19 +286,49 @@
         <feature name='rtm'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v2'>Haswell-noTSX</model>
       <blockers model='Haswell-noTSX'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v4'>Haswell-noTSX-IBRS</model>
       <blockers model='Haswell-noTSX-IBRS'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v1</model>
+      <blockers model='Haswell-v1'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v2</model>
+      <blockers model='Haswell-v2'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v3</model>
+      <blockers model='Haswell-v3'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v4</model>
+      <blockers model='Haswell-v4'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='no' deprecated='yes' vendor='Intel'>Icelake-Client</model>
       <blockers model='Icelake-Client'>
         <feature name='avx512-vpopcntdq'/>
diff --git a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
index c2229b8837..36163763f8 100644
--- a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
@@ -522,7 +522,7 @@
         <feature name='xsaveerptr'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='avx'/>
         <feature name='avx2'/>
@@ -535,7 +535,7 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v3'>Haswell-IBRS</model>
       <blockers model='Haswell-IBRS'>
         <feature name='avx'/>
         <feature name='avx2'/>
@@ -549,7 +549,7 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v2'>Haswell-noTSX</model>
       <blockers model='Haswell-noTSX'>
         <feature name='avx'/>
         <feature name='avx2'/>
@@ -560,7 +560,7 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v4'>Haswell-noTSX-IBRS</model>
       <blockers model='Haswell-noTSX-IBRS'>
         <feature name='avx'/>
         <feature name='avx2'/>
@@ -572,6 +572,56 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v1</model>
+      <blockers model='Haswell-v1'>
+        <feature name='avx'/>
+        <feature name='avx2'/>
+        <feature name='f16c'/>
+        <feature name='fma'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v2</model>
+      <blockers model='Haswell-v2'>
+        <feature name='avx'/>
+        <feature name='avx2'/>
+        <feature name='f16c'/>
+        <feature name='fma'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v3</model>
+      <blockers model='Haswell-v3'>
+        <feature name='avx'/>
+        <feature name='avx2'/>
+        <feature name='f16c'/>
+        <feature name='fma'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='spec-ctrl'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v4</model>
+      <blockers model='Haswell-v4'>
+        <feature name='avx'/>
+        <feature name='avx2'/>
+        <feature name='f16c'/>
+        <feature name='fma'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='spec-ctrl'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
       <model usable='no' deprecated='yes' vendor='Intel'>Icelake-Client</model>
       <blockers model='Icelake-Client'>
         <feature name='3dnowprefetch'/>
diff --git a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
index aa5f264c52..eed3864bb1 100644
--- a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
@@ -268,7 +268,7 @@
         <feature name='pku'/>
       </blockers>
       <model usable='yes' vendor='AMD'>EPYC-Rome</model>
-      <model usable='no' vendor='Intel'>Haswell</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -276,7 +276,7 @@
         <feature name='pcid'/>
         <feature name='rtm'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v3'>Haswell-IBRS</model>
       <blockers model='Haswell-IBRS'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -285,19 +285,49 @@
         <feature name='rtm'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v2'>Haswell-noTSX</model>
       <blockers model='Haswell-noTSX'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v4'>Haswell-noTSX-IBRS</model>
       <blockers model='Haswell-noTSX-IBRS'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v1</model>
+      <blockers model='Haswell-v1'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v2</model>
+      <blockers model='Haswell-v2'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v3</model>
+      <blockers model='Haswell-v3'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v4</model>
+      <blockers model='Haswell-v4'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='no' deprecated='yes' vendor='Intel'>Icelake-Client</model>
       <blockers model='Icelake-Client'>
         <feature name='avx512-vpopcntdq'/>
diff --git a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
index 2e41f8919a..c3b4c79732 100644
--- a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
@@ -307,7 +307,7 @@
         <feature name='pku'/>
       </blockers>
       <model usable='yes' vendor='AMD'>EPYC-Rome</model>
-      <model usable='no' vendor='Intel'>Haswell</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -315,7 +315,7 @@
         <feature name='pcid'/>
         <feature name='rtm'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v3'>Haswell-IBRS</model>
       <blockers model='Haswell-IBRS'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -324,19 +324,49 @@
         <feature name='rtm'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v2'>Haswell-noTSX</model>
       <blockers model='Haswell-noTSX'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v4'>Haswell-noTSX-IBRS</model>
       <blockers model='Haswell-noTSX-IBRS'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v1</model>
+      <blockers model='Haswell-v1'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v2</model>
+      <blockers model='Haswell-v2'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v3</model>
+      <blockers model='Haswell-v3'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v4</model>
+      <blockers model='Haswell-v4'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='no' deprecated='yes' vendor='Intel'>Icelake-Client</model>
       <blockers model='Icelake-Client'>
         <feature name='avx512-vpopcntdq'/>
diff --git a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
index a0fd318734..d584638f33 100644
--- a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
@@ -587,7 +587,7 @@
         <feature name='xsaveerptr'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='avx'/>
         <feature name='avx2'/>
@@ -600,7 +600,7 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v3'>Haswell-IBRS</model>
       <blockers model='Haswell-IBRS'>
         <feature name='avx'/>
         <feature name='avx2'/>
@@ -614,7 +614,7 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v2'>Haswell-noTSX</model>
       <blockers model='Haswell-noTSX'>
         <feature name='avx'/>
         <feature name='avx2'/>
@@ -625,7 +625,7 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v4'>Haswell-noTSX-IBRS</model>
       <blockers model='Haswell-noTSX-IBRS'>
         <feature name='avx'/>
         <feature name='avx2'/>
@@ -637,6 +637,56 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v1</model>
+      <blockers model='Haswell-v1'>
+        <feature name='avx'/>
+        <feature name='avx2'/>
+        <feature name='f16c'/>
+        <feature name='fma'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v2</model>
+      <blockers model='Haswell-v2'>
+        <feature name='avx'/>
+        <feature name='avx2'/>
+        <feature name='f16c'/>
+        <feature name='fma'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v3</model>
+      <blockers model='Haswell-v3'>
+        <feature name='avx'/>
+        <feature name='avx2'/>
+        <feature name='f16c'/>
+        <feature name='fma'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='spec-ctrl'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v4</model>
+      <blockers model='Haswell-v4'>
+        <feature name='avx'/>
+        <feature name='avx2'/>
+        <feature name='f16c'/>
+        <feature name='fma'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='spec-ctrl'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
       <model usable='no' deprecated='yes' vendor='Intel'>Icelake-Client</model>
       <blockers model='Icelake-Client'>
         <feature name='3dnowprefetch'/>
diff --git a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
index 3c599581f7..5bb327039d 100644
--- a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
@@ -306,7 +306,7 @@
         <feature name='pku'/>
       </blockers>
       <model usable='yes' vendor='AMD'>EPYC-Rome</model>
-      <model usable='no' vendor='Intel'>Haswell</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -314,7 +314,7 @@
         <feature name='pcid'/>
         <feature name='rtm'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v3'>Haswell-IBRS</model>
       <blockers model='Haswell-IBRS'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -323,19 +323,49 @@
         <feature name='rtm'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v2'>Haswell-noTSX</model>
       <blockers model='Haswell-noTSX'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v4'>Haswell-noTSX-IBRS</model>
       <blockers model='Haswell-noTSX-IBRS'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v1</model>
+      <blockers model='Haswell-v1'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v2</model>
+      <blockers model='Haswell-v2'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v3</model>
+      <blockers model='Haswell-v3'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v4</model>
+      <blockers model='Haswell-v4'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='no' deprecated='yes' vendor='Intel'>Icelake-Client</model>
       <blockers model='Icelake-Client'>
         <feature name='avx512-vpopcntdq'/>
diff --git a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
index 9b8a512f12..5d5fbc9c31 100644
--- a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
@@ -304,7 +304,7 @@
         <feature name='pku'/>
       </blockers>
       <model usable='yes' vendor='AMD'>EPYC-Rome</model>
-      <model usable='no' vendor='Intel'>Haswell</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -312,7 +312,7 @@
         <feature name='pcid'/>
         <feature name='rtm'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v3'>Haswell-IBRS</model>
       <blockers model='Haswell-IBRS'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -321,19 +321,49 @@
         <feature name='rtm'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v2'>Haswell-noTSX</model>
       <blockers model='Haswell-noTSX'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v4'>Haswell-noTSX-IBRS</model>
       <blockers model='Haswell-noTSX-IBRS'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v1</model>
+      <blockers model='Haswell-v1'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v2</model>
+      <blockers model='Haswell-v2'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v3</model>
+      <blockers model='Haswell-v3'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v4</model>
+      <blockers model='Haswell-v4'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='no' deprecated='yes' vendor='Intel'>Icelake-Client</model>
       <blockers model='Icelake-Client'>
         <feature name='avx512-vpopcntdq'/>
diff --git a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
index 7831820858..5165e04d78 100644
--- a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
@@ -585,7 +585,7 @@
         <feature name='xsaveerptr'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='avx'/>
         <feature name='avx2'/>
@@ -598,7 +598,7 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v3'>Haswell-IBRS</model>
       <blockers model='Haswell-IBRS'>
         <feature name='avx'/>
         <feature name='avx2'/>
@@ -612,7 +612,7 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v2'>Haswell-noTSX</model>
       <blockers model='Haswell-noTSX'>
         <feature name='avx'/>
         <feature name='avx2'/>
@@ -623,7 +623,7 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v4'>Haswell-noTSX-IBRS</model>
       <blockers model='Haswell-noTSX-IBRS'>
         <feature name='avx'/>
         <feature name='avx2'/>
@@ -635,6 +635,56 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v1</model>
+      <blockers model='Haswell-v1'>
+        <feature name='avx'/>
+        <feature name='avx2'/>
+        <feature name='f16c'/>
+        <feature name='fma'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v2</model>
+      <blockers model='Haswell-v2'>
+        <feature name='avx'/>
+        <feature name='avx2'/>
+        <feature name='f16c'/>
+        <feature name='fma'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v3</model>
+      <blockers model='Haswell-v3'>
+        <feature name='avx'/>
+        <feature name='avx2'/>
+        <feature name='f16c'/>
+        <feature name='fma'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='spec-ctrl'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v4</model>
+      <blockers model='Haswell-v4'>
+        <feature name='avx'/>
+        <feature name='avx2'/>
+        <feature name='f16c'/>
+        <feature name='fma'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='spec-ctrl'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
       <model usable='no' deprecated='yes' vendor='Intel'>Icelake-Client</model>
       <blockers model='Icelake-Client'>
         <feature name='3dnowprefetch'/>
diff --git a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
index b3ac57b859..d1cf0e9702 100644
--- a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
@@ -303,7 +303,7 @@
         <feature name='pku'/>
       </blockers>
       <model usable='yes' vendor='AMD'>EPYC-Rome</model>
-      <model usable='no' vendor='Intel'>Haswell</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -311,7 +311,7 @@
         <feature name='pcid'/>
         <feature name='rtm'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v3'>Haswell-IBRS</model>
       <blockers model='Haswell-IBRS'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -320,19 +320,49 @@
         <feature name='rtm'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v2'>Haswell-noTSX</model>
       <blockers model='Haswell-noTSX'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v4'>Haswell-noTSX-IBRS</model>
       <blockers model='Haswell-noTSX-IBRS'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v1</model>
+      <blockers model='Haswell-v1'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v2</model>
+      <blockers model='Haswell-v2'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v3</model>
+      <blockers model='Haswell-v3'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v4</model>
+      <blockers model='Haswell-v4'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='no' deprecated='yes' vendor='Intel'>Icelake-Client</model>
       <blockers model='Icelake-Client'>
         <feature name='avx512-vpopcntdq'/>
diff --git a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
index 340266c243..758066b64b 100644
--- a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
@@ -305,7 +305,7 @@
         <feature name='pku'/>
       </blockers>
       <model usable='yes' vendor='AMD'>EPYC-Rome</model>
-      <model usable='no' vendor='Intel'>Haswell</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -313,7 +313,7 @@
         <feature name='pcid'/>
         <feature name='rtm'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v3'>Haswell-IBRS</model>
       <blockers model='Haswell-IBRS'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -322,19 +322,49 @@
         <feature name='rtm'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v2'>Haswell-noTSX</model>
       <blockers model='Haswell-noTSX'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v4'>Haswell-noTSX-IBRS</model>
       <blockers model='Haswell-noTSX-IBRS'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v1</model>
+      <blockers model='Haswell-v1'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v2</model>
+      <blockers model='Haswell-v2'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v3</model>
+      <blockers model='Haswell-v3'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v4</model>
+      <blockers model='Haswell-v4'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='no' deprecated='yes' vendor='Intel'>Icelake-Client</model>
       <blockers model='Icelake-Client'>
         <feature name='avx512-vpopcntdq'/>
diff --git a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
index f578d1a270..ed7c6225c0 100644
--- a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
@@ -584,7 +584,7 @@
         <feature name='xsaveerptr'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='avx'/>
         <feature name='avx2'/>
@@ -597,7 +597,7 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v3'>Haswell-IBRS</model>
       <blockers model='Haswell-IBRS'>
         <feature name='avx'/>
         <feature name='avx2'/>
@@ -611,7 +611,7 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v2'>Haswell-noTSX</model>
       <blockers model='Haswell-noTSX'>
         <feature name='avx'/>
         <feature name='avx2'/>
@@ -622,7 +622,7 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v4'>Haswell-noTSX-IBRS</model>
       <blockers model='Haswell-noTSX-IBRS'>
         <feature name='avx'/>
         <feature name='avx2'/>
@@ -634,6 +634,56 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v1</model>
+      <blockers model='Haswell-v1'>
+        <feature name='avx'/>
+        <feature name='avx2'/>
+        <feature name='f16c'/>
+        <feature name='fma'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v2</model>
+      <blockers model='Haswell-v2'>
+        <feature name='avx'/>
+        <feature name='avx2'/>
+        <feature name='f16c'/>
+        <feature name='fma'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v3</model>
+      <blockers model='Haswell-v3'>
+        <feature name='avx'/>
+        <feature name='avx2'/>
+        <feature name='f16c'/>
+        <feature name='fma'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='spec-ctrl'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v4</model>
+      <blockers model='Haswell-v4'>
+        <feature name='avx'/>
+        <feature name='avx2'/>
+        <feature name='f16c'/>
+        <feature name='fma'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='spec-ctrl'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
       <model usable='no' deprecated='yes' vendor='Intel'>Icelake-Client</model>
       <blockers model='Icelake-Client'>
         <feature name='3dnowprefetch'/>
diff --git a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
index 2a2db648e7..8cde45efa8 100644
--- a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
@@ -304,7 +304,7 @@
         <feature name='pku'/>
       </blockers>
       <model usable='yes' vendor='AMD'>EPYC-Rome</model>
-      <model usable='no' vendor='Intel'>Haswell</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -312,7 +312,7 @@
         <feature name='pcid'/>
         <feature name='rtm'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v3'>Haswell-IBRS</model>
       <blockers model='Haswell-IBRS'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -321,19 +321,49 @@
         <feature name='rtm'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v2'>Haswell-noTSX</model>
       <blockers model='Haswell-noTSX'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v4'>Haswell-noTSX-IBRS</model>
       <blockers model='Haswell-noTSX-IBRS'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v1</model>
+      <blockers model='Haswell-v1'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v2</model>
+      <blockers model='Haswell-v2'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v3</model>
+      <blockers model='Haswell-v3'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v4</model>
+      <blockers model='Haswell-v4'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='no' deprecated='yes' vendor='Intel'>Icelake-Client</model>
       <blockers model='Icelake-Client'>
         <feature name='avx512-vpopcntdq'/>
diff --git a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
index bb9bb28922..64b5033873 100644
--- a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
@@ -306,7 +306,7 @@
         <feature name='pku'/>
       </blockers>
       <model usable='yes' vendor='AMD'>EPYC-Rome</model>
-      <model usable='no' vendor='Intel'>Haswell</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -314,7 +314,7 @@
         <feature name='pcid'/>
         <feature name='rtm'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v3'>Haswell-IBRS</model>
       <blockers model='Haswell-IBRS'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -323,19 +323,49 @@
         <feature name='rtm'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v2'>Haswell-noTSX</model>
       <blockers model='Haswell-noTSX'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v4'>Haswell-noTSX-IBRS</model>
       <blockers model='Haswell-noTSX-IBRS'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v1</model>
+      <blockers model='Haswell-v1'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v2</model>
+      <blockers model='Haswell-v2'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v3</model>
+      <blockers model='Haswell-v3'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v4</model>
+      <blockers model='Haswell-v4'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='Icelake-Server-v1'>Icelake-Server</model>
       <blockers model='Icelake-Server'>
         <feature name='avx512-vpopcntdq'/>
diff --git a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
index aadac29f25..4bebb680d0 100644
--- a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
@@ -584,7 +584,7 @@
         <feature name='xsaveerptr'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='avx'/>
         <feature name='avx2'/>
@@ -597,7 +597,7 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v3'>Haswell-IBRS</model>
       <blockers model='Haswell-IBRS'>
         <feature name='avx'/>
         <feature name='avx2'/>
@@ -611,7 +611,7 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v2'>Haswell-noTSX</model>
       <blockers model='Haswell-noTSX'>
         <feature name='avx'/>
         <feature name='avx2'/>
@@ -622,7 +622,7 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v4'>Haswell-noTSX-IBRS</model>
       <blockers model='Haswell-noTSX-IBRS'>
         <feature name='avx'/>
         <feature name='avx2'/>
@@ -634,6 +634,56 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v1</model>
+      <blockers model='Haswell-v1'>
+        <feature name='avx'/>
+        <feature name='avx2'/>
+        <feature name='f16c'/>
+        <feature name='fma'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v2</model>
+      <blockers model='Haswell-v2'>
+        <feature name='avx'/>
+        <feature name='avx2'/>
+        <feature name='f16c'/>
+        <feature name='fma'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v3</model>
+      <blockers model='Haswell-v3'>
+        <feature name='avx'/>
+        <feature name='avx2'/>
+        <feature name='f16c'/>
+        <feature name='fma'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='spec-ctrl'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v4</model>
+      <blockers model='Haswell-v4'>
+        <feature name='avx'/>
+        <feature name='avx2'/>
+        <feature name='f16c'/>
+        <feature name='fma'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='spec-ctrl'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='Icelake-Server-v1'>Icelake-Server</model>
       <blockers model='Icelake-Server'>
         <feature name='3dnowprefetch'/>
diff --git a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
index 1a8fb7a7fa..f4c7fb0089 100644
--- a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
@@ -305,7 +305,7 @@
         <feature name='pku'/>
       </blockers>
       <model usable='yes' vendor='AMD'>EPYC-Rome</model>
-      <model usable='no' vendor='Intel'>Haswell</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -313,7 +313,7 @@
         <feature name='pcid'/>
         <feature name='rtm'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v3'>Haswell-IBRS</model>
       <blockers model='Haswell-IBRS'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -322,19 +322,49 @@
         <feature name='rtm'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v2'>Haswell-noTSX</model>
       <blockers model='Haswell-noTSX'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v4'>Haswell-noTSX-IBRS</model>
       <blockers model='Haswell-noTSX-IBRS'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v1</model>
+      <blockers model='Haswell-v1'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v2</model>
+      <blockers model='Haswell-v2'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v3</model>
+      <blockers model='Haswell-v3'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v4</model>
+      <blockers model='Haswell-v4'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='Icelake-Server-v1'>Icelake-Server</model>
       <blockers model='Icelake-Server'>
         <feature name='avx512-vpopcntdq'/>
diff --git a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
index 2751f9a93f..a0fb5fad67 100644
--- a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
@@ -311,7 +311,7 @@
         <feature name='pku'/>
       </blockers>
       <model usable='yes' vendor='AMD'>EPYC-Rome</model>
-      <model usable='no' vendor='Intel'>Haswell</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -319,7 +319,7 @@
         <feature name='pcid'/>
         <feature name='rtm'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v3'>Haswell-IBRS</model>
       <blockers model='Haswell-IBRS'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -328,19 +328,49 @@
         <feature name='rtm'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v2'>Haswell-noTSX</model>
       <blockers model='Haswell-noTSX'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v4'>Haswell-noTSX-IBRS</model>
       <blockers model='Haswell-noTSX-IBRS'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v1</model>
+      <blockers model='Haswell-v1'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v2</model>
+      <blockers model='Haswell-v2'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v3</model>
+      <blockers model='Haswell-v3'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v4</model>
+      <blockers model='Haswell-v4'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='Icelake-Server-v1'>Icelake-Server</model>
       <blockers model='Icelake-Server'>
         <feature name='avx512-vpopcntdq'/>
diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
index a891514df0..17e4b135bb 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
@@ -481,7 +481,7 @@
         <feature name='xsaveerptr'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='hle'/>
         <feature name='invpcid'/>
@@ -490,7 +490,7 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v3'>Haswell-IBRS</model>
       <blockers model='Haswell-IBRS'>
         <feature name='hle'/>
         <feature name='invpcid'/>
@@ -500,14 +500,14 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v2'>Haswell-noTSX</model>
       <blockers model='Haswell-noTSX'>
         <feature name='invpcid'/>
         <feature name='pcid'/>
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v4'>Haswell-noTSX-IBRS</model>
       <blockers model='Haswell-noTSX-IBRS'>
         <feature name='invpcid'/>
         <feature name='pcid'/>
@@ -515,6 +515,40 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v1</model>
+      <blockers model='Haswell-v1'>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v2</model>
+      <blockers model='Haswell-v2'>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v3</model>
+      <blockers model='Haswell-v3'>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='spec-ctrl'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v4</model>
+      <blockers model='Haswell-v4'>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='spec-ctrl'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='Icelake-Server-v1'>Icelake-Server</model>
       <blockers model='Icelake-Server'>
         <feature name='3dnowprefetch'/>
diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
index a891514df0..17e4b135bb 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
@@ -481,7 +481,7 @@
         <feature name='xsaveerptr'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='hle'/>
         <feature name='invpcid'/>
@@ -490,7 +490,7 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v3'>Haswell-IBRS</model>
       <blockers model='Haswell-IBRS'>
         <feature name='hle'/>
         <feature name='invpcid'/>
@@ -500,14 +500,14 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v2'>Haswell-noTSX</model>
       <blockers model='Haswell-noTSX'>
         <feature name='invpcid'/>
         <feature name='pcid'/>
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v4'>Haswell-noTSX-IBRS</model>
       <blockers model='Haswell-noTSX-IBRS'>
         <feature name='invpcid'/>
         <feature name='pcid'/>
@@ -515,6 +515,40 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v1</model>
+      <blockers model='Haswell-v1'>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v2</model>
+      <blockers model='Haswell-v2'>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v3</model>
+      <blockers model='Haswell-v3'>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='spec-ctrl'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v4</model>
+      <blockers model='Haswell-v4'>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='spec-ctrl'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='Icelake-Server-v1'>Icelake-Server</model>
       <blockers model='Icelake-Server'>
         <feature name='3dnowprefetch'/>
diff --git a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
index eaaabd40e2..17bd1d5c75 100644
--- a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
@@ -310,7 +310,7 @@
         <feature name='pku'/>
       </blockers>
       <model usable='yes' vendor='AMD'>EPYC-Rome</model>
-      <model usable='no' vendor='Intel'>Haswell</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -318,7 +318,7 @@
         <feature name='pcid'/>
         <feature name='rtm'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v3'>Haswell-IBRS</model>
       <blockers model='Haswell-IBRS'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -327,19 +327,49 @@
         <feature name='rtm'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v2'>Haswell-noTSX</model>
       <blockers model='Haswell-noTSX'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v4'>Haswell-noTSX-IBRS</model>
       <blockers model='Haswell-noTSX-IBRS'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v1</model>
+      <blockers model='Haswell-v1'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v2</model>
+      <blockers model='Haswell-v2'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v3</model>
+      <blockers model='Haswell-v3'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v4</model>
+      <blockers model='Haswell-v4'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='Icelake-Server-v1'>Icelake-Server</model>
       <blockers model='Icelake-Server'>
         <feature name='avx512-vpopcntdq'/>
diff --git a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
index 5f16ac097d..9e69036f90 100644
--- a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
@@ -311,7 +311,7 @@
         <feature name='pku'/>
       </blockers>
       <model usable='yes' vendor='AMD'>EPYC-Rome</model>
-      <model usable='no' vendor='Intel'>Haswell</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -319,7 +319,7 @@
         <feature name='pcid'/>
         <feature name='rtm'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v3'>Haswell-IBRS</model>
       <blockers model='Haswell-IBRS'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -328,19 +328,49 @@
         <feature name='rtm'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v2'>Haswell-noTSX</model>
       <blockers model='Haswell-noTSX'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v4'>Haswell-noTSX-IBRS</model>
       <blockers model='Haswell-noTSX-IBRS'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v1</model>
+      <blockers model='Haswell-v1'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v2</model>
+      <blockers model='Haswell-v2'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v3</model>
+      <blockers model='Haswell-v3'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v4</model>
+      <blockers model='Haswell-v4'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='Icelake-Server-v1'>Icelake-Server</model>
       <blockers model='Icelake-Server'>
         <feature name='avx512-vpopcntdq'/>
diff --git a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
index 4951414527..3192c6cd1f 100644
--- a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
@@ -484,7 +484,7 @@
         <feature name='xsaveerptr'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='hle'/>
         <feature name='invpcid'/>
@@ -493,7 +493,7 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v3'>Haswell-IBRS</model>
       <blockers model='Haswell-IBRS'>
         <feature name='hle'/>
         <feature name='invpcid'/>
@@ -503,14 +503,14 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v2'>Haswell-noTSX</model>
       <blockers model='Haswell-noTSX'>
         <feature name='invpcid'/>
         <feature name='pcid'/>
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v4'>Haswell-noTSX-IBRS</model>
       <blockers model='Haswell-noTSX-IBRS'>
         <feature name='invpcid'/>
         <feature name='pcid'/>
@@ -518,6 +518,40 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v1</model>
+      <blockers model='Haswell-v1'>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v2</model>
+      <blockers model='Haswell-v2'>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v3</model>
+      <blockers model='Haswell-v3'>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='spec-ctrl'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v4</model>
+      <blockers model='Haswell-v4'>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='spec-ctrl'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='Icelake-Server-v1'>Icelake-Server</model>
       <blockers model='Icelake-Server'>
         <feature name='3dnowprefetch'/>
diff --git a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
index e90833b281..79e5eeddc6 100644
--- a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
@@ -310,7 +310,7 @@
         <feature name='pku'/>
       </blockers>
       <model usable='yes' vendor='AMD'>EPYC-Rome</model>
-      <model usable='no' vendor='Intel'>Haswell</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -318,7 +318,7 @@
         <feature name='pcid'/>
         <feature name='rtm'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v3'>Haswell-IBRS</model>
       <blockers model='Haswell-IBRS'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -327,19 +327,49 @@
         <feature name='rtm'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v2'>Haswell-noTSX</model>
       <blockers model='Haswell-noTSX'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v4'>Haswell-noTSX-IBRS</model>
       <blockers model='Haswell-noTSX-IBRS'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v1</model>
+      <blockers model='Haswell-v1'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v2</model>
+      <blockers model='Haswell-v2'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v3</model>
+      <blockers model='Haswell-v3'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v4</model>
+      <blockers model='Haswell-v4'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='Icelake-Server-v1'>Icelake-Server</model>
       <blockers model='Icelake-Server'>
         <feature name='avx512-vpopcntdq'/>
diff --git a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
index 708cfb621c..dfbaeb4d7a 100644
--- a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
@@ -447,7 +447,7 @@
         <feature name='xfd'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -455,7 +455,7 @@
         <feature name='pcid'/>
         <feature name='rtm'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v3'>Haswell-IBRS</model>
       <blockers model='Haswell-IBRS'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -464,19 +464,49 @@
         <feature name='rtm'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v2'>Haswell-noTSX</model>
       <blockers model='Haswell-noTSX'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v4'>Haswell-noTSX-IBRS</model>
       <blockers model='Haswell-noTSX-IBRS'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v1</model>
+      <blockers model='Haswell-v1'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v2</model>
+      <blockers model='Haswell-v2'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v3</model>
+      <blockers model='Haswell-v3'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v4</model>
+      <blockers model='Haswell-v4'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='Icelake-Server-v1'>Icelake-Server</model>
       <blockers model='Icelake-Server'>
         <feature name='avx512-vpopcntdq'/>
diff --git a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
index 468a78e05a..035eb24b03 100644
--- a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
@@ -517,7 +517,7 @@
         <feature name='xsavec'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='hle'/>
         <feature name='invpcid'/>
@@ -526,7 +526,7 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v3'>Haswell-IBRS</model>
       <blockers model='Haswell-IBRS'>
         <feature name='hle'/>
         <feature name='invpcid'/>
@@ -536,14 +536,14 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v2'>Haswell-noTSX</model>
       <blockers model='Haswell-noTSX'>
         <feature name='invpcid'/>
         <feature name='pcid'/>
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v4'>Haswell-noTSX-IBRS</model>
       <blockers model='Haswell-noTSX-IBRS'>
         <feature name='invpcid'/>
         <feature name='pcid'/>
@@ -551,6 +551,40 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v1</model>
+      <blockers model='Haswell-v1'>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v2</model>
+      <blockers model='Haswell-v2'>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v3</model>
+      <blockers model='Haswell-v3'>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='spec-ctrl'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v4</model>
+      <blockers model='Haswell-v4'>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='spec-ctrl'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='Icelake-Server-v1'>Icelake-Server</model>
       <blockers model='Icelake-Server'>
         <feature name='avx512-vpopcntdq'/>
diff --git a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
index 54320ebc71..13aa743b8a 100644
--- a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
@@ -446,7 +446,7 @@
         <feature name='xfd'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -454,7 +454,7 @@
         <feature name='pcid'/>
         <feature name='rtm'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v3'>Haswell-IBRS</model>
       <blockers model='Haswell-IBRS'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -463,19 +463,49 @@
         <feature name='rtm'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v2'>Haswell-noTSX</model>
       <blockers model='Haswell-noTSX'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v4'>Haswell-noTSX-IBRS</model>
       <blockers model='Haswell-noTSX-IBRS'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v1</model>
+      <blockers model='Haswell-v1'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v2</model>
+      <blockers model='Haswell-v2'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v3</model>
+      <blockers model='Haswell-v3'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v4</model>
+      <blockers model='Haswell-v4'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='Icelake-Server-v1'>Icelake-Server</model>
       <blockers model='Icelake-Server'>
         <feature name='avx512-vpopcntdq'/>
diff --git a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
index 8df44a2e65..649abc64fc 100644
--- a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
@@ -448,7 +448,7 @@
         <feature name='xfd'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -456,7 +456,7 @@
         <feature name='pcid'/>
         <feature name='rtm'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v3'>Haswell-IBRS</model>
       <blockers model='Haswell-IBRS'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -465,19 +465,49 @@
         <feature name='rtm'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v2'>Haswell-noTSX</model>
       <blockers model='Haswell-noTSX'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v4'>Haswell-noTSX-IBRS</model>
       <blockers model='Haswell-noTSX-IBRS'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v1</model>
+      <blockers model='Haswell-v1'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v2</model>
+      <blockers model='Haswell-v2'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v3</model>
+      <blockers model='Haswell-v3'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v4</model>
+      <blockers model='Haswell-v4'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='Icelake-Server-v1'>Icelake-Server</model>
       <blockers model='Icelake-Server'>
         <feature name='avx512-vpopcntdq'/>
diff --git a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
index 8767ab2872..9451fc7a44 100644
--- a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
@@ -509,7 +509,7 @@
         <feature name='xsavec'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='hle'/>
         <feature name='invpcid'/>
@@ -518,7 +518,7 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v3'>Haswell-IBRS</model>
       <blockers model='Haswell-IBRS'>
         <feature name='hle'/>
         <feature name='invpcid'/>
@@ -528,14 +528,14 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v2'>Haswell-noTSX</model>
       <blockers model='Haswell-noTSX'>
         <feature name='invpcid'/>
         <feature name='pcid'/>
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v4'>Haswell-noTSX-IBRS</model>
       <blockers model='Haswell-noTSX-IBRS'>
         <feature name='invpcid'/>
         <feature name='pcid'/>
@@ -543,6 +543,40 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v1</model>
+      <blockers model='Haswell-v1'>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v2</model>
+      <blockers model='Haswell-v2'>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v3</model>
+      <blockers model='Haswell-v3'>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='spec-ctrl'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v4</model>
+      <blockers model='Haswell-v4'>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='spec-ctrl'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='Icelake-Server-v1'>Icelake-Server</model>
       <blockers model='Icelake-Server'>
         <feature name='avx512-vpopcntdq'/>
diff --git a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
index f6959a66eb..b8d4756e68 100644
--- a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
@@ -447,7 +447,7 @@
         <feature name='xfd'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -455,7 +455,7 @@
         <feature name='pcid'/>
         <feature name='rtm'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v3'>Haswell-IBRS</model>
       <blockers model='Haswell-IBRS'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -464,19 +464,49 @@
         <feature name='rtm'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v2'>Haswell-noTSX</model>
       <blockers model='Haswell-noTSX'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v4'>Haswell-noTSX-IBRS</model>
       <blockers model='Haswell-noTSX-IBRS'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v1</model>
+      <blockers model='Haswell-v1'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v2</model>
+      <blockers model='Haswell-v2'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v3</model>
+      <blockers model='Haswell-v3'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v4</model>
+      <blockers model='Haswell-v4'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='Icelake-Server-v1'>Icelake-Server</model>
       <blockers model='Icelake-Server'>
         <feature name='avx512-vpopcntdq'/>
diff --git a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
index f338a2a0f4..dfcacf6e6f 100644
--- a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
@@ -448,7 +448,7 @@
         <feature name='xfd'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -456,7 +456,7 @@
         <feature name='pcid'/>
         <feature name='rtm'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v3'>Haswell-IBRS</model>
       <blockers model='Haswell-IBRS'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -465,19 +465,49 @@
         <feature name='rtm'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v2'>Haswell-noTSX</model>
       <blockers model='Haswell-noTSX'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v4'>Haswell-noTSX-IBRS</model>
       <blockers model='Haswell-noTSX-IBRS'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v1</model>
+      <blockers model='Haswell-v1'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v2</model>
+      <blockers model='Haswell-v2'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v3</model>
+      <blockers model='Haswell-v3'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v4</model>
+      <blockers model='Haswell-v4'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='Icelake-Server-v1'>Icelake-Server</model>
       <blockers model='Icelake-Server'>
         <feature name='avx512-vpopcntdq'/>
diff --git a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
index 3b799a6c96..17b0727063 100644
--- a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
@@ -491,7 +491,7 @@
         <feature name='xsavec'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='hle'/>
         <feature name='invpcid'/>
@@ -499,7 +499,7 @@
         <feature name='rtm'/>
         <feature name='tsc-deadline'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v3'>Haswell-IBRS</model>
       <blockers model='Haswell-IBRS'>
         <feature name='hle'/>
         <feature name='invpcid'/>
@@ -508,19 +508,49 @@
         <feature name='spec-ctrl'/>
         <feature name='tsc-deadline'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v2'>Haswell-noTSX</model>
       <blockers model='Haswell-noTSX'>
         <feature name='invpcid'/>
         <feature name='pcid'/>
         <feature name='tsc-deadline'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v4'>Haswell-noTSX-IBRS</model>
       <blockers model='Haswell-noTSX-IBRS'>
         <feature name='invpcid'/>
         <feature name='pcid'/>
         <feature name='spec-ctrl'/>
         <feature name='tsc-deadline'/>
       </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v1</model>
+      <blockers model='Haswell-v1'>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='tsc-deadline'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v2</model>
+      <blockers model='Haswell-v2'>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='tsc-deadline'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v3</model>
+      <blockers model='Haswell-v3'>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='spec-ctrl'/>
+        <feature name='tsc-deadline'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v4</model>
+      <blockers model='Haswell-v4'>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='spec-ctrl'/>
+        <feature name='tsc-deadline'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='Icelake-Server-v1'>Icelake-Server</model>
       <blockers model='Icelake-Server'>
         <feature name='avx512-vpopcntdq'/>
diff --git a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
index cbffd21e13..b378b91201 100644
--- a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
@@ -447,7 +447,7 @@
         <feature name='xfd'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -455,7 +455,7 @@
         <feature name='pcid'/>
         <feature name='rtm'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v3'>Haswell-IBRS</model>
       <blockers model='Haswell-IBRS'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -464,19 +464,49 @@
         <feature name='rtm'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v2'>Haswell-noTSX</model>
       <blockers model='Haswell-noTSX'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v4'>Haswell-noTSX-IBRS</model>
       <blockers model='Haswell-noTSX-IBRS'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v1</model>
+      <blockers model='Haswell-v1'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v2</model>
+      <blockers model='Haswell-v2'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v3</model>
+      <blockers model='Haswell-v3'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v4</model>
+      <blockers model='Haswell-v4'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='Icelake-Server-v1'>Icelake-Server</model>
       <blockers model='Icelake-Server'>
         <feature name='avx512-vpopcntdq'/>
diff --git a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
index 3f59106b1a..e48cdd2a2e 100644
--- a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
@@ -452,7 +452,7 @@
         <feature name='xfd'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -460,7 +460,7 @@
         <feature name='pcid'/>
         <feature name='rtm'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v3'>Haswell-IBRS</model>
       <blockers model='Haswell-IBRS'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -469,19 +469,49 @@
         <feature name='rtm'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v2'>Haswell-noTSX</model>
       <blockers model='Haswell-noTSX'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v4'>Haswell-noTSX-IBRS</model>
       <blockers model='Haswell-noTSX-IBRS'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v1</model>
+      <blockers model='Haswell-v1'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v2</model>
+      <blockers model='Haswell-v2'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v3</model>
+      <blockers model='Haswell-v3'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v4</model>
+      <blockers model='Haswell-v4'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='Icelake-Server-v1'>Icelake-Server</model>
       <blockers model='Icelake-Server'>
         <feature name='avx512-vpopcntdq'/>
diff --git a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
index 42a0c34a34..08d7cc0ca7 100644
--- a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
@@ -490,7 +490,7 @@
         <feature name='xsavec'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='hle'/>
         <feature name='invpcid'/>
@@ -498,7 +498,7 @@
         <feature name='rtm'/>
         <feature name='tsc-deadline'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v3'>Haswell-IBRS</model>
       <blockers model='Haswell-IBRS'>
         <feature name='hle'/>
         <feature name='invpcid'/>
@@ -507,19 +507,49 @@
         <feature name='spec-ctrl'/>
         <feature name='tsc-deadline'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v2'>Haswell-noTSX</model>
       <blockers model='Haswell-noTSX'>
         <feature name='invpcid'/>
         <feature name='pcid'/>
         <feature name='tsc-deadline'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v4'>Haswell-noTSX-IBRS</model>
       <blockers model='Haswell-noTSX-IBRS'>
         <feature name='invpcid'/>
         <feature name='pcid'/>
         <feature name='spec-ctrl'/>
         <feature name='tsc-deadline'/>
       </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v1</model>
+      <blockers model='Haswell-v1'>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='tsc-deadline'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v2</model>
+      <blockers model='Haswell-v2'>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='tsc-deadline'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v3</model>
+      <blockers model='Haswell-v3'>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='spec-ctrl'/>
+        <feature name='tsc-deadline'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v4</model>
+      <blockers model='Haswell-v4'>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='spec-ctrl'/>
+        <feature name='tsc-deadline'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='Icelake-Server-v1'>Icelake-Server</model>
       <blockers model='Icelake-Server'>
         <feature name='avx512-vpopcntdq'/>
diff --git a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
index f3f3b54a8f..684c342df6 100644
--- a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
@@ -451,7 +451,7 @@
         <feature name='xfd'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -459,7 +459,7 @@
         <feature name='pcid'/>
         <feature name='rtm'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v3'>Haswell-IBRS</model>
       <blockers model='Haswell-IBRS'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -468,19 +468,49 @@
         <feature name='rtm'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v2'>Haswell-noTSX</model>
       <blockers model='Haswell-noTSX'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v4'>Haswell-noTSX-IBRS</model>
       <blockers model='Haswell-noTSX-IBRS'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v1</model>
+      <blockers model='Haswell-v1'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v2</model>
+      <blockers model='Haswell-v2'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v3</model>
+      <blockers model='Haswell-v3'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v4</model>
+      <blockers model='Haswell-v4'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='Icelake-Server-v1'>Icelake-Server</model>
       <blockers model='Icelake-Server'>
         <feature name='avx512-vpopcntdq'/>
diff --git a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
index f8dfc27dc3..2d670ffaf4 100644
--- a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
@@ -452,7 +452,7 @@
         <feature name='xfd'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -460,7 +460,7 @@
         <feature name='pcid'/>
         <feature name='rtm'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v3'>Haswell-IBRS</model>
       <blockers model='Haswell-IBRS'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -469,19 +469,49 @@
         <feature name='rtm'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v2'>Haswell-noTSX</model>
       <blockers model='Haswell-noTSX'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v4'>Haswell-noTSX-IBRS</model>
       <blockers model='Haswell-noTSX-IBRS'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v1</model>
+      <blockers model='Haswell-v1'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v2</model>
+      <blockers model='Haswell-v2'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v3</model>
+      <blockers model='Haswell-v3'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v4</model>
+      <blockers model='Haswell-v4'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='Icelake-Server-v1'>Icelake-Server</model>
       <blockers model='Icelake-Server'>
         <feature name='avx512-vpopcntdq'/>
diff --git a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
index 223eaaf68d..9823a24b7d 100644
--- a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
@@ -490,7 +490,7 @@
         <feature name='xsavec'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='hle'/>
         <feature name='invpcid'/>
@@ -498,7 +498,7 @@
         <feature name='rtm'/>
         <feature name='tsc-deadline'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v3'>Haswell-IBRS</model>
       <blockers model='Haswell-IBRS'>
         <feature name='hle'/>
         <feature name='invpcid'/>
@@ -507,19 +507,49 @@
         <feature name='spec-ctrl'/>
         <feature name='tsc-deadline'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v2'>Haswell-noTSX</model>
       <blockers model='Haswell-noTSX'>
         <feature name='invpcid'/>
         <feature name='pcid'/>
         <feature name='tsc-deadline'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v4'>Haswell-noTSX-IBRS</model>
       <blockers model='Haswell-noTSX-IBRS'>
         <feature name='invpcid'/>
         <feature name='pcid'/>
         <feature name='spec-ctrl'/>
         <feature name='tsc-deadline'/>
       </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v1</model>
+      <blockers model='Haswell-v1'>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='tsc-deadline'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v2</model>
+      <blockers model='Haswell-v2'>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='tsc-deadline'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v3</model>
+      <blockers model='Haswell-v3'>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='spec-ctrl'/>
+        <feature name='tsc-deadline'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v4</model>
+      <blockers model='Haswell-v4'>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='spec-ctrl'/>
+        <feature name='tsc-deadline'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='Icelake-Server-v1'>Icelake-Server</model>
       <blockers model='Icelake-Server'>
         <feature name='avx512-vpopcntdq'/>
diff --git a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
index 21e1746110..ce834cb4d5 100644
--- a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
@@ -451,7 +451,7 @@
         <feature name='xfd'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -459,7 +459,7 @@
         <feature name='pcid'/>
         <feature name='rtm'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v3'>Haswell-IBRS</model>
       <blockers model='Haswell-IBRS'>
         <feature name='erms'/>
         <feature name='hle'/>
@@ -468,19 +468,49 @@
         <feature name='rtm'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v2'>Haswell-noTSX</model>
       <blockers model='Haswell-noTSX'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
       </blockers>
-      <model usable='no' vendor='Intel'>Haswell-noTSX-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='Haswell-v4'>Haswell-noTSX-IBRS</model>
       <blockers model='Haswell-noTSX-IBRS'>
         <feature name='erms'/>
         <feature name='invpcid'/>
         <feature name='pcid'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v1</model>
+      <blockers model='Haswell-v1'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v2</model>
+      <blockers model='Haswell-v2'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v3</model>
+      <blockers model='Haswell-v3'>
+        <feature name='erms'/>
+        <feature name='hle'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='rtm'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>Haswell-v4</model>
+      <blockers model='Haswell-v4'>
+        <feature name='erms'/>
+        <feature name='invpcid'/>
+        <feature name='pcid'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='Icelake-Server-v1'>Icelake-Server</model>
       <blockers model='Icelake-Server'>
         <feature name='avx512-vpopcntdq'/>
-- 
2.47.0