[PATCH] x86: separate AVX10.1-aux from AVX10.2
Jan Beulich
jbeulich@suse.com
Fri Jul 10 12:22:55 GMT 2026
As the reduced set can be all that's available, we want to permit people
to also restrict the recognized ISA accordingly.
---
Making a dependency chain 10.1 -> 10.1aux -> 10.2 (and soon ->10.2aux) is
easier than having respective templates specify AVX10_1_AUX|AVX10_2. Are
there clear reasons speaking against this approach?
I'm unconvinced of spelling out the (largely deprecated) avx10.1aux/512
etc forms in the doc. Perhaps that shouldn't even have been done for
AVX10.2.
This is assumed to go on top of "x86: accept LOCK on control register
accesses only with ModR/M.reg == 0". Functionally there of course is no
conflict, but at least the doc changes collide.
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -1247,13 +1247,14 @@ static const arch_entry cpu_arch[] =
VECARCH (sm4, SM4, ANY_SM4, reset),
SUBARCH (pbndkb, PBNDKB, PBNDKB, false),
VECARCH (avx10.1, AVX10_1, ANY_AVX512F, set),
+ VECARCH (avx10.1aux, AVX10_1_AUX, ANY_AVX10_1_AUX, set),
+ VECARCH (avx10.2, AVX10_2, ANY_AVX10_2, set),
SUBARCH (user_msr, USER_MSR, USER_MSR, false),
SUBARCH (apx_f, APX_F, ANY_APX_F, false),
SUBARCH (apx_nci, APX_NCI, ANY_APX_NCI, false),
SUBARCH (apx_ndd, APX_NDD, ANY_APX_NDD, false),
SUBARCH (apx_nf, APX_NF, ANY_APX_NF, false),
SUBARCH (apx_nci_ndd_nf, APX_NCI_NDD_NF, ANY_APX_NCI_NDD_NF, false),
- VECARCH (avx10.2, AVX10_2, ANY_AVX10_2, set),
SUBARCH (gmism2, GMISM2, GMISM2, false),
SUBARCH (gmiccs, GMICCS, GMICCS, false),
SUBARCH (msr_imm, MSR_IMM, MSR_IMM, false),
--- a/gas/doc/c-i386.texi
+++ b/gas/doc/c-i386.texi
@@ -220,6 +220,7 @@ accept various extension mnemonics. For
@code{avx10.1/512},
@code{avx10.1/256},
@code{avx10.1/128},
+@code{avx10.1aux},
@code{user_msr},
@code{msr_imm},
@code{apx_f},
@@ -1718,13 +1719,13 @@ supported on the CPU specified. The cho
@item @samp{.avx512_vpopcntdq} @tab @samp{.avx512_vbmi2} @tab @samp{.avx512_vnni}
@item @samp{.avx512_bitalg} @tab @samp{.avx512_bf16} @tab @samp{.avx512_vp2intersect}
@item @samp{.tdx} @tab @samp{.avx_vnni} @tab @samp{.avx512_fp16} @tab @samp{avx512_bmm}
-@item @samp{.avx10.1} @tab @samp{.clwb} @tab @samp{.rdpid} @tab @samp{.ptwrite}
-@item @samp{.ibt} @tab @samp{.prefetchi} @tab @samp{.avx_ifma} @tab @samp{.avx_vnni_int8}
+@item @samp{.avx10.1} @tab @samp{.avx10.1aux} @tab @samp{.avx10.2} @tab @samp{.clwb}
+@item @samp{.rdpid} @tab @samp{.ptwrite} @tab @samp{.ibt} @tab @samp{.prefetchi}
@item @samp{.cmpccxadd} @tab @samp{.wrmsrns} @tab @samp{.msrlist} @tab @samp{.se1}
@item @samp{.avx_ne_convert} @tab @samp{.rao_int} @tab @samp{.fred} @tab @samp{.lkgs}
@item @samp{.avx_vnni_int16} @tab @samp{.sha512} @tab @samp{.sm3} @tab @samp{.sm4}
-@item @samp{.pbndkb} @tab @samp{.user_msr} @tab @samp{.msr_imm} @tab @samp{.avx10.2}
-@item @samp{.movrs}
+@item @samp{.pbndkb} @tab @samp{.user_msr} @tab @samp{.msr_imm}
+@item @samp{.avx_ifma} @tab @samp{.avx_vnni_int8} @tab @samp{.movrs}
@item @samp{.wbnoinvd} @tab @samp{.pconfig} @tab @samp{.waitpkg} @tab @samp{.cldemote}
@item @samp{.shstk} @tab @samp{.gfni} @tab @samp{.vaes} @tab @samp{.vpclmulqdq}
@item @samp{.movdiri} @tab @samp{.movdir64b} @tab @samp{.enqcmd} @tab @samp{.tsxldtrk}
--- /dev/null
+++ b/gas/testsuite/gas/i386/avx10.1-aux-256-cvt.d
@@ -0,0 +1,4 @@
+#name: i386 AVX10.1-aux/256 convert insns
+#as: -I${srcdir}/$subdir
+#objdump: -dw
+#dump: avx10_2-256-cvt.d
--- /dev/null
+++ b/gas/testsuite/gas/i386/avx10.1-aux-256-cvt.s
@@ -0,0 +1,6 @@
+# Check 32bit AVX10.1-aux/256 convert instructions
+
+ .arch generic32
+ .arch .avx10.1aux/256
+ .equ AVX10_V1_AUX, 1
+ .include "avx10_2-256-cvt.s"
--- /dev/null
+++ b/gas/testsuite/gas/i386/avx10.1-aux-256-media.l
@@ -0,0 +1,73 @@
+.*: Assembler messages:
+.*:39: Error: `vdpphps' is not supported .*
+.*:40: Error: `vdpphps' is not supported .*
+.*:41: Error: `vdpphps' is not supported .*
+.*:42: Error: `vdpphps' is not supported .*
+.*:43: Error: `vdpphps' is not supported .*
+.*:44: Error: `vdpphps' is not supported .*
+.*:45: Error: `vdpphps' is not supported .*
+.*:46: Error: `vdpphps' is not supported .*
+.*:47: Error: `vdpphps' is not supported .*
+.*:48: Error: `vdpphps' is not supported .*
+.*:50: Error:.* `vmpsadbw'.*
+.*:51: Error:.* `vmpsadbw'.*
+.*:52: Error:.* `vmpsadbw'.*
+.*:53: Error:.* `vmpsadbw'.*
+.*:54: Error:.* `vmpsadbw'.*
+.*:55: Error:.* `vmpsadbw'.*
+.*:56: Error:.* `vmpsadbw'.*
+.*:57: Error:.* `vmpsadbw'.*
+.*:58: Error:.* `vmpsadbw'.*
+.*:59: Error:.* `vmpsadbw'.*
+.*:93: Error: `vdpphps' is not supported .*
+.*:94: Error: `vdpphps' is not supported .*
+.*:95: Error: `vdpphps' is not supported .*
+.*:96: Error: `vdpphps' is not supported .*
+.*:97: Error: `vdpphps' is not supported .*
+.*:98: Error: `vdpphps' is not supported .*
+.*:99: Error: `vdpphps' is not supported .*
+.*:100: Error: `vdpphps' is not supported .*
+.*:101: Error: `vdpphps' is not supported .*
+.*:102: Error: `vdpphps' is not supported .*
+.*:104: Error:.* `vmpsadbw'.*
+.*:105: Error:.* `vmpsadbw'.*
+.*:106: Error:.* `vmpsadbw'.*
+.*:107: Error:.* `vmpsadbw'.*
+.*:108: Error:.* `vmpsadbw'.*
+.*:109: Error:.* `vmpsadbw'.*
+.*:110: Error:.* `vmpsadbw'.*
+.*:111: Error:.* `vmpsadbw'.*
+.*:112: Error:.* `vmpsadbw'.*
+.*:113: Error:.* `vmpsadbw'.*
+[ ]*[0-9]+[ ]+# Check .*
+#...
+[ ]*[0-9]+[ ]+> \.irp .*
+[ ]*[0-9]+[ ]+\?+ 62F2572F 50F4[ ]+>> vpdpbssd %ymm4,%ymm5,%ymm6\{%k7\}
+#...
+[ ]*[0-9]+[ ]+\?+ 62F2572F 51F4[ ]+>> vpdpbssds %ymm4,%ymm5,%ymm6\{%k7\}
+#...
+[ ]*[0-9]+[ ]+> \.irp .*
+[ ]*[0-9]+[ ]+\?+ 62F2562F 50F4[ ]+>> vpdpbsud %ymm4,%ymm5,%ymm6\{%k7\}
+#...
+[ ]*[0-9]+[ ]+\?+ 62F2562F 51F4[ ]+>> vpdpbsuds %ymm4,%ymm5,%ymm6\{%k7\}
+#...
+[ ]*[0-9]+[ ]+> \.irp .*
+[ ]*[0-9]+[ ]+\?+ 62F2542F 50F4[ ]+>> vpdpbuud %ymm4,%ymm5,%ymm6\{%k7\}
+#...
+[ ]*[0-9]+[ ]+\?+ 62F2542F 51F4[ ]+>> vpdpbuuds %ymm4,%ymm5,%ymm6\{%k7\}
+#...
+[ ]*[0-9]+[ ]+> \.irp .*
+[ ]*[0-9]+[ ]+\?+ 62F2562F D2F4[ ]+>> vpdpwsud %ymm4,%ymm5,%ymm6\{%k7\}
+#...
+[ ]*[0-9]+[ ]+\?+ 62F2562F D3F4[ ]+>> vpdpwsuds %ymm4,%ymm5,%ymm6\{%k7\}
+#...
+[ ]*[0-9]+[ ]+> \.irp .*
+[ ]*[0-9]+[ ]+\?+ 62F2552F D2F4[ ]+>> vpdpwusd %ymm4,%ymm5,%ymm6\{%k7\}
+#...
+[ ]*[0-9]+[ ]+\?+ 62F2552F D3F4[ ]+>> vpdpwusds %ymm4,%ymm5,%ymm6\{%k7\}
+#...
+[ ]*[0-9]+[ ]+> \.irp .*
+[ ]*[0-9]+[ ]+\?+ 62F2542F D2F4[ ]+>> vpdpwuud %ymm4,%ymm5,%ymm6\{%k7\}
+#...
+[ ]*[0-9]+[ ]+\?+ 62F2542F D3F4[ ]+>> vpdpwuuds %ymm4,%ymm5,%ymm6\{%k7\}
+#pass
--- /dev/null
+++ b/gas/testsuite/gas/i386/avx10.1-aux-256-media.s
@@ -0,0 +1,6 @@
+# Check 32bit AVX10.1-aux/256 media instructions
+
+ .arch generic32
+ .arch .avx10.1aux/256
+ .equ AVX10_V1_AUX, 1
+ .include "avx10_2-256-media.s"
--- /dev/null
+++ b/gas/testsuite/gas/i386/avx10.1-aux-512-cvt.d
@@ -0,0 +1,4 @@
+#name: i386 AVX10.1-aux/512 convert insns
+#as: -I${srcdir}/$subdir
+#objdump: -dw
+#dump: avx10_2-512-cvt.d
--- /dev/null
+++ b/gas/testsuite/gas/i386/avx10.1-aux-512-cvt.s
@@ -0,0 +1,6 @@
+# Check 32bit AVX10.1-aux/512 convert instructions
+
+ .arch generic32
+ .arch .avx10.1aux/512
+ .equ AVX10_V1_AUX, 1
+ .include "avx10_2-512-cvt.s"
--- /dev/null
+++ b/gas/testsuite/gas/i386/avx10.1-aux-512-media.l
@@ -0,0 +1,53 @@
+.*: Assembler messages:
+.*:29: Error: `vdpphps' is not supported .*
+.*:30: Error: `vdpphps' is not supported .*
+.*:31: Error: `vdpphps' is not supported .*
+.*:32: Error: `vdpphps' is not supported .*
+.*:33: Error: `vdpphps' is not supported .*
+.*:35: Error:.* `vmpsadbw'.*
+.*:36: Error:.* `vmpsadbw'.*
+.*:37: Error:.* `vmpsadbw'.*
+.*:38: Error:.* `vmpsadbw'.*
+.*:39: Error:.* `vmpsadbw'.*
+.*:63: Error: `vdpphps' is not supported .*
+.*:64: Error: `vdpphps' is not supported .*
+.*:65: Error: `vdpphps' is not supported .*
+.*:66: Error: `vdpphps' is not supported .*
+.*:67: Error: `vdpphps' is not supported .*
+.*:69: Error:.* `vmpsadbw'.*
+.*:70: Error:.* `vmpsadbw'.*
+.*:71: Error:.* `vmpsadbw'.*
+.*:72: Error:.* `vmpsadbw'.*
+.*:73: Error:.* `vmpsadbw'.*
+[ ]*[0-9]+[ ]+# Check .*
+#...
+[ ]*[0-9]+[ ]+> \.irp .*
+[ ]*[0-9]+[ ]+\?+ 62F25748 50F4[ ]+>> vpdpbssd %zmm4,%zmm5,%zmm6
+#...
+[ ]*[0-9]+[ ]+\?+ 62F25748 51F4[ ]+>> vpdpbssds %zmm4,%zmm5,%zmm6
+#...
+[ ]*[0-9]+[ ]+> \.irp .*
+[ ]*[0-9]+[ ]+\?+ 62F25648 50F4[ ]+>> vpdpbsud %zmm4,%zmm5,%zmm6
+#...
+[ ]*[0-9]+[ ]+\?+ 62F25648 51F4[ ]+>> vpdpbsuds %zmm4,%zmm5,%zmm6
+#...
+[ ]*[0-9]+[ ]+> \.irp .*
+[ ]*[0-9]+[ ]+\?+ 62F25448 50F4[ ]+>> vpdpbuud %zmm4,%zmm5,%zmm6
+#...
+[ ]*[0-9]+[ ]+\?+ 62F25448 51F4[ ]+>> vpdpbuuds %zmm4,%zmm5,%zmm6
+#...
+[ ]*[0-9]+[ ]+> \.irp .*
+[ ]*[0-9]+[ ]+\?+ 62F25648 D2F4[ ]+>> vpdpwsud %zmm4,%zmm5,%zmm6
+#...
+[ ]*[0-9]+[ ]+\?+ 62F25648 D3F4[ ]+>> vpdpwsuds %zmm4,%zmm5,%zmm6
+#...
+[ ]*[0-9]+[ ]+> \.irp .*
+[ ]*[0-9]+[ ]+\?+ 62F25548 D2F4[ ]+>> vpdpwusd %zmm4,%zmm5,%zmm6
+#...
+[ ]*[0-9]+[ ]+\?+ 62F25548 D3F4[ ]+>> vpdpwusds %zmm4,%zmm5,%zmm6
+#...
+[ ]*[0-9]+[ ]+> \.irp .*
+[ ]*[0-9]+[ ]+\?+ 62F25448 D2F4[ ]+>> vpdpwuud %zmm4,%zmm5,%zmm6
+#...
+[ ]*[0-9]+[ ]+\?+ 62F25448 D3F4[ ]+>> vpdpwuuds %zmm4,%zmm5,%zmm6
+#pass
--- /dev/null
+++ b/gas/testsuite/gas/i386/avx10.1-aux-512-media.s
@@ -0,0 +1,6 @@
+# Check 32bit AVX10.1-aux/512 media instructions
+
+ .arch generic32
+ .arch .avx10.1aux/512
+ .equ AVX10_V1_AUX, 1
+ .include "avx10_2-512-media.s"
--- a/gas/testsuite/gas/i386/avx10_2-256-cvt.s
+++ b/gas/testsuite/gas/i386/avx10_2-256-cvt.s
@@ -1,7 +1,9 @@
# Check 32bit AVX10.2/256 instructions
+ .ifndef AVX10_V1_AUX
.arch generic32
.arch .avx10.2/256
+ .endif
.text
_start:
vcvt2ps2phx %xmm4, %xmm5, %xmm6
--- a/gas/testsuite/gas/i386/avx10_2-256-media.s
+++ b/gas/testsuite/gas/i386/avx10_2-256-media.s
@@ -1,7 +1,9 @@
# Check 32bit AVX10.2/256 instructions
+ .ifndef AVX10_V1_AUX
.arch generic32
.arch .avx10.2/256
+ .endif
.text
_start:
.irp m, ss, su, uu
--- a/gas/testsuite/gas/i386/avx10_2-512-cvt.s
+++ b/gas/testsuite/gas/i386/avx10_2-512-cvt.s
@@ -1,7 +1,9 @@
# Check 32bit AVX10.2/512 instructions
+ .ifndef AVX10_V1_AUX
.arch generic32
.arch .avx10.2/512
+ .endif
.text
_start:
vcvt2ps2phx %zmm4, %zmm5, %zmm6
--- a/gas/testsuite/gas/i386/avx10_2-512-media.s
+++ b/gas/testsuite/gas/i386/avx10_2-512-media.s
@@ -1,7 +1,9 @@
# Check 32bit AVX10.2/512 instructions
+ .ifndef AVX10_V1_AUX
.arch generic32
.arch .avx10.2/512
+ .endif
.text
_start:
.irp m, ss, su, uu
--- a/gas/testsuite/gas/i386/i386.exp
+++ b/gas/testsuite/gas/i386/i386.exp
@@ -521,6 +521,10 @@ if [gas_32_check] then {
run_list_test "user_msr-inval"
run_list_test "msr_imm-inval"
run_list_test "apx-push2pop2-inval"
+ run_dump_test "avx10.1-aux-512-cvt"
+ run_dump_test "avx10.1-aux-256-cvt"
+ run_list_test "avx10.1-aux-512-media" "-I${srcdir}/$subdir -almn --divide --listing-lhs-width=2"
+ run_list_test "avx10.1-aux-256-media" "-I${srcdir}/$subdir -almn --divide --listing-lhs-width=2"
run_dump_test "avx10_2-evex-promote"
run_dump_test "avx10_2-512-media"
run_dump_test "avx10_2-512-media-intel"
--- a/opcodes/i386-gen.c
+++ b/opcodes/i386-gen.c
@@ -248,8 +248,10 @@ static const dependency isa_dependencies
{ "AVX10_1",
"AVX512VL|AVX512DQ|AVX512CD|AVX512VBMI|AVX512_VBMI2|AVX512IFMA"
"|AVX512_VNNI|AVX512_BF16|AVX512_FP16|AVX512_VPOPCNTDQ|AVX512_BITALG" },
- { "AVX10_2",
+ { "AVX10_1_AUX",
"AVX10_1" },
+ { "AVX10_2",
+ "AVX10_1_AUX" },
{ "SEV_ES",
"SVME" },
{ "SNP",
@@ -451,6 +453,7 @@ static bitfield cpu_flags[] =
BITFIELD (USER_MSR),
BITFIELD (MSR_IMM),
BITFIELD (APX_F),
+ BITFIELD (AVX10_1_AUX),
BITFIELD (AVX10_2),
BITFIELD (MOVRS),
BITFIELD (MWAITX),
--- a/opcodes/i386-opc.h
+++ b/opcodes/i386-opc.h
@@ -209,6 +209,8 @@ enum i386_cpu
CpuAVX512_VP2INTERSECT,
/* AMD AVX-512 BMM Instructions support required. */
CpuAVX512_BMM,
+ /* Intel AVX10.1-aux Instructions support required. */
+ CpuAVX10_1_AUX,
/* TDX Instructions support required. */
CpuTDX,
/* Intel AVX VNNI Instructions support required. */
@@ -509,6 +511,7 @@ typedef union i386_cpu_flags
unsigned int cpuavx512_bf16:1;
unsigned int cpuavx512_vp2intersect:1;
unsigned int cpuavx512_bmm:1;
+ unsigned int cpuavx10_1_aux:1;
unsigned int cputdx:1;
unsigned int cpuavx_vnni:1;
unsigned int cpuavx512_fp16:1;
--- a/opcodes/i386-opc.tbl
+++ b/opcodes/i386-opc.tbl
@@ -2969,7 +2969,7 @@ vpdpwssd<vnni><sat>, 0x6652|<sat:opc>, <
<vnni:int8:int16:attr:reg:mem, +
$y:_VNNI_INT8:_VNNI_INT16:Vex::, +
- $z:10_2:10_2:Masking|Broadcast|Disp8ShiftVL:RegZMM:Dword>
+ $z:10_1_AUX:10_1_AUX:Masking|Broadcast|Disp8ShiftVL:RegZMM:Dword>
// AVX-VNNI-INT8 instructions.
@@ -3537,12 +3537,9 @@ pop2p, 0x8f/0, APX_F, Modrm|VexW1|EVexMa
// APX Push2/Pop2 instructions end.
-// AVX10.2 instructions.
+// AVX10.1-aux instructions.
-vdpphps, 0x52, AVX10_2, Modrm|Space0F38|Src1VVVV|VexW0|Masking|Broadcast|Disp8ShiftVL|CheckOperandSize|NoSuf, { RegXMM|RegYMM|RegZMM|Dword|Unspecified|BaseIndex, RegXMM|RegYMM|RegZMM, RegXMM|RegYMM|RegZMM }
-vmpsadbw, 0xf342, AVX10_2, Modrm|Space0F3A|Src1VVVV|VexW0|Masking|Disp8ShiftVL|CheckOperandSize|NoSuf, { Imm8, RegXMM|RegYMM|RegZMM|Unspecified|BaseIndex, RegXMM|RegYMM|RegZMM, RegXMM|RegYMM|RegZMM }
-
-vcvt2ps2phx, 0x6667, AVX10_2, Modrm|Space0F38|Src1VVVV|VexW0|Masking|Broadcast|Disp8ShiftVL|CheckOperandSize|NoSuf|StaticRounding|SAE, { RegXMM|RegYMM|RegZMM|Dword|Unspecified|BaseIndex, RegXMM|RegYMM|RegZMM, RegXMM|RegYMM|RegZMM }
+vcvt2ps2phx, 0x6667, AVX10_1_AUX, Modrm|Space0F38|Src1VVVV|VexW0|Masking|Broadcast|Disp8ShiftVL|CheckOperandSize|NoSuf|StaticRounding|SAE, { RegXMM|RegYMM|RegZMM|Dword|Unspecified|BaseIndex, RegXMM|RegYMM|RegZMM, RegXMM|RegYMM|RegZMM }
<cvt8:opc:spc, +
bf8:74:Space0F38, +
@@ -3550,16 +3547,23 @@ vcvt2ps2phx, 0x6667, AVX10_2, Modrm|Spac
hf8:18:Map5, +
hf8s:1b:Map5>
-vcvtbiasph2<cvt8>, 0x<cvt8:opc>, AVX10_2, Modrm|<cvt8:spc>|Src1VVVV|VexW0|Masking|Broadcast|Disp8ShiftVL|CheckOperandSize|NoSuf, { RegXMM|RegYMM|Word|Unspecified|BaseIndex, RegXMM|RegYMM, RegXMM }
-vcvtbiasph2<cvt8>, 0x<cvt8:opc>, AVX10_2, Modrm|<cvt8:spc>|EVex512|Src1VVVV|VexW0|Masking|Broadcast|Disp8MemShift=6|NoSuf, { RegZMM|Word|Unspecified|BaseIndex, RegZMM, RegYMM }
-vcvt2ph2<cvt8>, 0xf2<cvt8:opc>, AVX10_2, Modrm|<cvt8:spc>|Src1VVVV|VexW0|Masking|Broadcast|Disp8ShiftVL|CheckOperandSize|NoSuf, { RegXMM|RegYMM|RegZMM|Word|Unspecified|BaseIndex, RegXMM|RegYMM|RegZMM, RegXMM|RegYMM|RegZMM }
-vcvtph2<cvt8><Exy>, 0xf3<cvt8:opc>, AVX10_2, Modrm|<cvt8:spc>|<Exy:attr>|VexW0|Masking|Broadcast|NoSuf, { <Exy:src>|Word, <Exy:dst> }
+vcvtbiasph2<cvt8>, 0x<cvt8:opc>, AVX10_1_AUX, Modrm|<cvt8:spc>|Src1VVVV|VexW0|Masking|Broadcast|Disp8ShiftVL|CheckOperandSize|NoSuf, { RegXMM|RegYMM|Word|Unspecified|BaseIndex, RegXMM|RegYMM, RegXMM }
+vcvtbiasph2<cvt8>, 0x<cvt8:opc>, AVX10_1_AUX, Modrm|<cvt8:spc>|EVex512|Src1VVVV|VexW0|Masking|Broadcast|Disp8MemShift=6|NoSuf, { RegZMM|Word|Unspecified|BaseIndex, RegZMM, RegYMM }
+vcvt2ph2<cvt8>, 0xf2<cvt8:opc>, AVX10_1_AUX, Modrm|<cvt8:spc>|Src1VVVV|VexW0|Masking|Broadcast|Disp8ShiftVL|CheckOperandSize|NoSuf, { RegXMM|RegYMM|RegZMM|Word|Unspecified|BaseIndex, RegXMM|RegYMM|RegZMM, RegXMM|RegYMM|RegZMM }
+vcvtph2<cvt8><Exy>, 0xf3<cvt8:opc>, AVX10_1_AUX, Modrm|<cvt8:spc>|<Exy:attr>|VexW0|Masking|Broadcast|NoSuf, { <Exy:src>|Word, <Exy:dst> }
<cvt8>
-vcvthf82ph, 0xf21e, AVX10_2, Modrm|Map5|EVex128|VexW0|Masking|Disp8MemShift=3|NoSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM }
-vcvthf82ph, 0xf21e, AVX10_2, Modrm|Map5|EVex256|VexW0|Masking|Disp8MemShift=4|NoSuf, { RegXMM|Unspecified|BaseIndex, RegYMM }
-vcvthf82ph, 0xf21e, AVX10_2, Modrm|Map5|EVex512|VexW0|Masking|Disp8MemShift=5|NoSuf, { RegYMM|Unspecified|BaseIndex, RegZMM }
+vcvthf82ph, 0xf21e, AVX10_1_AUX, Modrm|Map5|EVex128|VexW0|Masking|Disp8MemShift=3|NoSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM }
+vcvthf82ph, 0xf21e, AVX10_1_AUX, Modrm|Map5|EVex256|VexW0|Masking|Disp8MemShift=4|NoSuf, { RegXMM|Unspecified|BaseIndex, RegYMM }
+vcvthf82ph, 0xf21e, AVX10_1_AUX, Modrm|Map5|EVex512|VexW0|Masking|Disp8MemShift=5|NoSuf, { RegYMM|Unspecified|BaseIndex, RegZMM }
+
+// AVX10.1-aux instructions end.
+
+// AVX10.2 instructions.
+
+vdpphps, 0x52, AVX10_2, Modrm|Space0F38|Src1VVVV|VexW0|Masking|Broadcast|Disp8ShiftVL|CheckOperandSize|NoSuf, { RegXMM|RegYMM|RegZMM|Dword|Unspecified|BaseIndex, RegXMM|RegYMM|RegZMM, RegXMM|RegYMM|RegZMM }
+vmpsadbw, 0xf342, AVX10_2, Modrm|Space0F3A|Src1VVVV|VexW0|Masking|Disp8ShiftVL|CheckOperandSize|NoSuf, { Imm8, RegXMM|RegYMM|RegZMM|Unspecified|BaseIndex, RegXMM|RegYMM|RegZMM, RegXMM|RegYMM|RegZMM }
v<fop>bf16, 0x66<fop:opc>, AVX10_2, Modrm|Map5|Src1VVVV|VexW0|Masking|Broadcast|Disp8ShiftVL|CheckOperandSize|NoSuf, { RegXMM|RegYMM|RegZMM|Word|Unspecified|BaseIndex, RegXMM|RegYMM|RegZMM, RegXMM|RegYMM|RegZMM }
More information about the Binutils
mailing list