Add check for invalid register in AVX512 gathers
authorMichael Zolotukhin <michael.v.zolotukhin@gmail.com>
Wed, 22 Jan 2014 17:57:31 +0000 (09:57 -0800)
committerH.J. Lu <hjl.tools@gmail.com>
Wed, 22 Jan 2014 18:01:12 +0000 (10:01 -0800)
AVX512 gather instructions shouldn't accept the same register for both
destination and index.

gas/

2014-01-22  Michael Zolotukhin  <michael.v.zolotukhin@gmail.com>

PR gas/16489
* config/tc-i386.c (check_VecOperands): Add check for invalid
register set in AVX512 gathers.

gas/testsuite/

2014-01-22  Michael Zolotukhin  <michael.v.zolotukhin@gmail.com>

PR gas/16489
* gas/i386/vgather-check.s: Add tests for AVX512 gathers.
* gas/i386/x86-64-vgather-check.s: Likewise.
* gas/i386/vgather-check-error.l: Update correspondingly.
* gas/i386/vgather-check-none.d: Likewise.
* gas/i386/vgather-check-warn.d: Likewise.
* gas/i386/vgather-check-warn.e: Likewise.
* gas/i386/vgather-check.d: Likewise.
* gas/i386/x86-64-vgather-check-error.l: Likewise.
* gas/i386/x86-64-vgather-check-none.d: Likewise.
* gas/i386/x86-64-vgather-check-warn.d: Likewise.
* gas/i386/x86-64-vgather-check-warn.e: Likewise.
* gas/i386/x86-64-vgather-check.d: Likewise.

15 files changed:
gas/ChangeLog
gas/config/tc-i386.c
gas/testsuite/ChangeLog
gas/testsuite/gas/i386/vgather-check-error.l
gas/testsuite/gas/i386/vgather-check-none.d
gas/testsuite/gas/i386/vgather-check-warn.d
gas/testsuite/gas/i386/vgather-check-warn.e
gas/testsuite/gas/i386/vgather-check.d
gas/testsuite/gas/i386/vgather-check.s
gas/testsuite/gas/i386/x86-64-vgather-check-error.l
gas/testsuite/gas/i386/x86-64-vgather-check-none.d
gas/testsuite/gas/i386/x86-64-vgather-check-warn.d
gas/testsuite/gas/i386/x86-64-vgather-check-warn.e
gas/testsuite/gas/i386/x86-64-vgather-check.d
gas/testsuite/gas/i386/x86-64-vgather-check.s

index 64a67789479a29ed784f23086c182d0b1b243ff0..a79ceb948a2c9c08957e41b737a15e2bc2f97f26 100644 (file)
@@ -1,3 +1,9 @@
+2014-01-22  Michael Zolotukhin  <michael.v.zolotukhin@gmail.com>
+
+       PR gas/16489
+       * config/tc-i386.c (check_VecOperands): Add check for invalid
+       register set in AVX512 gathers.
+
 2014-01-22  Alan Modra  <amodra@gmail.com>
 
        * config/tc-tic4x.c (md_shortopts): s/CONST/const/.
index 147acdfa36c73343ac692d122640c6c60b0daf89..34af1a186210f6dd6e36d11ef8deb6cb83e95c3b 100644 (file)
@@ -4395,6 +4395,22 @@ check_VecOperands (const insn_template *t)
            }
          as_warn (_("mask, index, and destination registers should be distinct"));
        }
+      else if (i.reg_operands == 1 && i.mask)
+       {
+         if ((i.types[1].bitfield.regymm
+              || i.types[1].bitfield.regzmm)
+             && (register_number (i.op[1].regs)
+                 == register_number (i.index_reg)))
+           {
+             if (operand_check == check_error)
+               {
+                 i.error = invalid_vector_register_set;
+                 return 1;
+               }
+             if (operand_check != check_none)
+               as_warn (_("index and destination registers should be distinct"));
+           }
+       }
     }
 
   /* Check if broadcast is supported by the instruction and is applied
index 17694f8c268f1481ab3d9403c49ec6d8c3b179d0..cf8eda94290cec3d2ff72aba7c6f59c19eb0136f 100644 (file)
@@ -1,3 +1,19 @@
+2014-01-22  Michael Zolotukhin  <michael.v.zolotukhin@gmail.com>
+
+       PR gas/16489
+       * gas/i386/vgather-check.s: Add tests for AVX512 gathers.
+       * gas/i386/x86-64-vgather-check.s: Likewise.
+       * gas/i386/vgather-check-error.l: Update correspondingly.
+       * gas/i386/vgather-check-none.d: Likewise.
+       * gas/i386/vgather-check-warn.d: Likewise.
+       * gas/i386/vgather-check-warn.e: Likewise.
+       * gas/i386/vgather-check.d: Likewise.
+       * gas/i386/x86-64-vgather-check-error.l: Likewise.
+       * gas/i386/x86-64-vgather-check-none.d: Likewise.
+       * gas/i386/x86-64-vgather-check-warn.d: Likewise.
+       * gas/i386/x86-64-vgather-check-warn.e: Likewise.
+       * gas/i386/x86-64-vgather-check.d: Likewise.
+
 2014-01-17  Will Newton  <will.newton@linaro.org>
 
        * gas/arm/armv8-a+fp.d: Correct encoding of vcvta.s32.f64.
index 41273dc3bfed3858e7f18ef7c0e109d0574e6c20..a86ccd50b10f54992af2682db70623ce675369bb 100644 (file)
@@ -2,3 +2,11 @@
 .*:6: Error: .*
 .*:7: Error: .*
 .*:8: Error: .*
+.*:12: Error: .*
+.*:14: Error: .*
+.*:16: Error: .*
+.*:18: Error: .*
+.*:20: Error: .*
+.*:22: Error: .*
+.*:24: Error: .*
+.*:26: Error: .*
index b51cc9482c1936e53138457a7b855b532c9d54b5..8abdfcbec82c8dd6b8f0e8d1e79852af8acb69c0 100644 (file)
@@ -11,4 +11,22 @@ Disassembly of section .text:
 [      ]*[a-f0-9]+:[   ]+c4 e2 69 92 14 48[    ]+vgatherdps %xmm2,\(%eax,%xmm1,2\),%xmm2
 [      ]*[a-f0-9]+:[   ]+c4 e2 71 92 04 88[    ]+vgatherdps %xmm1,\(%eax,%xmm1,4\),%xmm0
 [      ]*[a-f0-9]+:[   ]+c4 e2 69 92 0c c8[    ]+vgatherdps %xmm2,\(%eax,%xmm1,8\),%xmm1
+
+00000018 <avx512vgather>:
+[      ]+[a-f0-9]+:[   ]+62 f2 fd 49 92 b4 fd 7b 00 00 00[     ]+vgatherdpd 0x7b\(%ebp,%ymm7,8\),%zmm6\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 f2 fd 49 92 b4 f5 7b 00 00 00[     ]+vgatherdpd 0x7b\(%ebp,%ymm6,8\),%zmm6\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 f2 7d 49 92 b4 fd 7b 00 00 00[     ]+vgatherdps 0x7b\(%ebp,%zmm7,8\),%zmm6\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 f2 7d 49 92 b4 f5 7b 00 00 00[     ]+vgatherdps 0x7b\(%ebp,%zmm6,8\),%zmm6\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 f2 fd 49 93 b4 fd 7b 00 00 00[     ]+vgatherqpd 0x7b\(%ebp,%zmm7,8\),%zmm6\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 f2 fd 49 93 b4 f5 7b 00 00 00[     ]+vgatherqpd 0x7b\(%ebp,%zmm6,8\),%zmm6\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 f2 7d 49 93 b4 fd 7b 00 00 00[     ]+vgatherqps 0x7b\(%ebp,%zmm7,8\),%ymm6\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 f2 7d 49 93 b4 f5 7b 00 00 00[     ]+vgatherqps 0x7b\(%ebp,%zmm6,8\),%ymm6\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 f2 7d 49 90 b4 fd 7b 00 00 00[     ]+vpgatherdd 0x7b\(%ebp,%zmm7,8\),%zmm6\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 f2 7d 49 90 b4 f5 7b 00 00 00[     ]+vpgatherdd 0x7b\(%ebp,%zmm6,8\),%zmm6\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 f2 fd 49 90 b4 fd 7b 00 00 00[     ]+vpgatherdq 0x7b\(%ebp,%ymm7,8\),%zmm6\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 f2 fd 49 90 b4 f5 7b 00 00 00[     ]+vpgatherdq 0x7b\(%ebp,%ymm6,8\),%zmm6\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 f2 7d 49 91 b4 fd 7b 00 00 00[     ]+vpgatherqd 0x7b\(%ebp,%zmm7,8\),%ymm6\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 f2 7d 49 91 b4 f5 7b 00 00 00[     ]+vpgatherqd 0x7b\(%ebp,%zmm6,8\),%ymm6\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 f2 fd 49 91 b4 fd 7b 00 00 00[     ]+vpgatherqq 0x7b\(%ebp,%zmm7,8\),%zmm6\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 f2 fd 49 91 b4 f5 7b 00 00 00[     ]+vpgatherqq 0x7b\(%ebp,%zmm6,8\),%zmm6\{%k1\}
 #pass
index 22be2475c39aece947f3527d818cb351c2b303e7..985f713890799f468a4f8e1db8fc55d99db663bc 100644 (file)
@@ -12,4 +12,22 @@ Disassembly of section .text:
 [      ]*[a-f0-9]+:[   ]+c4 e2 69 92 14 48[    ]+vgatherdps %xmm2,\(%eax,%xmm1,2\),%xmm2
 [      ]*[a-f0-9]+:[   ]+c4 e2 71 92 04 88[    ]+vgatherdps %xmm1,\(%eax,%xmm1,4\),%xmm0
 [      ]*[a-f0-9]+:[   ]+c4 e2 69 92 0c c8[    ]+vgatherdps %xmm2,\(%eax,%xmm1,8\),%xmm1
+
+00000018 <avx512vgather>:
+[      ]+[a-f0-9]+:[   ]+62 f2 fd 49 92 b4 fd 7b 00 00 00[     ]+vgatherdpd 0x7b\(%ebp,%ymm7,8\),%zmm6\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 f2 fd 49 92 b4 f5 7b 00 00 00[     ]+vgatherdpd 0x7b\(%ebp,%ymm6,8\),%zmm6\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 f2 7d 49 92 b4 fd 7b 00 00 00[     ]+vgatherdps 0x7b\(%ebp,%zmm7,8\),%zmm6\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 f2 7d 49 92 b4 f5 7b 00 00 00[     ]+vgatherdps 0x7b\(%ebp,%zmm6,8\),%zmm6\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 f2 fd 49 93 b4 fd 7b 00 00 00[     ]+vgatherqpd 0x7b\(%ebp,%zmm7,8\),%zmm6\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 f2 fd 49 93 b4 f5 7b 00 00 00[     ]+vgatherqpd 0x7b\(%ebp,%zmm6,8\),%zmm6\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 f2 7d 49 93 b4 fd 7b 00 00 00[     ]+vgatherqps 0x7b\(%ebp,%zmm7,8\),%ymm6\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 f2 7d 49 93 b4 f5 7b 00 00 00[     ]+vgatherqps 0x7b\(%ebp,%zmm6,8\),%ymm6\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 f2 7d 49 90 b4 fd 7b 00 00 00[     ]+vpgatherdd 0x7b\(%ebp,%zmm7,8\),%zmm6\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 f2 7d 49 90 b4 f5 7b 00 00 00[     ]+vpgatherdd 0x7b\(%ebp,%zmm6,8\),%zmm6\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 f2 fd 49 90 b4 fd 7b 00 00 00[     ]+vpgatherdq 0x7b\(%ebp,%ymm7,8\),%zmm6\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 f2 fd 49 90 b4 f5 7b 00 00 00[     ]+vpgatherdq 0x7b\(%ebp,%ymm6,8\),%zmm6\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 f2 7d 49 91 b4 fd 7b 00 00 00[     ]+vpgatherqd 0x7b\(%ebp,%zmm7,8\),%ymm6\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 f2 7d 49 91 b4 f5 7b 00 00 00[     ]+vpgatherqd 0x7b\(%ebp,%zmm6,8\),%ymm6\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 f2 fd 49 91 b4 fd 7b 00 00 00[     ]+vpgatherqq 0x7b\(%ebp,%zmm7,8\),%zmm6\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 f2 fd 49 91 b4 f5 7b 00 00 00[     ]+vpgatherqq 0x7b\(%ebp,%zmm6,8\),%zmm6\{%k1\}
 #pass
index 095840bb90fdf78a9dd890f17a02bf792ee52ced..efd2e0bde30b052107c0e14dbd5a8ccd0cd521e0 100644 (file)
@@ -2,3 +2,11 @@
 .*:6: Warning: .*
 .*:7: Warning: .*
 .*:8: Warning: .*
+.*:12: Warning: .*
+.*:14: Warning: .*
+.*:16: Warning: .*
+.*:18: Warning: .*
+.*:20: Warning: .*
+.*:22: Warning: .*
+.*:24: Warning: .*
+.*:26: Warning: .*
index 25042f42237cdfb0a15ff0c6d4e2600b3024c1cf..c3505f9ac3df0b2c44263ce8148aaa1b5f70e417 100644 (file)
@@ -11,4 +11,22 @@ Disassembly of section .text:
 [      ]*[a-f0-9]+:[   ]+c4 e2 69 92 14 48[    ]+vgatherdps %xmm2,\(%eax,%xmm1,2\),%xmm2
 [      ]*[a-f0-9]+:[   ]+c4 e2 71 92 04 88[    ]+vgatherdps %xmm1,\(%eax,%xmm1,4\),%xmm0
 [      ]*[a-f0-9]+:[   ]+c4 e2 69 92 0c c8[    ]+vgatherdps %xmm2,\(%eax,%xmm1,8\),%xmm1
+
+00000018 <avx512vgather>:
+[      ]+[a-f0-9]+:[   ]+62 f2 fd 49 92 b4 fd 7b 00 00 00[     ]+vgatherdpd 0x7b\(%ebp,%ymm7,8\),%zmm6\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 f2 fd 49 92 b4 f5 7b 00 00 00[     ]+vgatherdpd 0x7b\(%ebp,%ymm6,8\),%zmm6\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 f2 7d 49 92 b4 fd 7b 00 00 00[     ]+vgatherdps 0x7b\(%ebp,%zmm7,8\),%zmm6\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 f2 7d 49 92 b4 f5 7b 00 00 00[     ]+vgatherdps 0x7b\(%ebp,%zmm6,8\),%zmm6\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 f2 fd 49 93 b4 fd 7b 00 00 00[     ]+vgatherqpd 0x7b\(%ebp,%zmm7,8\),%zmm6\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 f2 fd 49 93 b4 f5 7b 00 00 00[     ]+vgatherqpd 0x7b\(%ebp,%zmm6,8\),%zmm6\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 f2 7d 49 93 b4 fd 7b 00 00 00[     ]+vgatherqps 0x7b\(%ebp,%zmm7,8\),%ymm6\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 f2 7d 49 93 b4 f5 7b 00 00 00[     ]+vgatherqps 0x7b\(%ebp,%zmm6,8\),%ymm6\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 f2 7d 49 90 b4 fd 7b 00 00 00[     ]+vpgatherdd 0x7b\(%ebp,%zmm7,8\),%zmm6\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 f2 7d 49 90 b4 f5 7b 00 00 00[     ]+vpgatherdd 0x7b\(%ebp,%zmm6,8\),%zmm6\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 f2 fd 49 90 b4 fd 7b 00 00 00[     ]+vpgatherdq 0x7b\(%ebp,%ymm7,8\),%zmm6\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 f2 fd 49 90 b4 f5 7b 00 00 00[     ]+vpgatherdq 0x7b\(%ebp,%ymm6,8\),%zmm6\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 f2 7d 49 91 b4 fd 7b 00 00 00[     ]+vpgatherqd 0x7b\(%ebp,%zmm7,8\),%ymm6\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 f2 7d 49 91 b4 f5 7b 00 00 00[     ]+vpgatherqd 0x7b\(%ebp,%zmm6,8\),%ymm6\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 f2 fd 49 91 b4 fd 7b 00 00 00[     ]+vpgatherqq 0x7b\(%ebp,%zmm7,8\),%zmm6\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 f2 fd 49 91 b4 f5 7b 00 00 00[     ]+vpgatherqq 0x7b\(%ebp,%zmm6,8\),%zmm6\{%k1\}
 #pass
index c784029ece41e29425c0e65fdb869c2cc06f382b..b2735e75e317dbb7fab0289eda2628452135182a 100644 (file)
@@ -6,3 +6,21 @@ vgather:
        vgatherdps %xmm2,(%eax,%xmm1,2),%xmm2
        vgatherdps %xmm1,(%eax,%xmm1,4),%xmm0
        vgatherdps %xmm2,(%eax,%xmm1,8),%xmm1
+
+avx512vgather:
+       vgatherdpd      123(%ebp,%ymm7,8), %zmm6{%k1}
+       vgatherdpd      123(%ebp,%ymm6,8), %zmm6{%k1}
+       vgatherdps      123(%ebp,%zmm7,8), %zmm6{%k1}
+       vgatherdps      123(%ebp,%zmm6,8), %zmm6{%k1}
+       vgatherqpd      123(%ebp,%zmm7,8), %zmm6{%k1}
+       vgatherqpd      123(%ebp,%zmm6,8), %zmm6{%k1}
+       vgatherqps      123(%ebp,%zmm7,8), %ymm6{%k1}
+       vgatherqps      123(%ebp,%zmm6,8), %ymm6{%k1}
+       vpgatherdd      123(%ebp,%zmm7,8), %zmm6{%k1}
+       vpgatherdd      123(%ebp,%zmm6,8), %zmm6{%k1}
+       vpgatherdq      123(%ebp,%ymm7,8), %zmm6{%k1}
+       vpgatherdq      123(%ebp,%ymm6,8), %zmm6{%k1}
+       vpgatherqd      123(%ebp,%zmm7,8), %ymm6{%k1}
+       vpgatherqd      123(%ebp,%zmm6,8), %ymm6{%k1}
+       vpgatherqq      123(%ebp,%zmm7,8), %zmm6{%k1}
+       vpgatherqq      123(%ebp,%zmm6,8), %zmm6{%k1}
index d5c7205942328778e8d8755f024cc4a02feffac1..28fa82407c1c5469df5e6e6a63aadb8d98b3dea1 100644 (file)
@@ -2,3 +2,11 @@
 .*:6: Error: .*
 .*:8: Error: .*
 .*:10: Error: .*
+.*:15: Error: .*
+.*:17: Error: .*
+.*:19: Error: .*
+.*:21: Error: .*
+.*:23: Error: .*
+.*:25: Error: .*
+.*:27: Error: .*
+.*:29: Error: .*
index e235e007384206a0632becb540d0f356be99fa46..a1062f77e14da481ca8d300ef21b5cd766f28705 100644 (file)
@@ -14,4 +14,22 @@ Disassembly of section .text:
 [      ]*[a-f0-9]+:[   ]+c4 e2 31 92 04 88[    ]+vgatherdps %xmm9,\(%rax,%xmm1,4\),%xmm0
 [      ]*[a-f0-9]+:[   ]+c4 e2 69 92 0c c8[    ]+vgatherdps %xmm2,\(%rax,%xmm1,8\),%xmm1
 [      ]*[a-f0-9]+:[   ]+c4 62 69 92 0c c8[    ]+vgatherdps %xmm2,\(%rax,%xmm1,8\),%xmm9
+
+000000000000002a <avx512vgather>:
+[      ]+[a-f0-9]+:[   ]+62 e2 fd 41 92 84 cd 7b 00 00 00[     ]+vgatherdpd 0x7b\(%rbp,%ymm17,8\),%zmm16\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 e2 fd 41 92 84 c5 7b 00 00 00[     ]+vgatherdpd 0x7b\(%rbp,%ymm16,8\),%zmm16\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 e2 7d 41 92 84 cd 7b 00 00 00[     ]+vgatherdps 0x7b\(%rbp,%zmm17,8\),%zmm16\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 e2 7d 41 92 84 c5 7b 00 00 00[     ]+vgatherdps 0x7b\(%rbp,%zmm16,8\),%zmm16\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 e2 fd 41 93 84 cd 7b 00 00 00[     ]+vgatherqpd 0x7b\(%rbp,%zmm17,8\),%zmm16\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 e2 fd 41 93 84 c5 7b 00 00 00[     ]+vgatherqpd 0x7b\(%rbp,%zmm16,8\),%zmm16\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 e2 7d 41 93 84 cd 7b 00 00 00[     ]+vgatherqps 0x7b\(%rbp,%zmm17,8\),%ymm16\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 e2 7d 41 93 84 c5 7b 00 00 00[     ]+vgatherqps 0x7b\(%rbp,%zmm16,8\),%ymm16\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 e2 7d 41 90 84 cd 7b 00 00 00[     ]+vpgatherdd 0x7b\(%rbp,%zmm17,8\),%zmm16\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 e2 7d 41 90 84 c5 7b 00 00 00[     ]+vpgatherdd 0x7b\(%rbp,%zmm16,8\),%zmm16\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 e2 fd 41 90 84 cd 7b 00 00 00[     ]+vpgatherdq 0x7b\(%rbp,%ymm17,8\),%zmm16\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 e2 fd 41 90 84 c5 7b 00 00 00[     ]+vpgatherdq 0x7b\(%rbp,%ymm16,8\),%zmm16\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 e2 7d 41 91 84 cd 7b 00 00 00[     ]+vpgatherqd 0x7b\(%rbp,%zmm17,8\),%ymm16\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 e2 7d 41 91 84 c5 7b 00 00 00[     ]+vpgatherqd 0x7b\(%rbp,%zmm16,8\),%ymm16\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 e2 fd 41 91 84 cd 7b 00 00 00[     ]+vpgatherqq 0x7b\(%rbp,%zmm17,8\),%zmm16\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 e2 fd 41 91 84 c5 7b 00 00 00[     ]+vpgatherqq 0x7b\(%rbp,%zmm16,8\),%zmm16\{%k1\}
 #pass
index 33846d25802c7e12d09e6ada0e0f72e0759404d0..3d7a249113bcfe1afaedc916651340128e6d1828 100644 (file)
@@ -15,4 +15,22 @@ Disassembly of section .text:
 [      ]*[a-f0-9]+:[   ]+c4 e2 31 92 04 88[    ]+vgatherdps %xmm9,\(%rax,%xmm1,4\),%xmm0
 [      ]*[a-f0-9]+:[   ]+c4 e2 69 92 0c c8[    ]+vgatherdps %xmm2,\(%rax,%xmm1,8\),%xmm1
 [      ]*[a-f0-9]+:[   ]+c4 62 69 92 0c c8[    ]+vgatherdps %xmm2,\(%rax,%xmm1,8\),%xmm9
+
+000000000000002a <avx512vgather>:
+[      ]+[a-f0-9]+:[   ]+62 e2 fd 41 92 84 cd 7b 00 00 00[     ]+vgatherdpd 0x7b\(%rbp,%ymm17,8\),%zmm16\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 e2 fd 41 92 84 c5 7b 00 00 00[     ]+vgatherdpd 0x7b\(%rbp,%ymm16,8\),%zmm16\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 e2 7d 41 92 84 cd 7b 00 00 00[     ]+vgatherdps 0x7b\(%rbp,%zmm17,8\),%zmm16\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 e2 7d 41 92 84 c5 7b 00 00 00[     ]+vgatherdps 0x7b\(%rbp,%zmm16,8\),%zmm16\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 e2 fd 41 93 84 cd 7b 00 00 00[     ]+vgatherqpd 0x7b\(%rbp,%zmm17,8\),%zmm16\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 e2 fd 41 93 84 c5 7b 00 00 00[     ]+vgatherqpd 0x7b\(%rbp,%zmm16,8\),%zmm16\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 e2 7d 41 93 84 cd 7b 00 00 00[     ]+vgatherqps 0x7b\(%rbp,%zmm17,8\),%ymm16\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 e2 7d 41 93 84 c5 7b 00 00 00[     ]+vgatherqps 0x7b\(%rbp,%zmm16,8\),%ymm16\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 e2 7d 41 90 84 cd 7b 00 00 00[     ]+vpgatherdd 0x7b\(%rbp,%zmm17,8\),%zmm16\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 e2 7d 41 90 84 c5 7b 00 00 00[     ]+vpgatherdd 0x7b\(%rbp,%zmm16,8\),%zmm16\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 e2 fd 41 90 84 cd 7b 00 00 00[     ]+vpgatherdq 0x7b\(%rbp,%ymm17,8\),%zmm16\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 e2 fd 41 90 84 c5 7b 00 00 00[     ]+vpgatherdq 0x7b\(%rbp,%ymm16,8\),%zmm16\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 e2 7d 41 91 84 cd 7b 00 00 00[     ]+vpgatherqd 0x7b\(%rbp,%zmm17,8\),%ymm16\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 e2 7d 41 91 84 c5 7b 00 00 00[     ]+vpgatherqd 0x7b\(%rbp,%zmm16,8\),%ymm16\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 e2 fd 41 91 84 cd 7b 00 00 00[     ]+vpgatherqq 0x7b\(%rbp,%zmm17,8\),%zmm16\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 e2 fd 41 91 84 c5 7b 00 00 00[     ]+vpgatherqq 0x7b\(%rbp,%zmm16,8\),%zmm16\{%k1\}
 #pass
index 24e6a578e9ad8d87e2afcfb6567ad09cc2bda97c..b17f423091f0a55371bce470b659dcbee3faac7a 100644 (file)
@@ -2,3 +2,11 @@
 .*:6: Warning: .*
 .*:8: Warning: .*
 .*:10: Warning: .*
+.*:15: Warning: .*
+.*:17: Warning: .*
+.*:19: Warning: .*
+.*:21: Warning: .*
+.*:23: Warning: .*
+.*:25: Warning: .*
+.*:27: Warning: .*
+.*:29: Warning: .*
index bd8ce57ac025901b258064f7f81a66575de588e3..d51f67076b4805cc403d57204e800f5e4b60d1f0 100644 (file)
@@ -14,4 +14,22 @@ Disassembly of section .text:
 [      ]*[a-f0-9]+:[   ]+c4 e2 31 92 04 88[    ]+vgatherdps %xmm9,\(%rax,%xmm1,4\),%xmm0
 [      ]*[a-f0-9]+:[   ]+c4 e2 69 92 0c c8[    ]+vgatherdps %xmm2,\(%rax,%xmm1,8\),%xmm1
 [      ]*[a-f0-9]+:[   ]+c4 62 69 92 0c c8[    ]+vgatherdps %xmm2,\(%rax,%xmm1,8\),%xmm9
+
+000000000000002a <avx512vgather>:
+[      ]+[a-f0-9]+:[   ]+62 e2 fd 41 92 84 cd 7b 00 00 00[     ]+vgatherdpd 0x7b\(%rbp,%ymm17,8\),%zmm16\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 e2 fd 41 92 84 c5 7b 00 00 00[     ]+vgatherdpd 0x7b\(%rbp,%ymm16,8\),%zmm16\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 e2 7d 41 92 84 cd 7b 00 00 00[     ]+vgatherdps 0x7b\(%rbp,%zmm17,8\),%zmm16\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 e2 7d 41 92 84 c5 7b 00 00 00[     ]+vgatherdps 0x7b\(%rbp,%zmm16,8\),%zmm16\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 e2 fd 41 93 84 cd 7b 00 00 00[     ]+vgatherqpd 0x7b\(%rbp,%zmm17,8\),%zmm16\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 e2 fd 41 93 84 c5 7b 00 00 00[     ]+vgatherqpd 0x7b\(%rbp,%zmm16,8\),%zmm16\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 e2 7d 41 93 84 cd 7b 00 00 00[     ]+vgatherqps 0x7b\(%rbp,%zmm17,8\),%ymm16\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 e2 7d 41 93 84 c5 7b 00 00 00[     ]+vgatherqps 0x7b\(%rbp,%zmm16,8\),%ymm16\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 e2 7d 41 90 84 cd 7b 00 00 00[     ]+vpgatherdd 0x7b\(%rbp,%zmm17,8\),%zmm16\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 e2 7d 41 90 84 c5 7b 00 00 00[     ]+vpgatherdd 0x7b\(%rbp,%zmm16,8\),%zmm16\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 e2 fd 41 90 84 cd 7b 00 00 00[     ]+vpgatherdq 0x7b\(%rbp,%ymm17,8\),%zmm16\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 e2 fd 41 90 84 c5 7b 00 00 00[     ]+vpgatherdq 0x7b\(%rbp,%ymm16,8\),%zmm16\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 e2 7d 41 91 84 cd 7b 00 00 00[     ]+vpgatherqd 0x7b\(%rbp,%zmm17,8\),%ymm16\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 e2 7d 41 91 84 c5 7b 00 00 00[     ]+vpgatherqd 0x7b\(%rbp,%zmm16,8\),%ymm16\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 e2 fd 41 91 84 cd 7b 00 00 00[     ]+vpgatherqq 0x7b\(%rbp,%zmm17,8\),%zmm16\{%k1\}
+[      ]+[a-f0-9]+:[   ]+62 e2 fd 41 91 84 c5 7b 00 00 00[     ]+vpgatherqq 0x7b\(%rbp,%zmm16,8\),%zmm16\{%k1\}
 #pass
index 43b058b6ca07efa1c016c8ab6914b657def8e468..9d5872c8420b0fb1351a3fd73d3f964dd2695c8a 100644 (file)
@@ -9,3 +9,21 @@ vgather:
        vgatherdps %xmm9,(%rax,%xmm1,4),%xmm0
        vgatherdps %xmm2,(%rax,%xmm1,8),%xmm1
        vgatherdps %xmm2,(%rax,%xmm1,8),%xmm9
+
+avx512vgather:
+       vgatherdpd      123(%rbp,%ymm17,8), %zmm16{%k1}
+       vgatherdpd      123(%rbp,%ymm16,8), %zmm16{%k1}
+       vgatherdps      123(%rbp,%zmm17,8), %zmm16{%k1}
+       vgatherdps      123(%rbp,%zmm16,8), %zmm16{%k1}
+       vgatherqpd      123(%rbp,%zmm17,8), %zmm16{%k1}
+       vgatherqpd      123(%rbp,%zmm16,8), %zmm16{%k1}
+       vgatherqps      123(%rbp,%zmm17,8), %ymm16{%k1}
+       vgatherqps      123(%rbp,%zmm16,8), %ymm16{%k1}
+       vpgatherdd      123(%rbp,%zmm17,8), %zmm16{%k1}
+       vpgatherdd      123(%rbp,%zmm16,8), %zmm16{%k1}
+       vpgatherdq      123(%rbp,%ymm17,8), %zmm16{%k1}
+       vpgatherdq      123(%rbp,%ymm16,8), %zmm16{%k1}
+       vpgatherqd      123(%rbp,%zmm17,8), %ymm16{%k1}
+       vpgatherqd      123(%rbp,%zmm16,8), %ymm16{%k1}
+       vpgatherqq      123(%rbp,%zmm17,8), %zmm16{%k1}
+       vpgatherqq      123(%rbp,%zmm16,8), %zmm16{%k1}