diff options
-rw-r--r-- | gas/config/tc-i386.c | 2 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-optimize-2.d | 1 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-optimize-2.s | 3 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-optimize-2a.d | 1 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-optimize-2b.d | 1 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-optimize-2c.d | 1 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-optimize-5.d | 1 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-optimize-6.d | 1 |
8 files changed, 11 insertions, 0 deletions
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index 27d0742..f7276c1 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -3801,6 +3801,8 @@ build_vex_prefix (const insn_template *t) && i.reg_operands == i.operands - i.imm_operands && i.tm.opcode_modifier.vex && i.tm.opcode_modifier.commutative + /* .commutative aliases .staticrounding; disambiguate. */ + && !i.tm.opcode_modifier.sae && (i.tm.opcode_modifier.sse2avx || (optimize > 1 && !i.no_optimize)) && i.rex == REX_B diff --git a/gas/testsuite/gas/i386/x86-64-optimize-2.d b/gas/testsuite/gas/i386/x86-64-optimize-2.d index 87bf3ed..518b5c0 100644 --- a/gas/testsuite/gas/i386/x86-64-optimize-2.d +++ b/gas/testsuite/gas/i386/x86-64-optimize-2.d @@ -222,4 +222,5 @@ Disassembly of section .text: +[a-f0-9]+: 66 .* pxor %xmm12,%xmm12 +[a-f0-9]+: c5 .* vpxor %xmm2,%xmm2,%xmm8 +[a-f0-9]+: c5 .* vpxor %ymm0,%ymm0,%ymm1 + +[a-f0-9]+: c4 .* vfnmadd231sd %xmm9,%xmm2,%xmm0 #pass diff --git a/gas/testsuite/gas/i386/x86-64-optimize-2.s b/gas/testsuite/gas/i386/x86-64-optimize-2.s index 1d1b8e1..b20b795 100644 --- a/gas/testsuite/gas/i386/x86-64-optimize-2.s +++ b/gas/testsuite/gas/i386/x86-64-optimize-2.s @@ -248,3 +248,6 @@ _start: pcmpgtq %xmm12, %xmm12 vpcmpgtq %xmm2, %xmm2, %xmm8 vpcmpgtq %ymm12, %ymm12, %ymm1 + + # PR gas/31178 + vfnmadd231sd %xmm9, %xmm2, %xmm0 diff --git a/gas/testsuite/gas/i386/x86-64-optimize-2a.d b/gas/testsuite/gas/i386/x86-64-optimize-2a.d index f12507b..b42b1ad 100644 --- a/gas/testsuite/gas/i386/x86-64-optimize-2a.d +++ b/gas/testsuite/gas/i386/x86-64-optimize-2a.d @@ -223,4 +223,5 @@ Disassembly of section .text: +[a-f0-9]+: 66 .* pxor %xmm12,%xmm12 +[a-f0-9]+: c5 .* vpxor %xmm2,%xmm2,%xmm8 +[a-f0-9]+: c5 .* vpxor %ymm0,%ymm0,%ymm1 + +[a-f0-9]+: c4 .* vfnmadd231sd %xmm9,%xmm2,%xmm0 #pass diff --git a/gas/testsuite/gas/i386/x86-64-optimize-2b.d b/gas/testsuite/gas/i386/x86-64-optimize-2b.d index e572491..2d21ecce 100644 --- a/gas/testsuite/gas/i386/x86-64-optimize-2b.d +++ b/gas/testsuite/gas/i386/x86-64-optimize-2b.d @@ -222,4 +222,5 @@ Disassembly of section .text: +[a-f0-9]+: 66 .* pxor %xmm12,%xmm12 +[a-f0-9]+: c5 .* vpxor %xmm2,%xmm2,%xmm8 +[a-f0-9]+: c5 .* vpxor %ymm0,%ymm0,%ymm1 + +[a-f0-9]+: c4 .* vfnmadd231sd %xmm9,%xmm2,%xmm0 #pass diff --git a/gas/testsuite/gas/i386/x86-64-optimize-2c.d b/gas/testsuite/gas/i386/x86-64-optimize-2c.d index 73a50a3..7523149 100644 --- a/gas/testsuite/gas/i386/x86-64-optimize-2c.d +++ b/gas/testsuite/gas/i386/x86-64-optimize-2c.d @@ -223,4 +223,5 @@ Disassembly of section .text: +[a-f0-9]+: c5 .* vpxor %xmm0,%xmm0,%xmm12 +[a-f0-9]+: c5 .* vpxor %xmm2,%xmm2,%xmm8 +[a-f0-9]+: c5 .* vpxor %ymm0,%ymm0,%ymm1 + +[a-f0-9]+: c4 .* vfnmadd231sd %xmm9,%xmm2,%xmm0 #pass diff --git a/gas/testsuite/gas/i386/x86-64-optimize-5.d b/gas/testsuite/gas/i386/x86-64-optimize-5.d index 5b272aa..837edc7 100644 --- a/gas/testsuite/gas/i386/x86-64-optimize-5.d +++ b/gas/testsuite/gas/i386/x86-64-optimize-5.d @@ -222,6 +222,7 @@ Disassembly of section .text: +[a-f0-9]+: 66 .* pxor %xmm12,%xmm12 +[a-f0-9]+: c5 .* vpxor %xmm2,%xmm2,%xmm8 +[a-f0-9]+: c5 .* vpxor %ymm0,%ymm0,%ymm1 + +[a-f0-9]+: c4 .* vfnmadd231sd %xmm9,%xmm2,%xmm0 +[a-f0-9]+: 62 f1 f5 08 55 e9 \{evex\} vandnpd %xmm1,%xmm1,%xmm5 +[a-f0-9]+: 62 f1 f5 08 55 e9 \{evex\} vandnpd %xmm1,%xmm1,%xmm5 +[a-f0-9]+: 62 f1 7d 28 6f d1 vmovdqa32 %ymm1,%ymm2 diff --git a/gas/testsuite/gas/i386/x86-64-optimize-6.d b/gas/testsuite/gas/i386/x86-64-optimize-6.d index 48105c3..8097174 100644 --- a/gas/testsuite/gas/i386/x86-64-optimize-6.d +++ b/gas/testsuite/gas/i386/x86-64-optimize-6.d @@ -222,6 +222,7 @@ Disassembly of section .text: +[a-f0-9]+: 66 .* pxor %xmm12,%xmm12 +[a-f0-9]+: c5 .* vpxor %xmm2,%xmm2,%xmm8 +[a-f0-9]+: c5 .* vpxor %ymm0,%ymm0,%ymm1 + +[a-f0-9]+: c4 .* vfnmadd231sd %xmm9,%xmm2,%xmm0 +[a-f0-9]+: 62 f1 f5 08 55 e9 \{evex\} vandnpd %xmm1,%xmm1,%xmm5 +[a-f0-9]+: 62 f1 f5 08 55 e9 \{evex\} vandnpd %xmm1,%xmm1,%xmm5 +[a-f0-9]+: 62 f1 7d 28 6f d1 vmovdqa32 %ymm1,%ymm2 |