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.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.