From 6384fd9e1d3f8e692c8686a104caec23cf2fc05f Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Wed, 8 Jul 2020 11:19:26 +0200 Subject: x86: FMA4 scalar insns ignore VEX.L Just like other VEX-encoded scalar insns do. Besides a testcase for this behavior also introduce one to verify that XOP scalar insns don't honor -mavxscalar=256, as they don't ignore XOP.L. --- gas/ChangeLog | 6 +++ gas/testsuite/gas/i386/fma4-lig.d | 97 +++++++++++++++++++++++++++++++++++++++ gas/testsuite/gas/i386/i386.exp | 2 + gas/testsuite/gas/i386/xop-lig.d | 5 ++ 4 files changed, 110 insertions(+) create mode 100644 gas/testsuite/gas/i386/fma4-lig.d create mode 100644 gas/testsuite/gas/i386/xop-lig.d (limited to 'gas') diff --git a/gas/ChangeLog b/gas/ChangeLog index 0be7fa3f..cbd4779 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2020-07-08 Jan Beulich + + * testsuite/gas/i386/fma4-lig.d, testsuite/gas/i386/xop-lig.d: + New. + * testsuite/gas/i386/i386.exp: Run new tests. + 2020-07-07 Claudiu Zissulescu * config/tc-arc.c (find_opcode_match): Add error messages. diff --git a/gas/testsuite/gas/i386/fma4-lig.d b/gas/testsuite/gas/i386/fma4-lig.d new file mode 100644 index 0000000..39f2a06 --- /dev/null +++ b/gas/testsuite/gas/i386/fma4-lig.d @@ -0,0 +1,97 @@ +#as: -mavxscalar=256 +#objdump: -dw +#name: i386 FMA4 w/ -mavxscalar=256 +#source: fma4.s + +.*: file format .* + +Disassembly of section .text: + +0+ <_start>: +[ ]*[a-f0-9]+: c4 e3 ed 69 fc 60 vfmaddpd %ymm4,%ymm6,%ymm2,%ymm7 +[ ]*[a-f0-9]+: c4 e3 ed 69 39 60 vfmaddpd \(%ecx\),%ymm6,%ymm2,%ymm7 +[ ]*[a-f0-9]+: c4 e3 ed 68 fc 60 vfmaddps %ymm4,%ymm6,%ymm2,%ymm7 +[ ]*[a-f0-9]+: c4 e3 ed 68 39 60 vfmaddps \(%ecx\),%ymm6,%ymm2,%ymm7 +[ ]*[a-f0-9]+: c4 e3 59 68 6c da 01 30 vfmaddps %xmm3,0x1\(%edx,%ebx,8\),%xmm4,%xmm5 +[ ]*[a-f0-9]+: c4 e3 49 68 8c 81 80 00 00 00 70 vfmaddps %xmm7,0x80\(%ecx,%eax,4\),%xmm6,%xmm1 +[ ]*[a-f0-9]+: c4 e3 ed 5d fc 60 vfmaddsubpd %ymm4,%ymm6,%ymm2,%ymm7 +[ ]*[a-f0-9]+: c4 e3 ed 5d 39 60 vfmaddsubpd \(%ecx\),%ymm6,%ymm2,%ymm7 +[ ]*[a-f0-9]+: c4 e3 ed 5c fc 60 vfmaddsubps %ymm4,%ymm6,%ymm2,%ymm7 +[ ]*[a-f0-9]+: c4 e3 ed 5c 39 60 vfmaddsubps \(%ecx\),%ymm6,%ymm2,%ymm7 +[ ]*[a-f0-9]+: c4 e3 ed 5f fc 60 vfmsubaddpd %ymm4,%ymm6,%ymm2,%ymm7 +[ ]*[a-f0-9]+: c4 e3 ed 5f 39 60 vfmsubaddpd \(%ecx\),%ymm6,%ymm2,%ymm7 +[ ]*[a-f0-9]+: c4 e3 ed 5e fc 60 vfmsubaddps %ymm4,%ymm6,%ymm2,%ymm7 +[ ]*[a-f0-9]+: c4 e3 ed 5e 39 60 vfmsubaddps \(%ecx\),%ymm6,%ymm2,%ymm7 +[ ]*[a-f0-9]+: c4 e3 ed 6d fc 60 vfmsubpd %ymm4,%ymm6,%ymm2,%ymm7 +[ ]*[a-f0-9]+: c4 e3 ed 6d 39 60 vfmsubpd \(%ecx\),%ymm6,%ymm2,%ymm7 +[ ]*[a-f0-9]+: c4 e3 ed 6c fc 60 vfmsubps %ymm4,%ymm6,%ymm2,%ymm7 +[ ]*[a-f0-9]+: c4 e3 ed 6c 39 60 vfmsubps \(%ecx\),%ymm6,%ymm2,%ymm7 +[ ]*[a-f0-9]+: c4 e3 e9 69 fc 60 vfmaddpd %xmm4,%xmm6,%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 e9 69 39 60 vfmaddpd \(%ecx\),%xmm6,%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 69 69 39 40 vfmaddpd %xmm4,\(%ecx\),%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 e9 68 fc 60 vfmaddps %xmm4,%xmm6,%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 e9 68 39 60 vfmaddps \(%ecx\),%xmm6,%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 69 68 39 40 vfmaddps %xmm4,\(%ecx\),%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 e9 5d fc 60 vfmaddsubpd %xmm4,%xmm6,%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 e9 5d 39 60 vfmaddsubpd \(%ecx\),%xmm6,%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 69 5d 39 40 vfmaddsubpd %xmm4,\(%ecx\),%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 e9 5c fc 60 vfmaddsubps %xmm4,%xmm6,%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 e9 5c 39 60 vfmaddsubps \(%ecx\),%xmm6,%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 69 5c 39 40 vfmaddsubps %xmm4,\(%ecx\),%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 e9 5f fc 60 vfmsubaddpd %xmm4,%xmm6,%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 e9 5f 39 60 vfmsubaddpd \(%ecx\),%xmm6,%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 69 5f 39 40 vfmsubaddpd %xmm4,\(%ecx\),%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 e9 5e fc 60 vfmsubaddps %xmm4,%xmm6,%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 e9 5e 39 60 vfmsubaddps \(%ecx\),%xmm6,%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 69 5e 39 40 vfmsubaddps %xmm4,\(%ecx\),%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 e9 6d fc 60 vfmsubpd %xmm4,%xmm6,%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 e9 6d 39 60 vfmsubpd \(%ecx\),%xmm6,%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 69 6d 39 40 vfmsubpd %xmm4,\(%ecx\),%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 e9 6c fc 60 vfmsubps %xmm4,%xmm6,%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 e9 6c 39 60 vfmsubps \(%ecx\),%xmm6,%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 69 6c 39 40 vfmsubps %xmm4,\(%ecx\),%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 ed 6b fc 60 vfmaddsd %xmm4,%xmm6,%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 ed 6b 39 60 vfmaddsd \(%ecx\),%xmm6,%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 6d 6b 39 40 vfmaddsd %xmm4,\(%ecx\),%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 ed 6f fc 60 vfmsubsd %xmm4,%xmm6,%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 ed 6f 39 60 vfmsubsd \(%ecx\),%xmm6,%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 6d 6f 39 40 vfmsubsd %xmm4,\(%ecx\),%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 ed 6a fc 60 vfmaddss %xmm4,%xmm6,%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 ed 6a 39 60 vfmaddss \(%ecx\),%xmm6,%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 6d 6a 39 40 vfmaddss %xmm4,\(%ecx\),%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 ed 6e fc 60 vfmsubss %xmm4,%xmm6,%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 ed 6e 39 60 vfmsubss \(%ecx\),%xmm6,%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 6d 6e 39 40 vfmsubss %xmm4,\(%ecx\),%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 ed 79 fc 60 vfnmaddpd %ymm4,%ymm6,%ymm2,%ymm7 +[ ]*[a-f0-9]+: c4 e3 ed 79 39 60 vfnmaddpd \(%ecx\),%ymm6,%ymm2,%ymm7 +[ ]*[a-f0-9]+: c4 e3 ed 78 fc 60 vfnmaddps %ymm4,%ymm6,%ymm2,%ymm7 +[ ]*[a-f0-9]+: c4 e3 ed 78 39 60 vfnmaddps \(%ecx\),%ymm6,%ymm2,%ymm7 +[ ]*[a-f0-9]+: c4 e3 ed 7d fc 60 vfnmsubpd %ymm4,%ymm6,%ymm2,%ymm7 +[ ]*[a-f0-9]+: c4 e3 ed 7d 39 60 vfnmsubpd \(%ecx\),%ymm6,%ymm2,%ymm7 +[ ]*[a-f0-9]+: c4 e3 ed 7c fc 60 vfnmsubps %ymm4,%ymm6,%ymm2,%ymm7 +[ ]*[a-f0-9]+: c4 e3 ed 7c 39 60 vfnmsubps \(%ecx\),%ymm6,%ymm2,%ymm7 +[ ]*[a-f0-9]+: c4 e3 e9 79 fc 60 vfnmaddpd %xmm4,%xmm6,%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 e9 79 39 60 vfnmaddpd \(%ecx\),%xmm6,%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 69 79 39 40 vfnmaddpd %xmm4,\(%ecx\),%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 e9 78 fc 60 vfnmaddps %xmm4,%xmm6,%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 e9 78 39 60 vfnmaddps \(%ecx\),%xmm6,%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 69 78 39 40 vfnmaddps %xmm4,\(%ecx\),%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 e9 7d fc 60 vfnmsubpd %xmm4,%xmm6,%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 e9 7d 39 60 vfnmsubpd \(%ecx\),%xmm6,%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 69 7d 39 40 vfnmsubpd %xmm4,\(%ecx\),%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 e9 7c fc 60 vfnmsubps %xmm4,%xmm6,%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 e9 7c 39 60 vfnmsubps \(%ecx\),%xmm6,%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 69 7c 39 40 vfnmsubps %xmm4,\(%ecx\),%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 ed 7b fc 60 vfnmaddsd %xmm4,%xmm6,%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 ed 7b 39 60 vfnmaddsd \(%ecx\),%xmm6,%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 6d 7b 39 40 vfnmaddsd %xmm4,\(%ecx\),%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 ed 7f fc 60 vfnmsubsd %xmm4,%xmm6,%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 ed 7f 39 60 vfnmsubsd \(%ecx\),%xmm6,%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 6d 7f 39 40 vfnmsubsd %xmm4,\(%ecx\),%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 ed 7a fc 60 vfnmaddss %xmm4,%xmm6,%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 ed 7a 39 60 vfnmaddss \(%ecx\),%xmm6,%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 6d 7a 39 40 vfnmaddss %xmm4,\(%ecx\),%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 ed 7e fc 60 vfnmsubss %xmm4,%xmm6,%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 ed 7e 39 60 vfnmsubss \(%ecx\),%xmm6,%xmm2,%xmm7 +[ ]*[a-f0-9]+: c4 e3 6d 7e 39 40 vfnmsubss %xmm4,\(%ecx\),%xmm2,%xmm7 +#pass diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp index 55929d3..37aa396 100644 --- a/gas/testsuite/gas/i386/i386.exp +++ b/gas/testsuite/gas/i386/i386.exp @@ -302,9 +302,11 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_32_check]] run_dump_test "rtm" run_dump_test "rtm-intel" run_dump_test "fma4" + run_dump_test "fma4-lig" run_dump_test "lwp" run_dump_test "lwp-16bit" run_dump_test "xop" + run_dump_test "xop-lig" run_dump_test "xop32reg" run_dump_test "bmi" run_dump_test "bmi-intel" diff --git a/gas/testsuite/gas/i386/xop-lig.d b/gas/testsuite/gas/i386/xop-lig.d new file mode 100644 index 0000000..a606b4e --- /dev/null +++ b/gas/testsuite/gas/i386/xop-lig.d @@ -0,0 +1,5 @@ +#as: -mavxscalar=256 +#objdump: -dw +#name: i386 XOP w/ -mavxscalar=256 +#source: xop.s +#dump: xop.d -- cgit v1.1