[PATCH v2 33/36] cpu_map: Add versions of EPYC CPU model

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

Notes:
    Version 2:
    - EPYC-v2 defined as EPYC-IBPB
    - <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_EPYC-v1.xml                   |  6 ++
 src/cpu_map/x86_EPYC-v2.xml                   |  6 ++
 src/cpu_map/x86_EPYC-v3.xml                   | 79 +++++++++++++++++++
 src/cpu_map/x86_EPYC-v4.xml                   | 79 +++++++++++++++++++
 .../x86_64-cpuid-EPYC-7601-32-Core-host.xml   |  2 +-
 ...6_64-cpuid-EPYC-7601-32-Core-ibpb-host.xml |  8 +-
 ...64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml |  2 +-
 .../domaincapsdata/qemu_5.2.0-q35.x86_64.xml  |  7 +-
 .../domaincapsdata/qemu_5.2.0-tcg.x86_64.xml  | 58 +++++++++++++-
 tests/domaincapsdata/qemu_5.2.0.x86_64.xml    |  7 +-
 .../domaincapsdata/qemu_6.0.0-q35.x86_64.xml  |  7 +-
 .../domaincapsdata/qemu_6.0.0-tcg.x86_64.xml  | 58 +++++++++++++-
 tests/domaincapsdata/qemu_6.0.0.x86_64.xml    |  7 +-
 .../domaincapsdata/qemu_6.1.0-q35.x86_64.xml  |  7 +-
 .../domaincapsdata/qemu_6.1.0-tcg.x86_64.xml  | 58 +++++++++++++-
 tests/domaincapsdata/qemu_6.1.0.x86_64.xml    |  7 +-
 .../domaincapsdata/qemu_6.2.0-q35.x86_64.xml  |  7 +-
 .../domaincapsdata/qemu_6.2.0-tcg.x86_64.xml  | 58 +++++++++++++-
 tests/domaincapsdata/qemu_6.2.0.x86_64.xml    |  7 +-
 .../domaincapsdata/qemu_7.0.0-q35.x86_64.xml  |  7 +-
 .../domaincapsdata/qemu_7.0.0-tcg.x86_64.xml  | 58 +++++++++++++-
 tests/domaincapsdata/qemu_7.0.0.x86_64.xml    |  7 +-
 .../domaincapsdata/qemu_7.1.0-q35.x86_64.xml  |  7 +-
 .../domaincapsdata/qemu_7.1.0-tcg.x86_64.xml  | 58 +++++++++++++-
 tests/domaincapsdata/qemu_7.1.0.x86_64.xml    |  7 +-
 .../domaincapsdata/qemu_7.2.0-q35.x86_64.xml  |  7 +-
 .../qemu_7.2.0-tcg.x86_64+hvf.xml             | 46 ++++++++++-
 .../domaincapsdata/qemu_7.2.0-tcg.x86_64.xml  | 46 ++++++++++-
 tests/domaincapsdata/qemu_7.2.0.x86_64.xml    |  7 +-
 .../domaincapsdata/qemu_8.0.0-q35.x86_64.xml  |  7 +-
 .../domaincapsdata/qemu_8.0.0-tcg.x86_64.xml  | 46 ++++++++++-
 tests/domaincapsdata/qemu_8.0.0.x86_64.xml    |  7 +-
 .../domaincapsdata/qemu_8.1.0-q35.x86_64.xml  | 14 +++-
 .../domaincapsdata/qemu_8.1.0-tcg.x86_64.xml  | 53 ++++++++++++-
 tests/domaincapsdata/qemu_8.1.0.x86_64.xml    | 14 +++-
 .../domaincapsdata/qemu_8.2.0-q35.x86_64.xml  | 14 +++-
 .../domaincapsdata/qemu_8.2.0-tcg.x86_64.xml  | 49 +++++++++++-
 tests/domaincapsdata/qemu_8.2.0.x86_64.xml    | 14 +++-
 .../domaincapsdata/qemu_9.0.0-q35.x86_64.xml  | 14 +++-
 .../domaincapsdata/qemu_9.0.0-tcg.x86_64.xml  | 49 +++++++++++-
 tests/domaincapsdata/qemu_9.0.0.x86_64.xml    | 14 +++-
 .../domaincapsdata/qemu_9.1.0-q35.x86_64.xml  | 14 +++-
 .../domaincapsdata/qemu_9.1.0-tcg.x86_64.xml  | 49 +++++++++++-
 tests/domaincapsdata/qemu_9.1.0.x86_64.xml    | 14 +++-
 .../domaincapsdata/qemu_9.2.0-q35.x86_64.xml  | 14 +++-
 .../domaincapsdata/qemu_9.2.0-tcg.x86_64.xml  | 49 +++++++++++-
 tests/domaincapsdata/qemu_9.2.0.x86_64.xml    | 14 +++-
 49 files changed, 1088 insertions(+), 89 deletions(-)
 create mode 100644 src/cpu_map/x86_EPYC-v1.xml
 create mode 100644 src/cpu_map/x86_EPYC-v2.xml
 create mode 100644 src/cpu_map/x86_EPYC-v3.xml
 create mode 100644 src/cpu_map/x86_EPYC-v4.xml

diff --git a/src/cpu_map/index.xml b/src/cpu_map/index.xml
index 9ea2b86bf7..182f78a31c 100644
--- a/src/cpu_map/index.xml
+++ b/src/cpu_map/index.xml
@@ -122,6 +122,10 @@
       <include filename='x86_Opteron_G5.xml'/>
       <include filename='x86_EPYC.xml'/>
       <include filename='x86_EPYC-IBPB.xml'/>
+      <include filename='x86_EPYC-v1.xml'/>
+      <include filename='x86_EPYC-v2.xml'/>
+      <include filename='x86_EPYC-v3.xml'/>
+      <include filename='x86_EPYC-v4.xml'/>
       <include filename='x86_EPYC-Rome.xml'/>
       <include filename='x86_EPYC-Rome-v1.xml'/>
       <include filename='x86_EPYC-Rome-v2.xml'/>
diff --git a/src/cpu_map/meson.build b/src/cpu_map/meson.build
index 912db3d2de..c7a7fc3c52 100644
--- a/src/cpu_map/meson.build
+++ b/src/cpu_map/meson.build
@@ -49,6 +49,10 @@ cpumap_data = [
   'x86_cpu64-rhel6.xml',
   'x86_Dhyana.xml',
   'x86_EPYC-IBPB.xml',
+  'x86_EPYC-v1.xml',
+  'x86_EPYC-v2.xml',
+  'x86_EPYC-v3.xml',
+  'x86_EPYC-v4.xml',
   'x86_EPYC.xml',
   'x86_EPYC-Genoa.xml',
   'x86_EPYC-Milan-v1.xml',
diff --git a/src/cpu_map/x86_EPYC-v1.xml b/src/cpu_map/x86_EPYC-v1.xml
new file mode 100644
index 0000000000..815a10d67e
--- /dev/null
+++ b/src/cpu_map/x86_EPYC-v1.xml
@@ -0,0 +1,6 @@
+<cpus>
+  <model name='EPYC-v1'>
+    <decode host='on' guest='off'/>
+    <model name='EPYC'/>
+  </model>
+</cpus>
diff --git a/src/cpu_map/x86_EPYC-v2.xml b/src/cpu_map/x86_EPYC-v2.xml
new file mode 100644
index 0000000000..a4e97e7cb6
--- /dev/null
+++ b/src/cpu_map/x86_EPYC-v2.xml
@@ -0,0 +1,6 @@
+<cpus>
+  <model name='EPYC-v2'>
+    <decode host='on' guest='off'/>
+    <model name='EPYC-IBPB'/>
+  </model>
+</cpus>
diff --git a/src/cpu_map/x86_EPYC-v3.xml b/src/cpu_map/x86_EPYC-v3.xml
new file mode 100644
index 0000000000..e8efea7406
--- /dev/null
+++ b/src/cpu_map/x86_EPYC-v3.xml
@@ -0,0 +1,79 @@
+<cpus>
+  <model name='EPYC-v3'>
+    <decode host='on' guest='off'/>
+    <signature family='23' model='1'/>
+    <vendor name='AMD'/>
+    <feature name='3dnowprefetch'/>
+    <feature name='abm'/>
+    <feature name='adx'/>
+    <feature name='aes'/>
+    <feature name='apic'/>
+    <feature name='arat'/>
+    <feature name='avx'/>
+    <feature name='avx2'/>
+    <feature name='bmi1'/>
+    <feature name='bmi2'/>
+    <feature name='clflush'/>
+    <feature name='clflushopt'/>
+    <feature name='clzero'/>
+    <feature name='cmov'/>
+    <feature name='cr8legacy'/>
+    <feature name='cx16'/>
+    <feature name='cx8'/>
+    <feature name='de'/>
+    <feature name='f16c'/>
+    <feature name='fma'/>
+    <feature name='fpu'/>
+    <feature name='fsgsbase'/>
+    <feature name='fxsr'/>
+    <feature name='fxsr_opt'/>
+    <feature name='ibpb'/>
+    <feature name='lahf_lm'/>
+    <feature name='lm'/>
+    <feature name='mca'/>
+    <feature name='mce'/>
+    <feature name='misalignsse'/>
+    <feature name='mmx'/>
+    <feature name='mmxext'/>
+    <feature name='movbe'/>
+    <feature name='msr'/>
+    <feature name='mtrr'/>
+    <feature name='npt'/>
+    <feature name='nrip-save'/>
+    <feature name='nx'/>
+    <feature name='osvw'/>
+    <feature name='pae'/>
+    <feature name='pat'/>
+    <feature name='pclmuldq'/>
+    <feature name='pdpe1gb'/>
+    <feature name='perfctr_core'/>
+    <feature name='pge'/>
+    <feature name='pni'/>
+    <feature name='popcnt'/>
+    <feature name='pse'/>
+    <feature name='pse36'/>
+    <feature name='rdrand'/>
+    <feature name='rdseed'/>
+    <feature name='rdtscp'/>
+    <feature name='sep'/>
+    <feature name='sha-ni'/>
+    <feature name='smap'/>
+    <feature name='smep'/>
+    <feature name='sse'/>
+    <feature name='sse2'/>
+    <feature name='sse4.1'/>
+    <feature name='sse4.2'/>
+    <feature name='sse4a'/>
+    <feature name='ssse3'/>
+    <feature name='svm'/>
+    <feature name='syscall'/>
+    <feature name='tsc'/>
+    <feature name='vme'/>
+    <feature name='xgetbv1'/>
+    <feature name='xsave'/>
+    <feature name='xsavec'/>
+    <feature name='xsaveerptr'/>
+    <feature name='xsaveopt'/>
+    <feature name='xsaves'/>
+  </model>
+</cpus>
diff --git a/src/cpu_map/x86_EPYC-v4.xml b/src/cpu_map/x86_EPYC-v4.xml
new file mode 100644
index 0000000000..c5701af1ca
--- /dev/null
+++ b/src/cpu_map/x86_EPYC-v4.xml
@@ -0,0 +1,79 @@
+<cpus>
+  <model name='EPYC-v4'>
+    <decode host='on' guest='off'/>
+    <signature family='23' model='1'/>
+    <vendor name='AMD'/>
+    <feature name='3dnowprefetch'/>
+    <feature name='abm'/>
+    <feature name='adx'/>
+    <feature name='aes'/>
+    <feature name='apic'/>
+    <feature name='arat'/>
+    <feature name='avx'/>
+    <feature name='avx2'/>
+    <feature name='bmi1'/>
+    <feature name='bmi2'/>
+    <feature name='clflush'/>
+    <feature name='clflushopt'/>
+    <feature name='clzero'/>
+    <feature name='cmov'/>
+    <feature name='cr8legacy'/>
+    <feature name='cx16'/>
+    <feature name='cx8'/>
+    <feature name='de'/>
+    <feature name='f16c'/>
+    <feature name='fma'/>
+    <feature name='fpu'/>
+    <feature name='fsgsbase'/>
+    <feature name='fxsr'/>
+    <feature name='fxsr_opt'/>
+    <feature name='ibpb'/>
+    <feature name='lahf_lm'/>
+    <feature name='lm'/>
+    <feature name='mca'/>
+    <feature name='mce'/>
+    <feature name='misalignsse'/>
+    <feature name='mmx'/>
+    <feature name='mmxext'/>
+    <feature name='movbe'/>
+    <feature name='msr'/>
+    <feature name='mtrr'/>
+    <feature name='npt'/>
+    <feature name='nrip-save'/>
+    <feature name='nx'/>
+    <feature name='osvw'/>
+    <feature name='pae'/>
+    <feature name='pat'/>
+    <feature name='pclmuldq'/>
+    <feature name='pdpe1gb'/>
+    <feature name='perfctr_core'/>
+    <feature name='pge'/>
+    <feature name='pni'/>
+    <feature name='popcnt'/>
+    <feature name='pse'/>
+    <feature name='pse36'/>
+    <feature name='rdrand'/>
+    <feature name='rdseed'/>
+    <feature name='rdtscp'/>
+    <feature name='sep'/>
+    <feature name='sha-ni'/>
+    <feature name='smap'/>
+    <feature name='smep'/>
+    <feature name='sse'/>
+    <feature name='sse2'/>
+    <feature name='sse4.1'/>
+    <feature name='sse4.2'/>
+    <feature name='sse4a'/>
+    <feature name='ssse3'/>
+    <feature name='svm'/>
+    <feature name='syscall'/>
+    <feature name='tsc'/>
+    <feature name='vme'/>
+    <feature name='xgetbv1'/>
+    <feature name='xsave'/>
+    <feature name='xsavec'/>
+    <feature name='xsaveerptr'/>
+    <feature name='xsaveopt'/>
+    <feature name='xsaves'/>
+  </model>
+</cpus>
diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-host.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-host.xml
index 1c3d935532..3646ed05a1 100644
--- a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-host.xml
+++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-host.xml
@@ -1,6 +1,6 @@
 <cpu>
   <arch>x86_64</arch>
-  <model>EPYC</model>
+  <model>EPYC-v1</model>
   <vendor>AMD</vendor>
   <signature family='23' model='1' stepping='2'/>
   <feature name='monitor'/>
diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-host.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-host.xml
index a438ac4db1..89a4c80691 100644
--- a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-host.xml
+++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-host.xml
@@ -1,29 +1,23 @@
 <cpu>
   <arch>x86_64</arch>
-  <model>EPYC-IBPB</model>
+  <model>EPYC-v4</model>
   <vendor>AMD</vendor>
   <signature family='23' model='1' stepping='2'/>
   <feature name='monitor'/>
   <feature name='osxsave'/>
   <feature name='ht'/>
-  <feature name='xsaves'/>
   <feature name='cmp_legacy'/>
   <feature name='extapic'/>
   <feature name='skinit'/>
   <feature name='wdt'/>
   <feature name='tce'/>
   <feature name='topoext'/>
-  <feature name='perfctr_core'/>
   <feature name='perfctr_nb'/>
   <feature name='overflow-recov'/>
   <feature name='succor'/>
   <feature name='invtsc'/>
-  <feature name='clzero'/>
-  <feature name='xsaveerptr'/>
-  <feature name='npt'/>
   <feature name='lbrv'/>
   <feature name='svm-lock'/>
-  <feature name='nrip-save'/>
   <feature name='tsc-scale'/>
   <feature name='vmcb-clean'/>
   <feature name='flushbyasid'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml
index f711efd9f9..dd4b51796d 100644
--- a/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml
+++ b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml
@@ -1,6 +1,6 @@
 <cpu>
   <arch>x86_64</arch>
-  <model>EPYC</model>
+  <model>EPYC-v1</model>
   <vendor>AMD</vendor>
   <signature family='23' model='1' stepping='1'/>
   <feature name='monitor'/>
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 382a47b1eb..ce31b01600 100644
--- a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
@@ -257,10 +257,13 @@
         <feature name='taa-no'/>
       </blockers>
       <model usable='yes' vendor='Hygon'>Dhyana</model>
-      <model usable='yes' vendor='AMD'>EPYC</model>
-      <model usable='yes' vendor='AMD'>EPYC-IBPB</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
       <model usable='yes' vendor='AMD' canonical='EPYC-Rome-v1'>EPYC-Rome</model>
       <model usable='yes' vendor='AMD'>EPYC-Rome-v1</model>
+      <model usable='yes' vendor='AMD'>EPYC-v1</model>
+      <model usable='yes' vendor='AMD'>EPYC-v2</model>
+      <model usable='yes' vendor='AMD'>EPYC-v3</model>
       <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='erms'/>
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 f8669af5d0..4e3e6c194f 100644
--- a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
@@ -432,7 +432,7 @@
         <feature name='topoext'/>
         <feature name='xsavec'/>
       </blockers>
-      <model usable='no' vendor='AMD'>EPYC</model>
+      <model usable='no' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
       <blockers model='EPYC'>
         <feature name='3dnowprefetch'/>
         <feature name='avx'/>
@@ -448,7 +448,7 @@
         <feature name='topoext'/>
         <feature name='xsavec'/>
       </blockers>
-      <model usable='no' vendor='AMD'>EPYC-IBPB</model>
+      <model usable='no' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
       <blockers model='EPYC-IBPB'>
         <feature name='3dnowprefetch'/>
         <feature name='avx'/>
@@ -515,6 +515,60 @@
         <feature name='xsaveerptr'/>
         <feature name='xsaves'/>
       </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v1</model>
+      <blockers model='EPYC-v1'>
+        <feature name='3dnowprefetch'/>
+        <feature name='avx'/>
+        <feature name='avx2'/>
+        <feature name='f16c'/>
+        <feature name='fma'/>
+        <feature name='fxsr_opt'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='rdseed'/>
+        <feature name='sha-ni'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+      </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v2</model>
+      <blockers model='EPYC-v2'>
+        <feature name='3dnowprefetch'/>
+        <feature name='avx'/>
+        <feature name='avx2'/>
+        <feature name='f16c'/>
+        <feature name='fma'/>
+        <feature name='fxsr_opt'/>
+        <feature name='ibpb'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='rdseed'/>
+        <feature name='sha-ni'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+      </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v3</model>
+      <blockers model='EPYC-v3'>
+        <feature name='3dnowprefetch'/>
+        <feature name='avx'/>
+        <feature name='avx2'/>
+        <feature name='clzero'/>
+        <feature name='f16c'/>
+        <feature name='fma'/>
+        <feature name='fxsr_opt'/>
+        <feature name='ibpb'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='perfctr_core'/>
+        <feature name='rdseed'/>
+        <feature name='sha-ni'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+        <feature name='xsaveerptr'/>
+        <feature name='xsaves'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='avx'/>
diff --git a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
index 6b9bddd8b8..bf17e1504c 100644
--- a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
@@ -256,10 +256,13 @@
         <feature name='taa-no'/>
       </blockers>
       <model usable='yes' vendor='Hygon'>Dhyana</model>
-      <model usable='yes' vendor='AMD'>EPYC</model>
-      <model usable='yes' vendor='AMD'>EPYC-IBPB</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
       <model usable='yes' vendor='AMD' canonical='EPYC-Rome-v1'>EPYC-Rome</model>
       <model usable='yes' vendor='AMD'>EPYC-Rome-v1</model>
+      <model usable='yes' vendor='AMD'>EPYC-v1</model>
+      <model usable='yes' vendor='AMD'>EPYC-v2</model>
+      <model usable='yes' vendor='AMD'>EPYC-v3</model>
       <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='erms'/>
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 b63f66fb0b..2d612e907f 100644
--- a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
@@ -257,8 +257,8 @@
         <feature name='taa-no'/>
       </blockers>
       <model usable='yes' vendor='Hygon'>Dhyana</model>
-      <model usable='yes' vendor='AMD'>EPYC</model>
-      <model usable='yes' vendor='AMD'>EPYC-IBPB</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
       <model usable='no' vendor='AMD' canonical='EPYC-Milan-v1'>EPYC-Milan</model>
       <blockers model='EPYC-Milan'>
         <feature name='erms'/>
@@ -283,6 +283,9 @@
       <blockers model='EPYC-Rome-v2'>
         <feature name='ibrs'/>
       </blockers>
+      <model usable='yes' vendor='AMD'>EPYC-v1</model>
+      <model usable='yes' vendor='AMD'>EPYC-v2</model>
+      <model usable='yes' vendor='AMD'>EPYC-v3</model>
       <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='erms'/>
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 97fb021c94..51ed9249c8 100644
--- a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
@@ -433,7 +433,7 @@
         <feature name='topoext'/>
         <feature name='xsavec'/>
       </blockers>
-      <model usable='no' vendor='AMD'>EPYC</model>
+      <model usable='no' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
       <blockers model='EPYC'>
         <feature name='3dnowprefetch'/>
         <feature name='avx'/>
@@ -449,7 +449,7 @@
         <feature name='topoext'/>
         <feature name='xsavec'/>
       </blockers>
-      <model usable='no' vendor='AMD'>EPYC-IBPB</model>
+      <model usable='no' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
       <blockers model='EPYC-IBPB'>
         <feature name='3dnowprefetch'/>
         <feature name='avx'/>
@@ -605,6 +605,60 @@
         <feature name='xsaveerptr'/>
         <feature name='xsaves'/>
       </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v1</model>
+      <blockers model='EPYC-v1'>
+        <feature name='3dnowprefetch'/>
+        <feature name='avx'/>
+        <feature name='avx2'/>
+        <feature name='f16c'/>
+        <feature name='fma'/>
+        <feature name='fxsr_opt'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='rdseed'/>
+        <feature name='sha-ni'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+      </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v2</model>
+      <blockers model='EPYC-v2'>
+        <feature name='3dnowprefetch'/>
+        <feature name='avx'/>
+        <feature name='avx2'/>
+        <feature name='f16c'/>
+        <feature name='fma'/>
+        <feature name='fxsr_opt'/>
+        <feature name='ibpb'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='rdseed'/>
+        <feature name='sha-ni'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+      </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v3</model>
+      <blockers model='EPYC-v3'>
+        <feature name='3dnowprefetch'/>
+        <feature name='avx'/>
+        <feature name='avx2'/>
+        <feature name='clzero'/>
+        <feature name='f16c'/>
+        <feature name='fma'/>
+        <feature name='fxsr_opt'/>
+        <feature name='ibpb'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='perfctr_core'/>
+        <feature name='rdseed'/>
+        <feature name='sha-ni'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+        <feature name='xsaveerptr'/>
+        <feature name='xsaves'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='avx'/>
diff --git a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
index fe6640357e..7265521af9 100644
--- a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
@@ -256,8 +256,8 @@
         <feature name='taa-no'/>
       </blockers>
       <model usable='yes' vendor='Hygon'>Dhyana</model>
-      <model usable='yes' vendor='AMD'>EPYC</model>
-      <model usable='yes' vendor='AMD'>EPYC-IBPB</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
       <model usable='no' vendor='AMD' canonical='EPYC-Milan-v1'>EPYC-Milan</model>
       <blockers model='EPYC-Milan'>
         <feature name='erms'/>
@@ -282,6 +282,9 @@
       <blockers model='EPYC-Rome-v2'>
         <feature name='ibrs'/>
       </blockers>
+      <model usable='yes' vendor='AMD'>EPYC-v1</model>
+      <model usable='yes' vendor='AMD'>EPYC-v2</model>
+      <model usable='yes' vendor='AMD'>EPYC-v3</model>
       <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='erms'/>
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 a31f32d941..f560160fe8 100644
--- a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
@@ -295,8 +295,8 @@
         <feature name='taa-no'/>
       </blockers>
       <model usable='yes' vendor='Hygon'>Dhyana</model>
-      <model usable='yes' vendor='AMD'>EPYC</model>
-      <model usable='yes' vendor='AMD'>EPYC-IBPB</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
       <model usable='no' vendor='AMD' canonical='EPYC-Milan-v1'>EPYC-Milan</model>
       <blockers model='EPYC-Milan'>
         <feature name='erms'/>
@@ -321,6 +321,9 @@
       <blockers model='EPYC-Rome-v2'>
         <feature name='ibrs'/>
       </blockers>
+      <model usable='yes' vendor='AMD'>EPYC-v1</model>
+      <model usable='yes' vendor='AMD'>EPYC-v2</model>
+      <model usable='yes' vendor='AMD'>EPYC-v3</model>
       <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='erms'/>
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 83f3d85fbf..9e7d561505 100644
--- a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
@@ -498,7 +498,7 @@
         <feature name='topoext'/>
         <feature name='xsavec'/>
       </blockers>
-      <model usable='no' vendor='AMD'>EPYC</model>
+      <model usable='no' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
       <blockers model='EPYC'>
         <feature name='3dnowprefetch'/>
         <feature name='avx'/>
@@ -514,7 +514,7 @@
         <feature name='topoext'/>
         <feature name='xsavec'/>
       </blockers>
-      <model usable='no' vendor='AMD'>EPYC-IBPB</model>
+      <model usable='no' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
       <blockers model='EPYC-IBPB'>
         <feature name='3dnowprefetch'/>
         <feature name='avx'/>
@@ -670,6 +670,60 @@
         <feature name='xsaveerptr'/>
         <feature name='xsaves'/>
       </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v1</model>
+      <blockers model='EPYC-v1'>
+        <feature name='3dnowprefetch'/>
+        <feature name='avx'/>
+        <feature name='avx2'/>
+        <feature name='f16c'/>
+        <feature name='fma'/>
+        <feature name='fxsr_opt'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='rdseed'/>
+        <feature name='sha-ni'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+      </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v2</model>
+      <blockers model='EPYC-v2'>
+        <feature name='3dnowprefetch'/>
+        <feature name='avx'/>
+        <feature name='avx2'/>
+        <feature name='f16c'/>
+        <feature name='fma'/>
+        <feature name='fxsr_opt'/>
+        <feature name='ibpb'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='rdseed'/>
+        <feature name='sha-ni'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+      </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v3</model>
+      <blockers model='EPYC-v3'>
+        <feature name='3dnowprefetch'/>
+        <feature name='avx'/>
+        <feature name='avx2'/>
+        <feature name='clzero'/>
+        <feature name='f16c'/>
+        <feature name='fma'/>
+        <feature name='fxsr_opt'/>
+        <feature name='ibpb'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='perfctr_core'/>
+        <feature name='rdseed'/>
+        <feature name='sha-ni'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+        <feature name='xsaveerptr'/>
+        <feature name='xsaves'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='avx'/>
diff --git a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
index 55490e84e2..7f688a81d2 100644
--- a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
@@ -294,8 +294,8 @@
         <feature name='taa-no'/>
       </blockers>
       <model usable='yes' vendor='Hygon'>Dhyana</model>
-      <model usable='yes' vendor='AMD'>EPYC</model>
-      <model usable='yes' vendor='AMD'>EPYC-IBPB</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
       <model usable='no' vendor='AMD' canonical='EPYC-Milan-v1'>EPYC-Milan</model>
       <blockers model='EPYC-Milan'>
         <feature name='erms'/>
@@ -320,6 +320,9 @@
       <blockers model='EPYC-Rome-v2'>
         <feature name='ibrs'/>
       </blockers>
+      <model usable='yes' vendor='AMD'>EPYC-v1</model>
+      <model usable='yes' vendor='AMD'>EPYC-v2</model>
+      <model usable='yes' vendor='AMD'>EPYC-v3</model>
       <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='erms'/>
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 7c95a85710..50ec29a6e9 100644
--- a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
@@ -292,8 +292,8 @@
         <feature name='taa-no'/>
       </blockers>
       <model usable='yes' vendor='Hygon'>Dhyana</model>
-      <model usable='yes' vendor='AMD'>EPYC</model>
-      <model usable='yes' vendor='AMD'>EPYC-IBPB</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
       <model usable='no' vendor='AMD' canonical='EPYC-Milan-v1'>EPYC-Milan</model>
       <blockers model='EPYC-Milan'>
         <feature name='erms'/>
@@ -318,6 +318,9 @@
       <blockers model='EPYC-Rome-v2'>
         <feature name='ibrs'/>
       </blockers>
+      <model usable='yes' vendor='AMD'>EPYC-v1</model>
+      <model usable='yes' vendor='AMD'>EPYC-v2</model>
+      <model usable='yes' vendor='AMD'>EPYC-v3</model>
       <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='erms'/>
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 2bb7c6d3f0..cbec1913d2 100644
--- a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
@@ -497,7 +497,7 @@
         <feature name='topoext'/>
         <feature name='xsavec'/>
       </blockers>
-      <model usable='no' vendor='AMD'>EPYC</model>
+      <model usable='no' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
       <blockers model='EPYC'>
         <feature name='3dnowprefetch'/>
         <feature name='avx'/>
@@ -513,7 +513,7 @@
         <feature name='topoext'/>
         <feature name='xsavec'/>
       </blockers>
-      <model usable='no' vendor='AMD'>EPYC-IBPB</model>
+      <model usable='no' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
       <blockers model='EPYC-IBPB'>
         <feature name='3dnowprefetch'/>
         <feature name='avx'/>
@@ -667,6 +667,60 @@
         <feature name='xsaveerptr'/>
         <feature name='xsaves'/>
       </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v1</model>
+      <blockers model='EPYC-v1'>
+        <feature name='3dnowprefetch'/>
+        <feature name='avx'/>
+        <feature name='avx2'/>
+        <feature name='f16c'/>
+        <feature name='fma'/>
+        <feature name='fxsr_opt'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='rdseed'/>
+        <feature name='sha-ni'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+      </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v2</model>
+      <blockers model='EPYC-v2'>
+        <feature name='3dnowprefetch'/>
+        <feature name='avx'/>
+        <feature name='avx2'/>
+        <feature name='f16c'/>
+        <feature name='fma'/>
+        <feature name='fxsr_opt'/>
+        <feature name='ibpb'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='rdseed'/>
+        <feature name='sha-ni'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+      </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v3</model>
+      <blockers model='EPYC-v3'>
+        <feature name='3dnowprefetch'/>
+        <feature name='avx'/>
+        <feature name='avx2'/>
+        <feature name='clzero'/>
+        <feature name='f16c'/>
+        <feature name='fma'/>
+        <feature name='fxsr_opt'/>
+        <feature name='ibpb'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='perfctr_core'/>
+        <feature name='rdseed'/>
+        <feature name='sha-ni'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+        <feature name='xsaveerptr'/>
+        <feature name='xsaves'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='avx'/>
diff --git a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
index 0bc265f553..08c95bcb4e 100644
--- a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
@@ -291,8 +291,8 @@
         <feature name='taa-no'/>
       </blockers>
       <model usable='yes' vendor='Hygon'>Dhyana</model>
-      <model usable='yes' vendor='AMD'>EPYC</model>
-      <model usable='yes' vendor='AMD'>EPYC-IBPB</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
       <model usable='no' vendor='AMD' canonical='EPYC-Milan-v1'>EPYC-Milan</model>
       <blockers model='EPYC-Milan'>
         <feature name='erms'/>
@@ -317,6 +317,9 @@
       <blockers model='EPYC-Rome-v2'>
         <feature name='ibrs'/>
       </blockers>
+      <model usable='yes' vendor='AMD'>EPYC-v1</model>
+      <model usable='yes' vendor='AMD'>EPYC-v2</model>
+      <model usable='yes' vendor='AMD'>EPYC-v3</model>
       <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='erms'/>
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 7ca80c159a..378b628d4c 100644
--- a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
@@ -293,8 +293,8 @@
         <feature name='taa-no'/>
       </blockers>
       <model usable='yes' vendor='Hygon'>Dhyana</model>
-      <model usable='yes' vendor='AMD'>EPYC</model>
-      <model usable='yes' vendor='AMD'>EPYC-IBPB</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
       <model usable='no' vendor='AMD' canonical='EPYC-Milan-v1'>EPYC-Milan</model>
       <blockers model='EPYC-Milan'>
         <feature name='erms'/>
@@ -319,6 +319,9 @@
       <blockers model='EPYC-Rome-v2'>
         <feature name='ibrs'/>
       </blockers>
+      <model usable='yes' vendor='AMD'>EPYC-v1</model>
+      <model usable='yes' vendor='AMD'>EPYC-v2</model>
+      <model usable='yes' vendor='AMD'>EPYC-v3</model>
       <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='erms'/>
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 a69abcfb0c..ae042caffe 100644
--- a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
@@ -498,7 +498,7 @@
         <feature name='topoext'/>
         <feature name='xsavec'/>
       </blockers>
-      <model usable='no' vendor='AMD'>EPYC</model>
+      <model usable='no' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
       <blockers model='EPYC'>
         <feature name='3dnowprefetch'/>
         <feature name='avx'/>
@@ -514,7 +514,7 @@
         <feature name='topoext'/>
         <feature name='xsavec'/>
       </blockers>
-      <model usable='no' vendor='AMD'>EPYC-IBPB</model>
+      <model usable='no' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
       <blockers model='EPYC-IBPB'>
         <feature name='3dnowprefetch'/>
         <feature name='avx'/>
@@ -663,6 +663,60 @@
         <feature name='xsaveerptr'/>
         <feature name='xsaves'/>
       </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v1</model>
+      <blockers model='EPYC-v1'>
+        <feature name='3dnowprefetch'/>
+        <feature name='avx'/>
+        <feature name='avx2'/>
+        <feature name='f16c'/>
+        <feature name='fma'/>
+        <feature name='fxsr_opt'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='rdseed'/>
+        <feature name='sha-ni'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+      </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v2</model>
+      <blockers model='EPYC-v2'>
+        <feature name='3dnowprefetch'/>
+        <feature name='avx'/>
+        <feature name='avx2'/>
+        <feature name='f16c'/>
+        <feature name='fma'/>
+        <feature name='fxsr_opt'/>
+        <feature name='ibpb'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='rdseed'/>
+        <feature name='sha-ni'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+      </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v3</model>
+      <blockers model='EPYC-v3'>
+        <feature name='3dnowprefetch'/>
+        <feature name='avx'/>
+        <feature name='avx2'/>
+        <feature name='clzero'/>
+        <feature name='f16c'/>
+        <feature name='fma'/>
+        <feature name='fxsr_opt'/>
+        <feature name='ibpb'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='perfctr_core'/>
+        <feature name='rdseed'/>
+        <feature name='sha-ni'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+        <feature name='xsaveerptr'/>
+        <feature name='xsaves'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='avx'/>
diff --git a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
index 09a9ea1792..50d86eac32 100644
--- a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
@@ -292,8 +292,8 @@
         <feature name='taa-no'/>
       </blockers>
       <model usable='yes' vendor='Hygon'>Dhyana</model>
-      <model usable='yes' vendor='AMD'>EPYC</model>
-      <model usable='yes' vendor='AMD'>EPYC-IBPB</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
       <model usable='no' vendor='AMD' canonical='EPYC-Milan-v1'>EPYC-Milan</model>
       <blockers model='EPYC-Milan'>
         <feature name='erms'/>
@@ -318,6 +318,9 @@
       <blockers model='EPYC-Rome-v2'>
         <feature name='ibrs'/>
       </blockers>
+      <model usable='yes' vendor='AMD'>EPYC-v1</model>
+      <model usable='yes' vendor='AMD'>EPYC-v2</model>
+      <model usable='yes' vendor='AMD'>EPYC-v3</model>
       <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='erms'/>
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 a9bf1e222d..174df21fb9 100644
--- a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
@@ -294,8 +294,8 @@
         <feature name='taa-no'/>
       </blockers>
       <model usable='yes' vendor='Hygon'>Dhyana</model>
-      <model usable='yes' vendor='AMD'>EPYC</model>
-      <model usable='yes' vendor='AMD'>EPYC-IBPB</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
       <model usable='no' vendor='AMD' canonical='EPYC-Milan-v1'>EPYC-Milan</model>
       <blockers model='EPYC-Milan'>
         <feature name='erms'/>
@@ -320,6 +320,9 @@
       <blockers model='EPYC-Rome-v2'>
         <feature name='ibrs'/>
       </blockers>
+      <model usable='yes' vendor='AMD'>EPYC-v1</model>
+      <model usable='yes' vendor='AMD'>EPYC-v2</model>
+      <model usable='yes' vendor='AMD'>EPYC-v3</model>
       <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='erms'/>
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 94744c83d4..cc90068b2a 100644
--- a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
@@ -498,7 +498,7 @@
         <feature name='topoext'/>
         <feature name='xsavec'/>
       </blockers>
-      <model usable='no' vendor='AMD'>EPYC</model>
+      <model usable='no' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
       <blockers model='EPYC'>
         <feature name='3dnowprefetch'/>
         <feature name='avx'/>
@@ -514,7 +514,7 @@
         <feature name='topoext'/>
         <feature name='xsavec'/>
       </blockers>
-      <model usable='no' vendor='AMD'>EPYC-IBPB</model>
+      <model usable='no' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
       <blockers model='EPYC-IBPB'>
         <feature name='3dnowprefetch'/>
         <feature name='avx'/>
@@ -663,6 +663,60 @@
         <feature name='xsaveerptr'/>
         <feature name='xsaves'/>
       </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v1</model>
+      <blockers model='EPYC-v1'>
+        <feature name='3dnowprefetch'/>
+        <feature name='avx'/>
+        <feature name='avx2'/>
+        <feature name='f16c'/>
+        <feature name='fma'/>
+        <feature name='fxsr_opt'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='rdseed'/>
+        <feature name='sha-ni'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+      </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v2</model>
+      <blockers model='EPYC-v2'>
+        <feature name='3dnowprefetch'/>
+        <feature name='avx'/>
+        <feature name='avx2'/>
+        <feature name='f16c'/>
+        <feature name='fma'/>
+        <feature name='fxsr_opt'/>
+        <feature name='ibpb'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='rdseed'/>
+        <feature name='sha-ni'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+      </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v3</model>
+      <blockers model='EPYC-v3'>
+        <feature name='3dnowprefetch'/>
+        <feature name='avx'/>
+        <feature name='avx2'/>
+        <feature name='clzero'/>
+        <feature name='f16c'/>
+        <feature name='fma'/>
+        <feature name='fxsr_opt'/>
+        <feature name='ibpb'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='perfctr_core'/>
+        <feature name='rdseed'/>
+        <feature name='sha-ni'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+        <feature name='xsaveerptr'/>
+        <feature name='xsaves'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='avx'/>
diff --git a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
index 3698fa6b95..b632a42369 100644
--- a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
@@ -293,8 +293,8 @@
         <feature name='taa-no'/>
       </blockers>
       <model usable='yes' vendor='Hygon'>Dhyana</model>
-      <model usable='yes' vendor='AMD'>EPYC</model>
-      <model usable='yes' vendor='AMD'>EPYC-IBPB</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
       <model usable='no' vendor='AMD' canonical='EPYC-Milan-v1'>EPYC-Milan</model>
       <blockers model='EPYC-Milan'>
         <feature name='erms'/>
@@ -319,6 +319,9 @@
       <blockers model='EPYC-Rome-v2'>
         <feature name='ibrs'/>
       </blockers>
+      <model usable='yes' vendor='AMD'>EPYC-v1</model>
+      <model usable='yes' vendor='AMD'>EPYC-v2</model>
+      <model usable='yes' vendor='AMD'>EPYC-v3</model>
       <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='erms'/>
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 b628d0fbd7..b001cb4a5e 100644
--- a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
@@ -299,8 +299,8 @@
         <feature name='taa-no'/>
       </blockers>
       <model usable='yes' vendor='Hygon'>Dhyana</model>
-      <model usable='yes' vendor='AMD'>EPYC</model>
-      <model usable='yes' vendor='AMD'>EPYC-IBPB</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
       <model usable='no' vendor='AMD' canonical='EPYC-Milan-v1'>EPYC-Milan</model>
       <blockers model='EPYC-Milan'>
         <feature name='erms'/>
@@ -325,6 +325,9 @@
       <blockers model='EPYC-Rome-v2'>
         <feature name='ibrs'/>
       </blockers>
+      <model usable='yes' vendor='AMD'>EPYC-v1</model>
+      <model usable='yes' vendor='AMD'>EPYC-v2</model>
+      <model usable='yes' vendor='AMD'>EPYC-v3</model>
       <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='erms'/>
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 80e2034cdc..880699c148 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
@@ -411,7 +411,7 @@
         <feature name='topoext'/>
         <feature name='xsavec'/>
       </blockers>
-      <model usable='no' vendor='AMD'>EPYC</model>
+      <model usable='no' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
       <blockers model='EPYC'>
         <feature name='3dnowprefetch'/>
         <feature name='fxsr_opt'/>
@@ -423,7 +423,7 @@
         <feature name='topoext'/>
         <feature name='xsavec'/>
       </blockers>
-      <model usable='no' vendor='AMD'>EPYC-IBPB</model>
+      <model usable='no' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
       <blockers model='EPYC-IBPB'>
         <feature name='3dnowprefetch'/>
         <feature name='fxsr_opt'/>
@@ -548,6 +548,48 @@
         <feature name='xsaveerptr'/>
         <feature name='xsaves'/>
       </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v1</model>
+      <blockers model='EPYC-v1'>
+        <feature name='3dnowprefetch'/>
+        <feature name='fxsr_opt'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='rdseed'/>
+        <feature name='sha-ni'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+      </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v2</model>
+      <blockers model='EPYC-v2'>
+        <feature name='3dnowprefetch'/>
+        <feature name='fxsr_opt'/>
+        <feature name='ibpb'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='rdseed'/>
+        <feature name='sha-ni'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+      </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v3</model>
+      <blockers model='EPYC-v3'>
+        <feature name='3dnowprefetch'/>
+        <feature name='clzero'/>
+        <feature name='fxsr_opt'/>
+        <feature name='ibpb'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='perfctr_core'/>
+        <feature name='rdseed'/>
+        <feature name='sha-ni'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+        <feature name='xsaveerptr'/>
+        <feature name='xsaves'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='hle'/>
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 80e2034cdc..880699c148 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
@@ -411,7 +411,7 @@
         <feature name='topoext'/>
         <feature name='xsavec'/>
       </blockers>
-      <model usable='no' vendor='AMD'>EPYC</model>
+      <model usable='no' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
       <blockers model='EPYC'>
         <feature name='3dnowprefetch'/>
         <feature name='fxsr_opt'/>
@@ -423,7 +423,7 @@
         <feature name='topoext'/>
         <feature name='xsavec'/>
       </blockers>
-      <model usable='no' vendor='AMD'>EPYC-IBPB</model>
+      <model usable='no' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
       <blockers model='EPYC-IBPB'>
         <feature name='3dnowprefetch'/>
         <feature name='fxsr_opt'/>
@@ -548,6 +548,48 @@
         <feature name='xsaveerptr'/>
         <feature name='xsaves'/>
       </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v1</model>
+      <blockers model='EPYC-v1'>
+        <feature name='3dnowprefetch'/>
+        <feature name='fxsr_opt'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='rdseed'/>
+        <feature name='sha-ni'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+      </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v2</model>
+      <blockers model='EPYC-v2'>
+        <feature name='3dnowprefetch'/>
+        <feature name='fxsr_opt'/>
+        <feature name='ibpb'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='rdseed'/>
+        <feature name='sha-ni'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+      </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v3</model>
+      <blockers model='EPYC-v3'>
+        <feature name='3dnowprefetch'/>
+        <feature name='clzero'/>
+        <feature name='fxsr_opt'/>
+        <feature name='ibpb'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='perfctr_core'/>
+        <feature name='rdseed'/>
+        <feature name='sha-ni'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+        <feature name='xsaveerptr'/>
+        <feature name='xsaves'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='hle'/>
diff --git a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
index a1235cc34f..10812e4a76 100644
--- a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
@@ -298,8 +298,8 @@
         <feature name='taa-no'/>
       </blockers>
       <model usable='yes' vendor='Hygon'>Dhyana</model>
-      <model usable='yes' vendor='AMD'>EPYC</model>
-      <model usable='yes' vendor='AMD'>EPYC-IBPB</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
       <model usable='no' vendor='AMD' canonical='EPYC-Milan-v1'>EPYC-Milan</model>
       <blockers model='EPYC-Milan'>
         <feature name='erms'/>
@@ -324,6 +324,9 @@
       <blockers model='EPYC-Rome-v2'>
         <feature name='ibrs'/>
       </blockers>
+      <model usable='yes' vendor='AMD'>EPYC-v1</model>
+      <model usable='yes' vendor='AMD'>EPYC-v2</model>
+      <model usable='yes' vendor='AMD'>EPYC-v3</model>
       <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='erms'/>
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 8aec71596b..528ea3e587 100644
--- a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
@@ -299,8 +299,8 @@
         <feature name='taa-no'/>
       </blockers>
       <model usable='yes' vendor='Hygon'>Dhyana</model>
-      <model usable='yes' vendor='AMD'>EPYC</model>
-      <model usable='yes' vendor='AMD'>EPYC-IBPB</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
       <model usable='no' vendor='AMD' canonical='EPYC-Milan-v1'>EPYC-Milan</model>
       <blockers model='EPYC-Milan'>
         <feature name='erms'/>
@@ -325,6 +325,9 @@
       <blockers model='EPYC-Rome-v2'>
         <feature name='ibrs'/>
       </blockers>
+      <model usable='yes' vendor='AMD'>EPYC-v1</model>
+      <model usable='yes' vendor='AMD'>EPYC-v2</model>
+      <model usable='yes' vendor='AMD'>EPYC-v3</model>
       <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='erms'/>
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 ea81ce32d4..7f84682bce 100644
--- a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
@@ -415,7 +415,7 @@
         <feature name='topoext'/>
         <feature name='xsavec'/>
       </blockers>
-      <model usable='no' vendor='AMD'>EPYC</model>
+      <model usable='no' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
       <blockers model='EPYC'>
         <feature name='3dnowprefetch'/>
         <feature name='fxsr_opt'/>
@@ -427,7 +427,7 @@
         <feature name='topoext'/>
         <feature name='xsavec'/>
       </blockers>
-      <model usable='no' vendor='AMD'>EPYC-IBPB</model>
+      <model usable='no' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
       <blockers model='EPYC-IBPB'>
         <feature name='3dnowprefetch'/>
         <feature name='fxsr_opt'/>
@@ -550,6 +550,48 @@
         <feature name='xsaveerptr'/>
         <feature name='xsaves'/>
       </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v1</model>
+      <blockers model='EPYC-v1'>
+        <feature name='3dnowprefetch'/>
+        <feature name='fxsr_opt'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='rdseed'/>
+        <feature name='sha-ni'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+      </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v2</model>
+      <blockers model='EPYC-v2'>
+        <feature name='3dnowprefetch'/>
+        <feature name='fxsr_opt'/>
+        <feature name='ibpb'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='rdseed'/>
+        <feature name='sha-ni'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+      </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v3</model>
+      <blockers model='EPYC-v3'>
+        <feature name='3dnowprefetch'/>
+        <feature name='clzero'/>
+        <feature name='fxsr_opt'/>
+        <feature name='ibpb'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='perfctr_core'/>
+        <feature name='rdseed'/>
+        <feature name='sha-ni'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+        <feature name='xsaveerptr'/>
+        <feature name='xsaves'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='hle'/>
diff --git a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
index 8502f47d88..09226bc699 100644
--- a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
@@ -298,8 +298,8 @@
         <feature name='taa-no'/>
       </blockers>
       <model usable='yes' vendor='Hygon'>Dhyana</model>
-      <model usable='yes' vendor='AMD'>EPYC</model>
-      <model usable='yes' vendor='AMD'>EPYC-IBPB</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
       <model usable='no' vendor='AMD' canonical='EPYC-Milan-v1'>EPYC-Milan</model>
       <blockers model='EPYC-Milan'>
         <feature name='erms'/>
@@ -324,6 +324,9 @@
       <blockers model='EPYC-Rome-v2'>
         <feature name='ibrs'/>
       </blockers>
+      <model usable='yes' vendor='AMD'>EPYC-v1</model>
+      <model usable='yes' vendor='AMD'>EPYC-v2</model>
+      <model usable='yes' vendor='AMD'>EPYC-v3</model>
       <model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
       <blockers model='Haswell'>
         <feature name='erms'/>
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 d18568f3a6..f039bc6615 100644
--- a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
@@ -303,7 +303,7 @@
         <feature name='xsaves'/>
       </blockers>
       <model usable='yes' vendor='Hygon'>Dhyana</model>
-      <model usable='yes' vendor='AMD'>EPYC</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
       <model usable='no' vendor='AMD'>EPYC-Genoa</model>
       <blockers model='EPYC-Genoa'>
         <feature name='amd-psfd'/>
@@ -334,7 +334,7 @@
         <feature name='vpclmulqdq'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='yes' vendor='AMD'>EPYC-IBPB</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
       <model usable='no' vendor='AMD' canonical='EPYC-Milan-v1'>EPYC-Milan</model>
       <blockers model='EPYC-Milan'>
         <feature name='erms'/>
@@ -392,6 +392,16 @@
       <blockers model='EPYC-Rome-v4'>
         <feature name='ibrs'/>
       </blockers>
+      <model usable='yes' vendor='AMD'>EPYC-v1</model>
+      <model usable='yes' vendor='AMD'>EPYC-v2</model>
+      <model usable='no' vendor='AMD'>EPYC-v3</model>
+      <blockers model='EPYC-v3'>
+        <feature name='xsaves'/>
+      </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v4</model>
+      <blockers model='EPYC-v4'>
+        <feature name='xsaves'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='GraniteRapids-v1'>GraniteRapids</model>
       <blockers model='GraniteRapids'>
         <feature name='amx-bf16'/>
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 66efea8372..b709406703 100644
--- a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
@@ -340,7 +340,7 @@
         <feature name='topoext'/>
         <feature name='xsavec'/>
       </blockers>
-      <model usable='no' vendor='AMD'>EPYC</model>
+      <model usable='no' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
       <blockers model='EPYC'>
         <feature name='fxsr_opt'/>
         <feature name='misalignsse'/>
@@ -390,7 +390,7 @@
         <feature name='xsavec'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='AMD'>EPYC-IBPB</model>
+      <model usable='no' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
       <blockers model='EPYC-IBPB'>
         <feature name='fxsr_opt'/>
         <feature name='ibpb'/>
@@ -544,6 +544,55 @@
         <feature name='topoext'/>
         <feature name='xsavec'/>
       </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v1</model>
+      <blockers model='EPYC-v1'>
+        <feature name='fxsr_opt'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='sha-ni'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+      </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v2</model>
+      <blockers model='EPYC-v2'>
+        <feature name='fxsr_opt'/>
+        <feature name='ibpb'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='sha-ni'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+      </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v3</model>
+      <blockers model='EPYC-v3'>
+        <feature name='clzero'/>
+        <feature name='fxsr_opt'/>
+        <feature name='ibpb'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='perfctr_core'/>
+        <feature name='sha-ni'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+        <feature name='xsaves'/>
+      </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v4</model>
+      <blockers model='EPYC-v4'>
+        <feature name='clzero'/>
+        <feature name='fxsr_opt'/>
+        <feature name='ibpb'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='perfctr_core'/>
+        <feature name='sha-ni'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+        <feature name='xsaves'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='GraniteRapids-v1'>GraniteRapids</model>
       <blockers model='GraniteRapids'>
         <feature name='amx-bf16'/>
diff --git a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
index e32562a964..3af606f714 100644
--- a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
@@ -302,7 +302,7 @@
         <feature name='xsaves'/>
       </blockers>
       <model usable='yes' vendor='Hygon'>Dhyana</model>
-      <model usable='yes' vendor='AMD'>EPYC</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
       <model usable='no' vendor='AMD'>EPYC-Genoa</model>
       <blockers model='EPYC-Genoa'>
         <feature name='amd-psfd'/>
@@ -333,7 +333,7 @@
         <feature name='vpclmulqdq'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='yes' vendor='AMD'>EPYC-IBPB</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
       <model usable='no' vendor='AMD' canonical='EPYC-Milan-v1'>EPYC-Milan</model>
       <blockers model='EPYC-Milan'>
         <feature name='erms'/>
@@ -391,6 +391,16 @@
       <blockers model='EPYC-Rome-v4'>
         <feature name='ibrs'/>
       </blockers>
+      <model usable='yes' vendor='AMD'>EPYC-v1</model>
+      <model usable='yes' vendor='AMD'>EPYC-v2</model>
+      <model usable='no' vendor='AMD'>EPYC-v3</model>
+      <blockers model='EPYC-v3'>
+        <feature name='xsaves'/>
+      </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v4</model>
+      <blockers model='EPYC-v4'>
+        <feature name='xsaves'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='GraniteRapids-v1'>GraniteRapids</model>
       <blockers model='GraniteRapids'>
         <feature name='amx-bf16'/>
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 e92c85d74f..ce59c65721 100644
--- a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
@@ -304,7 +304,7 @@
         <feature name='xsaves'/>
       </blockers>
       <model usable='yes' vendor='Hygon'>Dhyana</model>
-      <model usable='yes' vendor='AMD'>EPYC</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
       <model usable='no' vendor='AMD'>EPYC-Genoa</model>
       <blockers model='EPYC-Genoa'>
         <feature name='amd-psfd'/>
@@ -335,7 +335,7 @@
         <feature name='vpclmulqdq'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='yes' vendor='AMD'>EPYC-IBPB</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
       <model usable='no' vendor='AMD' canonical='EPYC-Milan-v1'>EPYC-Milan</model>
       <blockers model='EPYC-Milan'>
         <feature name='erms'/>
@@ -393,6 +393,16 @@
       <blockers model='EPYC-Rome-v4'>
         <feature name='ibrs'/>
       </blockers>
+      <model usable='yes' vendor='AMD'>EPYC-v1</model>
+      <model usable='yes' vendor='AMD'>EPYC-v2</model>
+      <model usable='no' vendor='AMD'>EPYC-v3</model>
+      <blockers model='EPYC-v3'>
+        <feature name='xsaves'/>
+      </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v4</model>
+      <blockers model='EPYC-v4'>
+        <feature name='xsaves'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='GraniteRapids-v1'>GraniteRapids</model>
       <blockers model='GraniteRapids'>
         <feature name='amx-bf16'/>
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 fdb16866fa..a3bdc02c81 100644
--- a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
@@ -339,7 +339,7 @@
         <feature name='topoext'/>
         <feature name='xsavec'/>
       </blockers>
-      <model usable='no' vendor='AMD'>EPYC</model>
+      <model usable='no' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
       <blockers model='EPYC'>
         <feature name='fxsr_opt'/>
         <feature name='misalignsse'/>
@@ -387,7 +387,7 @@
         <feature name='xsavec'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='AMD'>EPYC-IBPB</model>
+      <model usable='no' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
       <blockers model='EPYC-IBPB'>
         <feature name='fxsr_opt'/>
         <feature name='ibpb'/>
@@ -532,6 +532,51 @@
         <feature name='topoext'/>
         <feature name='xsavec'/>
       </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v1</model>
+      <blockers model='EPYC-v1'>
+        <feature name='fxsr_opt'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+      </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v2</model>
+      <blockers model='EPYC-v2'>
+        <feature name='fxsr_opt'/>
+        <feature name='ibpb'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+      </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v3</model>
+      <blockers model='EPYC-v3'>
+        <feature name='clzero'/>
+        <feature name='fxsr_opt'/>
+        <feature name='ibpb'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='perfctr_core'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+        <feature name='xsaves'/>
+      </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v4</model>
+      <blockers model='EPYC-v4'>
+        <feature name='clzero'/>
+        <feature name='fxsr_opt'/>
+        <feature name='ibpb'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='perfctr_core'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+        <feature name='xsaves'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='GraniteRapids-v1'>GraniteRapids</model>
       <blockers model='GraniteRapids'>
         <feature name='amx-bf16'/>
diff --git a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
index 53dd6165f1..6f903dda95 100644
--- a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
@@ -303,7 +303,7 @@
         <feature name='xsaves'/>
       </blockers>
       <model usable='yes' vendor='Hygon'>Dhyana</model>
-      <model usable='yes' vendor='AMD'>EPYC</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
       <model usable='no' vendor='AMD'>EPYC-Genoa</model>
       <blockers model='EPYC-Genoa'>
         <feature name='amd-psfd'/>
@@ -334,7 +334,7 @@
         <feature name='vpclmulqdq'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='yes' vendor='AMD'>EPYC-IBPB</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
       <model usable='no' vendor='AMD' canonical='EPYC-Milan-v1'>EPYC-Milan</model>
       <blockers model='EPYC-Milan'>
         <feature name='erms'/>
@@ -392,6 +392,16 @@
       <blockers model='EPYC-Rome-v4'>
         <feature name='ibrs'/>
       </blockers>
+      <model usable='yes' vendor='AMD'>EPYC-v1</model>
+      <model usable='yes' vendor='AMD'>EPYC-v2</model>
+      <model usable='no' vendor='AMD'>EPYC-v3</model>
+      <blockers model='EPYC-v3'>
+        <feature name='xsaves'/>
+      </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v4</model>
+      <blockers model='EPYC-v4'>
+        <feature name='xsaves'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='GraniteRapids-v1'>GraniteRapids</model>
       <blockers model='GraniteRapids'>
         <feature name='amx-bf16'/>
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 a1710315a0..83b1f419db 100644
--- a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
@@ -304,7 +304,7 @@
         <feature name='xsaves'/>
       </blockers>
       <model usable='yes' vendor='Hygon'>Dhyana</model>
-      <model usable='yes' vendor='AMD'>EPYC</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
       <model usable='no' vendor='AMD'>EPYC-Genoa</model>
       <blockers model='EPYC-Genoa'>
         <feature name='amd-psfd'/>
@@ -335,7 +335,7 @@
         <feature name='vpclmulqdq'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='yes' vendor='AMD'>EPYC-IBPB</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
       <model usable='no' vendor='AMD' canonical='EPYC-Milan-v1'>EPYC-Milan</model>
       <blockers model='EPYC-Milan'>
         <feature name='erms'/>
@@ -393,6 +393,16 @@
       <blockers model='EPYC-Rome-v4'>
         <feature name='ibrs'/>
       </blockers>
+      <model usable='yes' vendor='AMD'>EPYC-v1</model>
+      <model usable='yes' vendor='AMD'>EPYC-v2</model>
+      <model usable='no' vendor='AMD'>EPYC-v3</model>
+      <blockers model='EPYC-v3'>
+        <feature name='xsaves'/>
+      </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v4</model>
+      <blockers model='EPYC-v4'>
+        <feature name='xsaves'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='GraniteRapids-v1'>GraniteRapids</model>
       <blockers model='GraniteRapids'>
         <feature name='amx-bf16'/>
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 974a596dbb..46841fcb2d 100644
--- a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
@@ -323,7 +323,7 @@
         <feature name='topoext'/>
         <feature name='xsavec'/>
       </blockers>
-      <model usable='no' vendor='AMD'>EPYC</model>
+      <model usable='no' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
       <blockers model='EPYC'>
         <feature name='fxsr_opt'/>
         <feature name='misalignsse'/>
@@ -371,7 +371,7 @@
         <feature name='xsavec'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='AMD'>EPYC-IBPB</model>
+      <model usable='no' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
       <blockers model='EPYC-IBPB'>
         <feature name='fxsr_opt'/>
         <feature name='ibpb'/>
@@ -516,6 +516,51 @@
         <feature name='topoext'/>
         <feature name='xsavec'/>
       </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v1</model>
+      <blockers model='EPYC-v1'>
+        <feature name='fxsr_opt'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+      </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v2</model>
+      <blockers model='EPYC-v2'>
+        <feature name='fxsr_opt'/>
+        <feature name='ibpb'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+      </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v3</model>
+      <blockers model='EPYC-v3'>
+        <feature name='clzero'/>
+        <feature name='fxsr_opt'/>
+        <feature name='ibpb'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='perfctr_core'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+        <feature name='xsaves'/>
+      </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v4</model>
+      <blockers model='EPYC-v4'>
+        <feature name='clzero'/>
+        <feature name='fxsr_opt'/>
+        <feature name='ibpb'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='perfctr_core'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+        <feature name='xsaves'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='GraniteRapids-v1'>GraniteRapids</model>
       <blockers model='GraniteRapids'>
         <feature name='amx-bf16'/>
diff --git a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
index 077fbfa679..7522de5d44 100644
--- a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
@@ -303,7 +303,7 @@
         <feature name='xsaves'/>
       </blockers>
       <model usable='yes' vendor='Hygon'>Dhyana</model>
-      <model usable='yes' vendor='AMD'>EPYC</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
       <model usable='no' vendor='AMD'>EPYC-Genoa</model>
       <blockers model='EPYC-Genoa'>
         <feature name='amd-psfd'/>
@@ -334,7 +334,7 @@
         <feature name='vpclmulqdq'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='yes' vendor='AMD'>EPYC-IBPB</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
       <model usable='no' vendor='AMD' canonical='EPYC-Milan-v1'>EPYC-Milan</model>
       <blockers model='EPYC-Milan'>
         <feature name='erms'/>
@@ -392,6 +392,16 @@
       <blockers model='EPYC-Rome-v4'>
         <feature name='ibrs'/>
       </blockers>
+      <model usable='yes' vendor='AMD'>EPYC-v1</model>
+      <model usable='yes' vendor='AMD'>EPYC-v2</model>
+      <model usable='no' vendor='AMD'>EPYC-v3</model>
+      <blockers model='EPYC-v3'>
+        <feature name='xsaves'/>
+      </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v4</model>
+      <blockers model='EPYC-v4'>
+        <feature name='xsaves'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='GraniteRapids-v1'>GraniteRapids</model>
       <blockers model='GraniteRapids'>
         <feature name='amx-bf16'/>
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 fe3ddbc371..4c348b0959 100644
--- a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
@@ -308,7 +308,7 @@
         <feature name='xsaves'/>
       </blockers>
       <model usable='yes' vendor='Hygon'>Dhyana</model>
-      <model usable='yes' vendor='AMD'>EPYC</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
       <model usable='no' vendor='AMD'>EPYC-Genoa</model>
       <blockers model='EPYC-Genoa'>
         <feature name='amd-psfd'/>
@@ -339,7 +339,7 @@
         <feature name='vpclmulqdq'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='yes' vendor='AMD'>EPYC-IBPB</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
       <model usable='no' vendor='AMD' canonical='EPYC-Milan-v1'>EPYC-Milan</model>
       <blockers model='EPYC-Milan'>
         <feature name='erms'/>
@@ -397,6 +397,16 @@
       <blockers model='EPYC-Rome-v4'>
         <feature name='ibrs'/>
       </blockers>
+      <model usable='yes' vendor='AMD'>EPYC-v1</model>
+      <model usable='yes' vendor='AMD'>EPYC-v2</model>
+      <model usable='no' vendor='AMD'>EPYC-v3</model>
+      <blockers model='EPYC-v3'>
+        <feature name='xsaves'/>
+      </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v4</model>
+      <blockers model='EPYC-v4'>
+        <feature name='xsaves'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='GraniteRapids-v1'>GraniteRapids</model>
       <blockers model='GraniteRapids'>
         <feature name='amx-bf16'/>
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 9bef84873c..c2fa795f1e 100644
--- a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
@@ -322,7 +322,7 @@
         <feature name='topoext'/>
         <feature name='xsavec'/>
       </blockers>
-      <model usable='no' vendor='AMD'>EPYC</model>
+      <model usable='no' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
       <blockers model='EPYC'>
         <feature name='fxsr_opt'/>
         <feature name='misalignsse'/>
@@ -370,7 +370,7 @@
         <feature name='xsavec'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='AMD'>EPYC-IBPB</model>
+      <model usable='no' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
       <blockers model='EPYC-IBPB'>
         <feature name='fxsr_opt'/>
         <feature name='ibpb'/>
@@ -515,6 +515,51 @@
         <feature name='topoext'/>
         <feature name='xsavec'/>
       </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v1</model>
+      <blockers model='EPYC-v1'>
+        <feature name='fxsr_opt'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+      </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v2</model>
+      <blockers model='EPYC-v2'>
+        <feature name='fxsr_opt'/>
+        <feature name='ibpb'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+      </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v3</model>
+      <blockers model='EPYC-v3'>
+        <feature name='clzero'/>
+        <feature name='fxsr_opt'/>
+        <feature name='ibpb'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='perfctr_core'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+        <feature name='xsaves'/>
+      </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v4</model>
+      <blockers model='EPYC-v4'>
+        <feature name='clzero'/>
+        <feature name='fxsr_opt'/>
+        <feature name='ibpb'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='perfctr_core'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+        <feature name='xsaves'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='GraniteRapids-v1'>GraniteRapids</model>
       <blockers model='GraniteRapids'>
         <feature name='amx-bf16'/>
diff --git a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
index a9bd9b8a89..2ad2bd6ba1 100644
--- a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
@@ -307,7 +307,7 @@
         <feature name='xsaves'/>
       </blockers>
       <model usable='yes' vendor='Hygon'>Dhyana</model>
-      <model usable='yes' vendor='AMD'>EPYC</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
       <model usable='no' vendor='AMD'>EPYC-Genoa</model>
       <blockers model='EPYC-Genoa'>
         <feature name='amd-psfd'/>
@@ -338,7 +338,7 @@
         <feature name='vpclmulqdq'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='yes' vendor='AMD'>EPYC-IBPB</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
       <model usable='no' vendor='AMD' canonical='EPYC-Milan-v1'>EPYC-Milan</model>
       <blockers model='EPYC-Milan'>
         <feature name='erms'/>
@@ -396,6 +396,16 @@
       <blockers model='EPYC-Rome-v4'>
         <feature name='ibrs'/>
       </blockers>
+      <model usable='yes' vendor='AMD'>EPYC-v1</model>
+      <model usable='yes' vendor='AMD'>EPYC-v2</model>
+      <model usable='no' vendor='AMD'>EPYC-v3</model>
+      <blockers model='EPYC-v3'>
+        <feature name='xsaves'/>
+      </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v4</model>
+      <blockers model='EPYC-v4'>
+        <feature name='xsaves'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='GraniteRapids-v1'>GraniteRapids</model>
       <blockers model='GraniteRapids'>
         <feature name='amx-bf16'/>
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 1df9ba1786..68bb1b3572 100644
--- a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
@@ -308,7 +308,7 @@
         <feature name='xsaves'/>
       </blockers>
       <model usable='yes' vendor='Hygon'>Dhyana</model>
-      <model usable='yes' vendor='AMD'>EPYC</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
       <model usable='no' vendor='AMD'>EPYC-Genoa</model>
       <blockers model='EPYC-Genoa'>
         <feature name='amd-psfd'/>
@@ -339,7 +339,7 @@
         <feature name='vpclmulqdq'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='yes' vendor='AMD'>EPYC-IBPB</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
       <model usable='no' vendor='AMD' canonical='EPYC-Milan-v1'>EPYC-Milan</model>
       <blockers model='EPYC-Milan'>
         <feature name='erms'/>
@@ -397,6 +397,16 @@
       <blockers model='EPYC-Rome-v4'>
         <feature name='ibrs'/>
       </blockers>
+      <model usable='yes' vendor='AMD'>EPYC-v1</model>
+      <model usable='yes' vendor='AMD'>EPYC-v2</model>
+      <model usable='no' vendor='AMD'>EPYC-v3</model>
+      <blockers model='EPYC-v3'>
+        <feature name='xsaves'/>
+      </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v4</model>
+      <blockers model='EPYC-v4'>
+        <feature name='xsaves'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='GraniteRapids-v1'>GraniteRapids</model>
       <blockers model='GraniteRapids'>
         <feature name='amx-bf16'/>
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 be3a49c060..66547e4adc 100644
--- a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
@@ -322,7 +322,7 @@
         <feature name='topoext'/>
         <feature name='xsavec'/>
       </blockers>
-      <model usable='no' vendor='AMD'>EPYC</model>
+      <model usable='no' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
       <blockers model='EPYC'>
         <feature name='fxsr_opt'/>
         <feature name='misalignsse'/>
@@ -370,7 +370,7 @@
         <feature name='xsavec'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='AMD'>EPYC-IBPB</model>
+      <model usable='no' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
       <blockers model='EPYC-IBPB'>
         <feature name='fxsr_opt'/>
         <feature name='ibpb'/>
@@ -515,6 +515,51 @@
         <feature name='topoext'/>
         <feature name='xsavec'/>
       </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v1</model>
+      <blockers model='EPYC-v1'>
+        <feature name='fxsr_opt'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+      </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v2</model>
+      <blockers model='EPYC-v2'>
+        <feature name='fxsr_opt'/>
+        <feature name='ibpb'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+      </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v3</model>
+      <blockers model='EPYC-v3'>
+        <feature name='clzero'/>
+        <feature name='fxsr_opt'/>
+        <feature name='ibpb'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='perfctr_core'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+        <feature name='xsaves'/>
+      </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v4</model>
+      <blockers model='EPYC-v4'>
+        <feature name='clzero'/>
+        <feature name='fxsr_opt'/>
+        <feature name='ibpb'/>
+        <feature name='misalignsse'/>
+        <feature name='nrip-save'/>
+        <feature name='osvw'/>
+        <feature name='perfctr_core'/>
+        <feature name='topoext'/>
+        <feature name='xsavec'/>
+        <feature name='xsaves'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='GraniteRapids-v1'>GraniteRapids</model>
       <blockers model='GraniteRapids'>
         <feature name='amx-bf16'/>
diff --git a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
index ae1d858cd9..f757e52446 100644
--- a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
@@ -307,7 +307,7 @@
         <feature name='xsaves'/>
       </blockers>
       <model usable='yes' vendor='Hygon'>Dhyana</model>
-      <model usable='yes' vendor='AMD'>EPYC</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
       <model usable='no' vendor='AMD'>EPYC-Genoa</model>
       <blockers model='EPYC-Genoa'>
         <feature name='amd-psfd'/>
@@ -338,7 +338,7 @@
         <feature name='vpclmulqdq'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='yes' vendor='AMD'>EPYC-IBPB</model>
+      <model usable='yes' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
       <model usable='no' vendor='AMD' canonical='EPYC-Milan-v1'>EPYC-Milan</model>
       <blockers model='EPYC-Milan'>
         <feature name='erms'/>
@@ -396,6 +396,16 @@
       <blockers model='EPYC-Rome-v4'>
         <feature name='ibrs'/>
       </blockers>
+      <model usable='yes' vendor='AMD'>EPYC-v1</model>
+      <model usable='yes' vendor='AMD'>EPYC-v2</model>
+      <model usable='no' vendor='AMD'>EPYC-v3</model>
+      <blockers model='EPYC-v3'>
+        <feature name='xsaves'/>
+      </blockers>
+      <model usable='no' vendor='AMD'>EPYC-v4</model>
+      <blockers model='EPYC-v4'>
+        <feature name='xsaves'/>
+      </blockers>
       <model usable='no' vendor='Intel' canonical='GraniteRapids-v1'>GraniteRapids</model>
       <blockers model='GraniteRapids'>
         <feature name='amx-bf16'/>
-- 
2.47.0