Re: [PATCH] x86: support -Ofast
"H.J. Lu" <[email protected]>
| Newsgroups | gmane.comp.gnu.binutils |
|---|---|
| Message-ID | <CAMe9rOo72JEGDwQFQkwMHV1Fe=B1C9qywgUJOw+GwxT8_y=jqA@mail.gmail.com> |
On Fri, Aug 28, 2026 at 4:39 PM Jan Beulich <[email protected]> wrote: > > ... in analogy to gcc's option of the same name: It relaxes constraints > on (the lack of) commutativity of V{ADD,MAX,MIN,MUL}{P,S}{S,D}. They're > not fully commutative solely because of their NaN treatment. If the > programmer indicates that's benign to them, we can apply the VEX3->VEX2 > encoding transformation for these AVX insns as well. > --- > If we wanted to also use this to control optimization of NOP-like insns > (e.g. the XCHG -> MOV one), the variable would want renaming. Question is: > _Do_ we (perhaps) want that? > > --- a/gas/doc/c-i386.texi > +++ b/gas/doc/c-i386.texi > @@ -624,7 +624,9 @@ only and AMD64 ISAs. > @cindex @samp{-O2} option, x86-64 > @cindex @samp{-Os} option, i386 > @cindex @samp{-Os} option, x86-64 > -@item -O0 | -O | -O1 | -O2 | -Os > +@cindex @samp{-Ofast} option, i386 > +@cindex @samp{-Ofast} option, x86-64 > +@item -O0 | -O | -O1 | -O2 | -Os | -Ofast > Optimize instruction encoding with smaller instruction size. @samp{-O} > and @samp{-O1} encode 64-bit register load instructions with 64-bit > immediate as 32-bit register load instructions with 31-bit or 32-bits > @@ -648,6 +650,12 @@ same (register) operand specified twice > and 64-bit register tests with immediate as 8-bit register test with > immediate. @samp{-O0} turns off this optimization. > > +@samp{-Ofast} is separate from other optimization options. Its use > +indicates to the assembler that not entirely correct optimizations may > +be applied, e.g. assuming the absence of NaN-s. See the compiler's I am against such options which may introduce incorrect behavior. Programmers should use -Ofast compiler option or appropriate assembler instructions. > +similar option. Other optimization options may still need using in > +addition to this one, for the intended effect to be achieved. > + > @end table > @c man end > > --- a/gas/config/tc-i386.c > +++ b/gas/config/tc-i386.c > @@ -854,6 +854,11 @@ static int optimize_for_space = 0; > /* Disabled optimizations. */ > static int optimize_for_disabled_optimizations = 0; > > +/* Optimization: Allow optimizations not entirely safe, e.g. correct only > + when no NaN-s are involved. > + */ > +static bool fast_math; > + > /* Register prefix used for error message. */ > static const char *register_prefix = "%"; > > @@ -6628,6 +6633,7 @@ s_noopt (int dummy ATTRIBUTE_UNUSED) > > optimize = 0; > optimize_for_space = 0; > + fast_math = false; > > ignore_rest_of_line (); > } > @@ -7756,6 +7762,15 @@ i386_assemble (char *line) > { > if (pp.has_nf) > optimize_nf_encoding (); > + else if (fast_math > + && (i.tm.base_opcode | 7) == 0x5f > + && i.tm.opcode_space == SPACE_0F) > + { > + /* Arrange for build_vex_prefix() to recognize these insns as > + (sufficiently) commutative. */ > + i.tm.opcode_modifier.commutative = 1; > + } > + > optimize_encoding (); > } > > @@ -17993,6 +18008,8 @@ md_parse_option (int c, const char *arg) > /* Turn on all encoding optimizations. */ > optimize = INT_MAX; > } > + else if (!strcmp (arg, "fast")) > + fast_math = true; > else > { > optimize = atoi (arg); > --- a/gas/testsuite/gas/i386/x86-64.exp > +++ b/gas/testsuite/gas/i386/x86-64.exp > @@ -276,6 +276,7 @@ run_dump_test "x86-64-sse2avx-opts-intel > run_dump_test "x86-64-avx-swap" > run_dump_test "x86-64-avx-swap-intel" > run_dump_test "x86-64-avx-swap-2" > +run_dump_test "x86-64-avx-swap-2fast" > run_dump_test "x86-64-bmi2" > run_dump_test "x86-64-bmi2-intel" > run_dump_test "x86-64-fma" > --- /dev/null > +++ b/gas/testsuite/gas/i386/x86-64-avx-swap-2fast.d > @@ -0,0 +1,381 @@ > +#as: -O2 -Ofast > +#objdump: -dw > +#name: x86-64 AVX/AVX2 w/ source swapping (-Ofast) > +#source: x86-64-avx-swap-2.s > + > +.*: file format .* > + > +Disassembly of section .text: > + > +0+ <_start>: > +[ ]*[a-f0-9]+: c5 8d 58 d6 vaddpd %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c5 8c 58 d6 vaddps %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4d d0 d6 vaddsubpd %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4f d0 d6 vaddsubps %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4d 55 d6 vandnpd %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4c 55 d6 vandnps %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c5 8d 54 d6 vandpd %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c5 8c 54 d6 vandps %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4d 5e d6 vdivpd %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4c 5e d6 vdivps %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4d 7c d6 vhaddpd %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4f 7c d6 vhaddps %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4d 7d d6 vhsubpd %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4f 7d d6 vhsubps %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c5 8d 5f d6 vmaxpd %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c5 8c 5f d6 vmaxps %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c5 8d 5d d6 vminpd %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c5 8c 5d d6 vminps %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c5 8d 59 d6 vmulpd %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c5 8c 59 d6 vmulps %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c5 8d 56 d6 vorpd %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c5 8c 56 d6 vorps %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c5 8d fc d6 vpaddb %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c5 8d fd d6 vpaddw %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c5 8d fe d6 vpaddd %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c5 8d d4 d6 vpaddq %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c5 8d ec d6 vpaddsb %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c5 8d ed d6 vpaddsw %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c5 8d dc d6 vpaddusb %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c5 8d dd d6 vpaddusw %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c5 8d db d6 vpand %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4d df d6 vpandn %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c5 8d e0 d6 vpavgb %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c5 8d e3 d6 vpavgw %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c5 8d 74 d6 vpcmpeqb %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c5 8d 75 d6 vpcmpeqw %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c5 8d 76 d6 vpcmpeqd %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c4 c2 4d 29 d6 vpcmpeqq %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4d 64 d6 vpcmpgtb %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4d 65 d6 vpcmpgtw %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4d 66 d6 vpcmpgtd %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c4 c2 4d 37 d6 vpcmpgtq %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c5 8d f5 d6 vpmaddwd %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c4 c2 4d 3c d6 vpmaxsb %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c5 8d ee d6 vpmaxsw %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c4 c2 4d 3d d6 vpmaxsd %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c5 8d de d6 vpmaxub %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c4 c2 4d 3e d6 vpmaxuw %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c4 c2 4d 3f d6 vpmaxud %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c4 c2 4d 38 d6 vpminsb %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c5 8d ea d6 vpminsw %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c4 c2 4d 39 d6 vpminsd %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c5 8d da d6 vpminub %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c4 c2 4d 3a d6 vpminuw %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c4 c2 4d 3b d6 vpminud %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c5 8d e4 d6 vpmulhuw %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c5 8d e5 d6 vpmulhw %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c5 8d d5 d6 vpmullw %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c4 c2 4d 40 d6 vpmulld %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c5 8d f4 d6 vpmuludq %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c4 c2 4d 28 d6 vpmuldq %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c5 8d eb d6 vpor %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c5 8d f6 d6 vpsadbw %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4d f8 d6 vpsubb %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4d f9 d6 vpsubw %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4d fa d6 vpsubd %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4d fb d6 vpsubq %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4d e8 d6 vpsubsb %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4d e9 d6 vpsubsw %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4d d8 d6 vpsubusb %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4d d9 d6 vpsubusw %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c5 8d ef d6 vpxor %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4d 5c d6 vsubpd %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4c 5c d6 vsubps %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c5 8d 57 d6 vxorpd %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c5 8c 57 d6 vxorps %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c5 8d c2 d6 00 vcmpeqpd %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4d c2 d6 01 vcmpltpd %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4d c2 d6 02 vcmplepd %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c5 8d c2 d6 03 vcmpunordpd %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c5 8d c2 d6 04 vcmpneqpd %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4d c2 d6 05 vcmpnltpd %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4d c2 d6 06 vcmpnlepd %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c5 8d c2 d6 07 vcmpordpd %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c5 8d c2 d6 08 vcmpeq_uqpd %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4d c2 d6 09 vcmpngepd %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4d c2 d6 0a vcmpngtpd %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c5 8d c2 d6 0b vcmpfalsepd %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c5 8d c2 d6 0c vcmpneq_oqpd %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4d c2 d6 0d vcmpgepd %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4d c2 d6 0e vcmpgtpd %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c5 8d c2 d6 0f vcmptruepd %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c5 8d c2 d6 10 vcmpeq_ospd %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4d c2 d6 11 vcmplt_oqpd %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4d c2 d6 12 vcmple_oqpd %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c5 8d c2 d6 13 vcmpunord_spd %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c5 8d c2 d6 14 vcmpneq_uspd %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4d c2 d6 15 vcmpnlt_uqpd %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4d c2 d6 16 vcmpnle_uqpd %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c5 8d c2 d6 17 vcmpord_spd %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c5 8d c2 d6 18 vcmpeq_uspd %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4d c2 d6 19 vcmpnge_uqpd %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4d c2 d6 1a vcmpngt_uqpd %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c5 8d c2 d6 1b vcmpfalse_ospd %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c5 8d c2 d6 1c vcmpneq_ospd %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4d c2 d6 1d vcmpge_oqpd %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4d c2 d6 1e vcmpgt_oqpd %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c5 8d c2 d6 1f vcmptrue_uspd %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c5 8c c2 d6 00 vcmpeqps %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4c c2 d6 01 vcmpltps %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4c c2 d6 02 vcmpleps %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c5 8c c2 d6 03 vcmpunordps %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c5 8c c2 d6 04 vcmpneqps %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4c c2 d6 05 vcmpnltps %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4c c2 d6 06 vcmpnleps %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c5 8c c2 d6 07 vcmpordps %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c5 8c c2 d6 08 vcmpeq_uqps %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4c c2 d6 09 vcmpngeps %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4c c2 d6 0a vcmpngtps %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c5 8c c2 d6 0b vcmpfalseps %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c5 8c c2 d6 0c vcmpneq_oqps %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4c c2 d6 0d vcmpgeps %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4c c2 d6 0e vcmpgtps %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c5 8c c2 d6 0f vcmptrueps %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c5 8c c2 d6 10 vcmpeq_osps %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4c c2 d6 11 vcmplt_oqps %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4c c2 d6 12 vcmple_oqps %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c5 8c c2 d6 13 vcmpunord_sps %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c5 8c c2 d6 14 vcmpneq_usps %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4c c2 d6 15 vcmpnlt_uqps %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4c c2 d6 16 vcmpnle_uqps %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c5 8c c2 d6 17 vcmpord_sps %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c5 8c c2 d6 18 vcmpeq_usps %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4c c2 d6 19 vcmpnge_uqps %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4c c2 d6 1a vcmpngt_uqps %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c5 8c c2 d6 1b vcmpfalse_osps %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c5 8c c2 d6 1c vcmpneq_osps %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4c c2 d6 1d vcmpge_oqps %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4c c2 d6 1e vcmpgt_oqps %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c5 8c c2 d6 1f vcmptrue_usps %ymm6,%ymm14,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4d c2 d6 07 vcmpordpd %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c4 c1 4c c2 d6 07 vcmpordps %ymm14,%ymm6,%ymm2 > +[ ]*[a-f0-9]+: c5 89 58 d6 vaddpd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 88 58 d6 vaddps %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 49 d0 d6 vaddsubpd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 4b d0 d6 vaddsubps %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 49 55 d6 vandnpd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 48 55 d6 vandnps %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 89 54 d6 vandpd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 88 54 d6 vandps %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 49 5e d6 vdivpd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 48 5e d6 vdivps %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 49 7c d6 vhaddpd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 4b 7c d6 vhaddps %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 49 7d d6 vhsubpd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 4b 7d d6 vhsubps %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 89 5f d6 vmaxpd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 88 5f d6 vmaxps %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 89 5d d6 vminpd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 88 5d d6 vminps %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 89 59 d6 vmulpd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 88 59 d6 vmulps %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 89 56 d6 vorpd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 88 56 d6 vorps %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 89 fc d6 vpaddb %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 89 fd d6 vpaddw %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 89 fe d6 vpaddd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 89 d4 d6 vpaddq %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 89 ec d6 vpaddsb %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 89 ed d6 vpaddsw %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 89 dc d6 vpaddusb %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 89 dd d6 vpaddusw %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 89 db d6 vpand %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 49 df d6 vpandn %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 89 e0 d6 vpavgb %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 89 e3 d6 vpavgw %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 89 74 d6 vpcmpeqb %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 89 75 d6 vpcmpeqw %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 89 76 d6 vpcmpeqd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c2 49 29 d6 vpcmpeqq %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 49 64 d6 vpcmpgtb %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 49 65 d6 vpcmpgtw %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 49 66 d6 vpcmpgtd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c2 49 37 d6 vpcmpgtq %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 89 f5 d6 vpmaddwd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c2 49 3c d6 vpmaxsb %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 89 ee d6 vpmaxsw %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c2 49 3d d6 vpmaxsd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 89 de d6 vpmaxub %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c2 49 3e d6 vpmaxuw %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c2 49 3f d6 vpmaxud %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c2 49 38 d6 vpminsb %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 89 ea d6 vpminsw %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c2 49 39 d6 vpminsd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 89 da d6 vpminub %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c2 49 3a d6 vpminuw %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c2 49 3b d6 vpminud %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 89 e4 d6 vpmulhuw %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 89 e5 d6 vpmulhw %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 89 d5 d6 vpmullw %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c2 49 40 d6 vpmulld %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 89 f4 d6 vpmuludq %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c2 49 28 d6 vpmuldq %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 89 eb d6 vpor %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 89 f6 d6 vpsadbw %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 49 f8 d6 vpsubb %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 49 f9 d6 vpsubw %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 49 fa d6 vpsubd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 49 fb d6 vpsubq %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 49 e8 d6 vpsubsb %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 49 e9 d6 vpsubsw %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 49 d8 d6 vpsubusb %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 49 d9 d6 vpsubusw %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 89 ef d6 vpxor %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 49 5c d6 vsubpd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 48 5c d6 vsubps %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 89 57 d6 vxorpd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 88 57 d6 vxorps %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 89 c2 d6 00 vcmpeqpd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 49 c2 d6 01 vcmpltpd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 49 c2 d6 02 vcmplepd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 89 c2 d6 03 vcmpunordpd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 89 c2 d6 04 vcmpneqpd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 49 c2 d6 05 vcmpnltpd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 49 c2 d6 06 vcmpnlepd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 89 c2 d6 07 vcmpordpd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 89 c2 d6 08 vcmpeq_uqpd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 49 c2 d6 09 vcmpngepd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 49 c2 d6 0a vcmpngtpd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 89 c2 d6 0b vcmpfalsepd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 89 c2 d6 0c vcmpneq_oqpd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 49 c2 d6 0d vcmpgepd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 49 c2 d6 0e vcmpgtpd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 89 c2 d6 0f vcmptruepd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 89 c2 d6 10 vcmpeq_ospd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 49 c2 d6 11 vcmplt_oqpd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 49 c2 d6 12 vcmple_oqpd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 89 c2 d6 13 vcmpunord_spd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 89 c2 d6 14 vcmpneq_uspd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 49 c2 d6 15 vcmpnlt_uqpd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 49 c2 d6 16 vcmpnle_uqpd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 89 c2 d6 17 vcmpord_spd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 89 c2 d6 18 vcmpeq_uspd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 49 c2 d6 19 vcmpnge_uqpd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 49 c2 d6 1a vcmpngt_uqpd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 89 c2 d6 1b vcmpfalse_ospd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 89 c2 d6 1c vcmpneq_ospd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 49 c2 d6 1d vcmpge_oqpd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 49 c2 d6 1e vcmpgt_oqpd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 89 c2 d6 1f vcmptrue_uspd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 88 c2 d6 00 vcmpeqps %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 48 c2 d6 01 vcmpltps %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 48 c2 d6 02 vcmpleps %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 88 c2 d6 03 vcmpunordps %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 88 c2 d6 04 vcmpneqps %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 48 c2 d6 05 vcmpnltps %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 48 c2 d6 06 vcmpnleps %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 88 c2 d6 07 vcmpordps %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 88 c2 d6 08 vcmpeq_uqps %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 48 c2 d6 09 vcmpngeps %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 48 c2 d6 0a vcmpngtps %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 88 c2 d6 0b vcmpfalseps %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 88 c2 d6 0c vcmpneq_oqps %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 48 c2 d6 0d vcmpgeps %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 48 c2 d6 0e vcmpgtps %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 88 c2 d6 0f vcmptrueps %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 88 c2 d6 10 vcmpeq_osps %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 48 c2 d6 11 vcmplt_oqps %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 48 c2 d6 12 vcmple_oqps %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 88 c2 d6 13 vcmpunord_sps %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 88 c2 d6 14 vcmpneq_usps %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 48 c2 d6 15 vcmpnlt_uqps %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 48 c2 d6 16 vcmpnle_uqps %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 88 c2 d6 17 vcmpord_sps %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 88 c2 d6 18 vcmpeq_usps %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 48 c2 d6 19 vcmpnge_uqps %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 48 c2 d6 1a vcmpngt_uqps %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 88 c2 d6 1b vcmpfalse_osps %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 88 c2 d6 1c vcmpneq_osps %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 48 c2 d6 1d vcmpge_oqps %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 48 c2 d6 1e vcmpgt_oqps %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 88 c2 d6 1f vcmptrue_usps %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 49 c2 d6 07 vcmpordpd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 48 c2 d6 07 vcmpordps %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 79 2f f6 vcomisd %xmm14,%xmm6 > +[ ]*[a-f0-9]+: c4 c1 79 2e f6 vucomisd %xmm14,%xmm6 > +[ ]*[a-f0-9]+: c4 c1 4b c2 d6 07 vcmpordsd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 8b 58 d6 vaddsd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 4b 5e d6 vdivsd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 8b 5f d6 vmaxsd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 8b 5d d6 vminsd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 8b 59 d6 vmulsd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 4b 51 d6 vsqrtsd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 4b 5c d6 vsubsd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 8b c2 d6 00 vcmpeqsd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 4b c2 d6 01 vcmpltsd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 4b c2 d6 02 vcmplesd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 8b c2 d6 03 vcmpunordsd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 8b c2 d6 04 vcmpneqsd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 4b c2 d6 05 vcmpnltsd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 4b c2 d6 06 vcmpnlesd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 8b c2 d6 07 vcmpordsd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 8b c2 d6 08 vcmpeq_uqsd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 4b c2 d6 09 vcmpngesd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 4b c2 d6 0a vcmpngtsd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 8b c2 d6 0b vcmpfalsesd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 8b c2 d6 0c vcmpneq_oqsd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 4b c2 d6 0d vcmpgesd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 4b c2 d6 0e vcmpgtsd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 8b c2 d6 0f vcmptruesd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 8b c2 d6 10 vcmpeq_ossd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 4b c2 d6 11 vcmplt_oqsd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 4b c2 d6 12 vcmple_oqsd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 8b c2 d6 13 vcmpunord_ssd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 8b c2 d6 14 vcmpneq_ussd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 4b c2 d6 15 vcmpnlt_uqsd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 4b c2 d6 16 vcmpnle_uqsd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 8b c2 d6 17 vcmpord_ssd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 8b c2 d6 18 vcmpeq_ussd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 4b c2 d6 19 vcmpnge_uqsd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 4b c2 d6 1a vcmpngt_uqsd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 8b c2 d6 1b vcmpfalse_ossd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 8b c2 d6 1c vcmpneq_ossd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 4b c2 d6 1d vcmpge_oqsd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 4b c2 d6 1e vcmpgt_oqsd %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 8b c2 d6 1f vcmptrue_ussd %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 8a 58 d6 vaddss %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 4a 5e d6 vdivss %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 8a 5f d6 vmaxss %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 8a 5d d6 vminss %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 8a 59 d6 vmulss %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 4a 53 d6 vrcpss %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 4a 52 d6 vrsqrtss %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 4a 51 d6 vsqrtss %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 4a 5c d6 vsubss %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 8a c2 d6 00 vcmpeqss %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 4a c2 d6 01 vcmpltss %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 4a c2 d6 02 vcmpless %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 8a c2 d6 03 vcmpunordss %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 8a c2 d6 04 vcmpneqss %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 4a c2 d6 05 vcmpnltss %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 4a c2 d6 06 vcmpnless %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 8a c2 d6 07 vcmpordss %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 8a c2 d6 08 vcmpeq_uqss %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 4a c2 d6 09 vcmpngess %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 4a c2 d6 0a vcmpngtss %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 8a c2 d6 0b vcmpfalsess %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 8a c2 d6 0c vcmpneq_oqss %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 4a c2 d6 0d vcmpgess %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 4a c2 d6 0e vcmpgtss %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 8a c2 d6 0f vcmptruess %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 8a c2 d6 10 vcmpeq_osss %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 4a c2 d6 11 vcmplt_oqss %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 4a c2 d6 12 vcmple_oqss %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 8a c2 d6 13 vcmpunord_sss %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 8a c2 d6 14 vcmpneq_usss %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 4a c2 d6 15 vcmpnlt_uqss %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 4a c2 d6 16 vcmpnle_uqss %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 8a c2 d6 17 vcmpord_sss %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 8a c2 d6 18 vcmpeq_usss %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 4a c2 d6 19 vcmpnge_uqss %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 4a c2 d6 1a vcmpngt_uqss %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 8a c2 d6 1b vcmpfalse_osss %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c5 8a c2 d6 1c vcmpneq_osss %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 4a c2 d6 1d vcmpge_oqss %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 4a c2 d6 1e vcmpgt_oqss %xmm14,%xmm6,%xmm2 > +[ ]*[a-f0-9]+: c5 8a c2 d6 1f vcmptrue_usss %xmm6,%xmm14,%xmm2 > +[ ]*[a-f0-9]+: c4 c1 78 2f f6 vcomiss %xmm14,%xmm6 > +[ ]*[a-f0-9]+: c4 c1 78 2e f6 vucomiss %xmm14,%xmm6 > +[ ]*[a-f0-9]+: c4 c1 4a c2 d6 07 vcmpordss %xmm14,%xmm6,%xmm2 > +#pass > --- a/opcodes/i386-opc.tbl > +++ b/opcodes/i386-opc.tbl > @@ -1189,13 +1189,13 @@ pxor<MMX>, 0x<MMX:pfx>0fef, <MMX:cpu>, M > $avx:0xf30f53:0xf30f52:AVX:VexLIG|VexW0|Src1VVVV|SSE2AVX, + > $apx:0x660f384d:0x660f384f:AVX512F:EVexLIG|VexW0|Src1VVVV|Disp8MemShift=2|SSE2AVX, + > $sse:0xf30f53:0xf30f52:SSE:::> > -<fop:opc:sr, + > - add:58:StaticRounding, + > - sub:5c:StaticRounding, + > - mul:59:StaticRounding, + > - div:5e:StaticRounding, + > - min:5d:, + > - max:5f:> > +<fop:opc:fast:sr, + > + add:58:Optimize:StaticRounding, + > + sub:5c::StaticRounding, + > + mul:59:Optimize:StaticRounding, + > + div:5e::StaticRounding, + > + min:5d:Optimize:, + > + max:5f:Optimize:> > <flog:opc:comm:optim, and:54:C:, andn:55::Optimize, or:56:C:, xor:57:C:Optimize> > <frel:imm:comm, eq:0:C, lt:1:, le:2:, unord:3:C, neq:4:C, nlt:5:, nle:6:, ord:7:C> > > @@ -1644,8 +1644,8 @@ gf2p8mulb<gfni>, 0x660f38cf, GFNI<gfni:c > x:Vex128:ATTSyntax:RegXMM|Unspecified|BaseIndex, + > y:Vex256:ATTSyntax:RegYMM|Unspecified|BaseIndex> > > -v<fop>p<sd>, 0x<sd:ppfx><fop:opc>, AVX, Modrm|Vex|Space0F|Src1VVVV|VexWIG|CheckOperandSize|NoSuf, { RegXMM|RegYMM|Unspecified|BaseIndex, RegXMM|RegYMM, RegXMM|RegYMM } > -v<fop>s<sd>, 0x<sd:spfx><fop:opc>, AVX, Modrm|VexLIG|Space0F|Src1VVVV|VexWIG|NoSuf, { RegXMM|<sd:elem>|Unspecified|BaseIndex, RegXMM, RegXMM } > +v<fop>p<sd>, 0x<sd:ppfx><fop:opc>, AVX, Modrm|Vex|Space0F|Src1VVVV|VexWIG|CheckOperandSize|<fop:fast>|NoSuf, { RegXMM|RegYMM|Unspecified|BaseIndex, RegXMM|RegYMM, RegXMM|RegYMM } > +v<fop>s<sd>, 0x<sd:spfx><fop:opc>, AVX, Modrm|VexLIG|Space0F|Src1VVVV|VexWIG|<fop:fast>|NoSuf, { RegXMM|<sd:elem>|Unspecified|BaseIndex, RegXMM, RegXMM } > vaddsubpd, 0x66d0, AVX, Modrm|Vex|Space0F|Src1VVVV|VexWIG|CheckOperandSize|NoSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM } > vaddsubps, 0xf2d0, AVX, Modrm|Vex|Space0F|Src1VVVV|VexWIG|CheckOperandSize|NoSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM } > v<flog>p<sd>, 0x<sd:ppfx><flog:opc>, AVX, Modrm|Vex|Space0F|Src1VVVV|VexWIG|<flog:comm>|CheckOperandSize|NoSuf|<flog:optim>, { RegXMM|RegYMM|Unspecified|BaseIndex, RegXMM|RegYMM, RegXMM|RegYMM } -- H.J.