[llvm] r249521 - AVX512: Change encoding of vpshuflw and vpshufhw instructions. Implement WIG as W0 and not W1, like all other instruction have been implemented.

Igor Breger via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 6 23:31:18 PDT 2015


Author: ibreger
Date: Wed Oct  7 01:31:18 2015
New Revision: 249521

URL: http://llvm.org/viewvc/llvm-project?rev=249521&view=rev
Log:
AVX512: Change encoding of vpshuflw and vpshufhw instructions. Implement WIG as W0 and not W1, like all other instruction have been implemented.
Add encoding tests.

Differential Revision: http://reviews.llvm.org/D13471

Modified:
    llvm/trunk/lib/Target/X86/X86InstrAVX512.td
    llvm/trunk/test/MC/X86/x86-64-avx512bw.s
    llvm/trunk/test/MC/X86/x86-64-avx512bw_vl.s

Modified: llvm/trunk/lib/Target/X86/X86InstrAVX512.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrAVX512.td?rev=249521&r1=249520&r2=249521&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86InstrAVX512.td (original)
+++ llvm/trunk/lib/Target/X86/X86InstrAVX512.td Wed Oct  7 01:31:18 2015
@@ -1842,7 +1842,6 @@ multiclass avx512_vector_fpclass<bits<8>
   }
 }
 
-
 multiclass avx512_vector_fpclass_all<string OpcodeStr,
             AVX512VLVectorVTInfo _, bits<8> opc, SDNode OpNode, Predicate prd, 
                                                               string broadcast>{
@@ -4149,9 +4148,9 @@ defm VPSHUFD : avx512_shift_rmi_sizes<0x
                              X86PShufd, avx512vl_i32_info>,
                              EVEX, AVX512BIi8Base, EVEX_CD8<32, CD8VF>;
 defm VPSHUFH : avx512_shift_rmi_w<0x70, MRMSrcReg, MRMSrcMem, "vpshufhw",
-                                  X86PShufhw>, EVEX, AVX512XSIi8Base, VEX_W;
+                                  X86PShufhw>, EVEX, AVX512XSIi8Base;
 defm VPSHUFL : avx512_shift_rmi_w<0x70, MRMSrcReg, MRMSrcMem, "vpshuflw",
-                                  X86PShuflw>, EVEX, AVX512XDIi8Base, VEX_W;
+                                  X86PShuflw>, EVEX, AVX512XDIi8Base;
 
 multiclass avx512_pshufb_sizes<bits<8> opc, string OpcodeStr, SDNode OpNode> {
   let Predicates = [HasBWI] in

Modified: llvm/trunk/test/MC/X86/x86-64-avx512bw.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/X86/x86-64-avx512bw.s?rev=249521&r1=249520&r2=249521&view=diff
==============================================================================
--- llvm/trunk/test/MC/X86/x86-64-avx512bw.s (original)
+++ llvm/trunk/test/MC/X86/x86-64-avx512bw.s Wed Oct  7 01:31:18 2015
@@ -4315,3 +4315,84 @@
 // CHECK: vpsadbw -8256(%rdx), %zmm25, %zmm28
 // CHECK:  encoding: [0x62,0x61,0x35,0x40,0xf6,0xa2,0xc0,0xdf,0xff,0xff]
           vpsadbw -8256(%rdx), %zmm25, %zmm28
+
+// CHECK: vpshuflw $171, %zmm28, %zmm26
+// CHECK:  encoding: [0x62,0x01,0x7f,0x48,0x70,0xd4,0xab]
+          vpshuflw $171, %zmm28, %zmm26
+
+// CHECK: vpshuflw $171, %zmm28, %zmm26 {%k1}
+// CHECK:  encoding: [0x62,0x01,0x7f,0x49,0x70,0xd4,0xab]
+          vpshuflw $171, %zmm28, %zmm26 {%k1}
+
+// CHECK: vpshuflw $171, %zmm28, %zmm26 {%k1} {z}
+// CHECK:  encoding: [0x62,0x01,0x7f,0xc9,0x70,0xd4,0xab]
+          vpshuflw $171, %zmm28, %zmm26 {%k1} {z}
+
+// CHECK: vpshuflw $123, %zmm28, %zmm26
+// CHECK:  encoding: [0x62,0x01,0x7f,0x48,0x70,0xd4,0x7b]
+          vpshuflw $123, %zmm28, %zmm26
+
+// CHECK: vpshuflw $123, (%rcx), %zmm26
+// CHECK:  encoding: [0x62,0x61,0x7f,0x48,0x70,0x11,0x7b]
+          vpshuflw $123, (%rcx), %zmm26
+
+// CHECK: vpshuflw $123, 291(%rax,%r14,8), %zmm26
+// CHECK:  encoding: [0x62,0x21,0x7f,0x48,0x70,0x94,0xf0,0x23,0x01,0x00,0x00,0x7b]
+          vpshuflw $123, 291(%rax,%r14,8), %zmm26
+
+// CHECK: vpshuflw $123, 8128(%rdx), %zmm26
+// CHECK:  encoding: [0x62,0x61,0x7f,0x48,0x70,0x52,0x7f,0x7b]
+          vpshuflw $123, 8128(%rdx), %zmm26
+
+// CHECK: vpshuflw $123, 8192(%rdx), %zmm26
+// CHECK:  encoding: [0x62,0x61,0x7f,0x48,0x70,0x92,0x00,0x20,0x00,0x00,0x7b]
+          vpshuflw $123, 8192(%rdx), %zmm26
+
+// CHECK: vpshuflw $123, -8192(%rdx), %zmm26
+// CHECK:  encoding: [0x62,0x61,0x7f,0x48,0x70,0x52,0x80,0x7b]
+          vpshuflw $123, -8192(%rdx), %zmm26
+
+// CHECK: vpshuflw $123, -8256(%rdx), %zmm26
+// CHECK:  encoding: [0x62,0x61,0x7f,0x48,0x70,0x92,0xc0,0xdf,0xff,0xff,0x7b]
+          vpshuflw $123, -8256(%rdx), %zmm26
+
+// CHECK: vpshufhw $171, %zmm18, %zmm18
+// CHECK:  encoding: [0x62,0xa1,0x7e,0x48,0x70,0xd2,0xab]
+          vpshufhw $171, %zmm18, %zmm18
+
+// CHECK: vpshufhw $171, %zmm18, %zmm18 {%k4}
+// CHECK:  encoding: [0x62,0xa1,0x7e,0x4c,0x70,0xd2,0xab]
+          vpshufhw $171, %zmm18, %zmm18 {%k4}
+
+// CHECK: vpshufhw $171, %zmm18, %zmm18 {%k4} {z}
+// CHECK:  encoding: [0x62,0xa1,0x7e,0xcc,0x70,0xd2,0xab]
+          vpshufhw $171, %zmm18, %zmm18 {%k4} {z}
+
+// CHECK: vpshufhw $123, %zmm18, %zmm18
+// CHECK:  encoding: [0x62,0xa1,0x7e,0x48,0x70,0xd2,0x7b]
+          vpshufhw $123, %zmm18, %zmm18
+
+// CHECK: vpshufhw $123, (%rcx), %zmm18
+// CHECK:  encoding: [0x62,0xe1,0x7e,0x48,0x70,0x11,0x7b]
+          vpshufhw $123, (%rcx), %zmm18
+
+// CHECK: vpshufhw $123, 291(%rax,%r14,8), %zmm18
+// CHECK:  encoding: [0x62,0xa1,0x7e,0x48,0x70,0x94,0xf0,0x23,0x01,0x00,0x00,0x7b]
+          vpshufhw $123, 291(%rax,%r14,8), %zmm18
+
+// CHECK: vpshufhw $123, 8128(%rdx), %zmm18
+// CHECK:  encoding: [0x62,0xe1,0x7e,0x48,0x70,0x52,0x7f,0x7b]
+          vpshufhw $123, 8128(%rdx), %zmm18
+
+// CHECK: vpshufhw $123, 8192(%rdx), %zmm18
+// CHECK:  encoding: [0x62,0xe1,0x7e,0x48,0x70,0x92,0x00,0x20,0x00,0x00,0x7b]
+          vpshufhw $123, 8192(%rdx), %zmm18
+
+// CHECK: vpshufhw $123, -8192(%rdx), %zmm18
+// CHECK:  encoding: [0x62,0xe1,0x7e,0x48,0x70,0x52,0x80,0x7b]
+          vpshufhw $123, -8192(%rdx), %zmm18
+
+// CHECK: vpshufhw $123, -8256(%rdx), %zmm18
+// CHECK:  encoding: [0x62,0xe1,0x7e,0x48,0x70,0x92,0xc0,0xdf,0xff,0xff,0x7b]
+          vpshufhw $123, -8256(%rdx), %zmm18
+

Modified: llvm/trunk/test/MC/X86/x86-64-avx512bw_vl.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/X86/x86-64-avx512bw_vl.s?rev=249521&r1=249520&r2=249521&view=diff
==============================================================================
--- llvm/trunk/test/MC/X86/x86-64-avx512bw_vl.s (original)
+++ llvm/trunk/test/MC/X86/x86-64-avx512bw_vl.s Wed Oct  7 01:31:18 2015
@@ -5776,165 +5776,325 @@
 // CHECK:  encoding: [0x62,0x61,0x35,0x20,0xd9,0x9a,0xe0,0xef,0xff,0xff]
           vpsubusw -4128(%rdx), %ymm25, %ymm27
 
-// CHECK: vpshufhw $171, %xmm19, %xmm23
-// CHECK:  encoding: [0x62,0xa1,0xfe,0x08,0x70,0xfb,0xab]
-          vpshufhw $171, %xmm19, %xmm23
-
-// CHECK: vpshufhw $171, %xmm19, %xmm23 {%k7}
-// CHECK:  encoding: [0x62,0xa1,0xfe,0x0f,0x70,0xfb,0xab]
-          vpshufhw $171, %xmm19, %xmm23 {%k7}
-
-// CHECK: vpshufhw $171, %xmm19, %xmm23 {%k7} {z}
-// CHECK:  encoding: [0x62,0xa1,0xfe,0x8f,0x70,0xfb,0xab]
-          vpshufhw $171, %xmm19, %xmm23 {%k7} {z}
-
-// CHECK: vpshufhw $123,  %xmm19, %xmm23
-// CHECK:  encoding: [0x62,0xa1,0xfe,0x08,0x70,0xfb,0x7b]
-          vpshufhw $123,  %xmm19, %xmm23
-
-// CHECK: vpshufhw $123,  (%rcx), %xmm23
-// CHECK:  encoding: [0x62,0xe1,0xfe,0x08,0x70,0x39,0x7b]
-          vpshufhw $123, (%rcx), %xmm23
-
-// CHECK: vpshufhw $123, 291(%rax,%r14,8), %xmm23
-// CHECK:  encoding: [0x62,0xa1,0xfe,0x08,0x70,0xbc,0xf0,0x23,0x01,0x00,0x00,0x7b]
-          vpshufhw $123, 291(%rax,%r14,8), %xmm23
-
-// CHECK: vpshufhw $123, 2032(%rdx), %xmm23
-// CHECK:  encoding: [0x62,0xe1,0xfe,0x08,0x70,0x7a,0x7f,0x7b]
-          vpshufhw $123, 2032(%rdx), %xmm23
-
-// CHECK: vpshufhw $123, 2048(%rdx), %xmm23
-// CHECK:  encoding: [0x62,0xe1,0xfe,0x08,0x70,0xba,0x00,0x08,0x00,0x00,0x7b]
-          vpshufhw $123, 2048(%rdx), %xmm23
-
-// CHECK: vpshufhw $123, -2048(%rdx), %xmm23
-// CHECK:  encoding: [0x62,0xe1,0xfe,0x08,0x70,0x7a,0x80,0x7b]
-          vpshufhw $123, -2048(%rdx), %xmm23
-
-// CHECK: vpshufhw $123, -2064(%rdx), %xmm23
-// CHECK:  encoding: [0x62,0xe1,0xfe,0x08,0x70,0xba,0xf0,0xf7,0xff,0xff,0x7b]
-          vpshufhw $123, -2064(%rdx), %xmm23
-
-// CHECK: vpshufhw $171, %ymm17, %ymm29
-// CHECK:  encoding: [0x62,0x21,0xfe,0x28,0x70,0xe9,0xab]
-          vpshufhw $171, %ymm17, %ymm29
-
-// CHECK: vpshufhw $171, %ymm17, %ymm29 {%k7}
-// CHECK:  encoding: [0x62,0x21,0xfe,0x2f,0x70,0xe9,0xab]
-          vpshufhw $171, %ymm17, %ymm29 {%k7}
-
-// CHECK: vpshufhw $171, %ymm17, %ymm29 {%k7} {z}
-// CHECK:  encoding: [0x62,0x21,0xfe,0xaf,0x70,0xe9,0xab]
-          vpshufhw $171, %ymm17, %ymm29 {%k7} {z}
-
-// CHECK: vpshufhw $123,  %ymm17, %ymm29
-// CHECK:  encoding: [0x62,0x21,0xfe,0x28,0x70,0xe9,0x7b]
-          vpshufhw $123,  %ymm17, %ymm29
-
-// CHECK: vpshufhw $123, (%rcx), %ymm29
-// CHECK:  encoding: [0x62,0x61,0xfe,0x28,0x70,0x29,0x7b]
-          vpshufhw $123, (%rcx), %ymm29
-
-// CHECK: vpshufhw $123, 291(%rax,%r14,8), %ymm29
-// CHECK:  encoding: [0x62,0x21,0xfe,0x28,0x70,0xac,0xf0,0x23,0x01,0x00,0x00,0x7b]
-          vpshufhw $123, 291(%rax,%r14,8), %ymm29
-
-// CHECK: vpshufhw $123, 4064(%rdx), %ymm29
-// CHECK:  encoding: [0x62,0x61,0xfe,0x28,0x70,0x6a,0x7f,0x7b]
-          vpshufhw $123, 4064(%rdx), %ymm29
-
-// CHECK: vpshufhw $123, 4096(%rdx), %ymm29
-// CHECK:  encoding: [0x62,0x61,0xfe,0x28,0x70,0xaa,0x00,0x10,0x00,0x00,0x7b]
-          vpshufhw $123, 4096(%rdx), %ymm29
-
-// CHECK: vpshufhw $123, -4096(%rdx), %ymm29
-// CHECK:  encoding: [0x62,0x61,0xfe,0x28,0x70,0x6a,0x80,0x7b]
-          vpshufhw $123, -4096(%rdx), %ymm29
-
-// CHECK: vpshufhw $123, -4128(%rdx), %ymm29
-// CHECK:  encoding: [0x62,0x61,0xfe,0x28,0x70,0xaa,0xe0,0xef,0xff,0xff,0x7b]
-          vpshufhw $123, -4128(%rdx), %ymm29
-
-// CHECK: vpshuflw $171, %xmm27, %xmm30
-// CHECK:  encoding: [0x62,0x01,0xff,0x08,0x70,0xf3,0xab]
-          vpshuflw $171, %xmm27, %xmm30
-
-// CHECK: vpshuflw $171, %xmm27, %xmm30 {%k6}
-// CHECK:  encoding: [0x62,0x01,0xff,0x0e,0x70,0xf3,0xab]
-          vpshuflw $171, %xmm27, %xmm30 {%k6}
-
-// CHECK: vpshuflw $171, %xmm27, %xmm30 {%k6} {z}
-// CHECK:  encoding: [0x62,0x01,0xff,0x8e,0x70,0xf3,0xab]
-          vpshuflw $171, %xmm27, %xmm30 {%k6} {z}
-
-// CHECK: vpshuflw $123,  %xmm27, %xmm30
-// CHECK:  encoding: [0x62,0x01,0xff,0x08,0x70,0xf3,0x7b]
-          vpshuflw $123,  %xmm27, %xmm30
-
-// CHECK: vpshuflw $123, (%rcx), %xmm30
-// CHECK:  encoding: [0x62,0x61,0xff,0x08,0x70,0x31,0x7b]
-          vpshuflw $123, (%rcx), %xmm30
-
-// CHECK: vpshuflw $123, 291(%rax,%r14,8), %xmm30
-// CHECK:  encoding: [0x62,0x21,0xff,0x08,0x70,0xb4,0xf0,0x23,0x01,0x00,0x00,0x7b]
-          vpshuflw $123, 291(%rax,%r14,8), %xmm30
-
-// CHECK: vpshuflw $123, 2032(%rdx), %xmm30
-// CHECK:  encoding: [0x62,0x61,0xff,0x08,0x70,0x72,0x7f,0x7b]
-          vpshuflw $123, 2032(%rdx), %xmm30
-
-// CHECK: vpshuflw $123, 2048(%rdx), %xmm30
-// CHECK:  encoding: [0x62,0x61,0xff,0x08,0x70,0xb2,0x00,0x08,0x00,0x00,0x7b]
-          vpshuflw $123, 2048(%rdx), %xmm30
-
-// CHECK: vpshuflw $123, -2048(%rdx), %xmm30
-// CHECK:  encoding: [0x62,0x61,0xff,0x08,0x70,0x72,0x80,0x7b]
-          vpshuflw $123, -2048(%rdx), %xmm30
-
-// CHECK: vpshuflw $123, -2064(%rdx), %xmm30
-// CHECK:  encoding: [0x62,0x61,0xff,0x08,0x70,0xb2,0xf0,0xf7,0xff,0xff,0x7b]
-          vpshuflw $123, -2064(%rdx), %xmm30
-
-// CHECK: vpshuflw $171, %ymm25, %ymm25
-// CHECK:  encoding: [0x62,0x01,0xff,0x28,0x70,0xc9,0xab]
-          vpshuflw $171, %ymm25, %ymm25
-
-// CHECK: vpshuflw $171, %ymm25, %ymm25 {%k5}
-// CHECK:  encoding: [0x62,0x01,0xff,0x2d,0x70,0xc9,0xab]
-          vpshuflw $171, %ymm25, %ymm25 {%k5}
-
-// CHECK: vpshuflw $171, %ymm25, %ymm25 {%k5} {z}
-// CHECK:  encoding: [0x62,0x01,0xff,0xad,0x70,0xc9,0xab]
-          vpshuflw $171, %ymm25, %ymm25 {%k5} {z}
-
-// CHECK: vpshuflw $123,  %ymm25, %ymm25
-// CHECK:  encoding: [0x62,0x01,0xff,0x28,0x70,0xc9,0x7b]
-          vpshuflw $123,  %ymm25, %ymm25
-
-// CHECK: vpshuflw $123, (%rcx), %ymm25
-// CHECK:  encoding: [0x62,0x61,0xff,0x28,0x70,0x09,0x7b]
-          vpshuflw $123, (%rcx), %ymm25
-
-// CHECK: vpshuflw $123, 291(%rax,%r14,8), %ymm25
-// CHECK:  encoding: [0x62,0x21,0xff,0x28,0x70,0x8c,0xf0,0x23,0x01,0x00,0x00,0x7b]
-          vpshuflw $123, 291(%rax,%r14,8), %ymm25
-
-// CHECK: vpshuflw $123, 4064(%rdx), %ymm25
-// CHECK:  encoding: [0x62,0x61,0xff,0x28,0x70,0x4a,0x7f,0x7b]
-          vpshuflw $123, 4064(%rdx), %ymm25
-
-// CHECK: vpshuflw $123, 4096(%rdx), %ymm25
-// CHECK:  encoding: [0x62,0x61,0xff,0x28,0x70,0x8a,0x00,0x10,0x00,0x00,0x7b]
-          vpshuflw $123, 4096(%rdx), %ymm25
-
-// CHECK: vpshuflw $123, -4096(%rdx), %ymm25
-// CHECK:  encoding: [0x62,0x61,0xff,0x28,0x70,0x4a,0x80,0x7b]
-          vpshuflw $123, -4096(%rdx), %ymm25
-
-// CHECK: vpshuflw $123, -4128(%rdx), %ymm25
-// CHECK:  encoding: [0x62,0x61,0xff,0x28,0x70,0x8a,0xe0,0xef,0xff,0xff,0x7b]
-          vpshuflw $123, -4128(%rdx), %ymm25
+// CHECK: vpshufhw $171, %xmm27, %xmm28
+// CHECK:  encoding: [0x62,0x01,0x7e,0x08,0x70,0xe3,0xab]
+          vpshufhw $171, %xmm27, %xmm28
+
+// CHECK: vpshufhw $171, %xmm27, %xmm28 {%k6}
+// CHECK:  encoding: [0x62,0x01,0x7e,0x0e,0x70,0xe3,0xab]
+          vpshufhw $171, %xmm27, %xmm28 {%k6}
+
+// CHECK: vpshufhw $171, %xmm27, %xmm28 {%k6} {z}
+// CHECK:  encoding: [0x62,0x01,0x7e,0x8e,0x70,0xe3,0xab]
+          vpshufhw $171, %xmm27, %xmm28 {%k6} {z}
+
+// CHECK: vpshufhw $123, %xmm27, %xmm28
+// CHECK:  encoding: [0x62,0x01,0x7e,0x08,0x70,0xe3,0x7b]
+          vpshufhw $123, %xmm27, %xmm28
+
+// CHECK: vpshufhw $123, (%rcx), %xmm28
+// CHECK:  encoding: [0x62,0x61,0x7e,0x08,0x70,0x21,0x7b]
+          vpshufhw $123, (%rcx), %xmm28
+
+// CHECK: vpshufhw $123, 291(%rax,%r14,8), %xmm28
+// CHECK:  encoding: [0x62,0x21,0x7e,0x08,0x70,0xa4,0xf0,0x23,0x01,0x00,0x00,0x7b]
+          vpshufhw $123, 291(%rax,%r14,8), %xmm28
+
+// CHECK: vpshufhw $123, 2032(%rdx), %xmm28
+// CHECK:  encoding: [0x62,0x61,0x7e,0x08,0x70,0x62,0x7f,0x7b]
+          vpshufhw $123, 2032(%rdx), %xmm28
+
+// CHECK: vpshufhw $123, 2048(%rdx), %xmm28
+// CHECK:  encoding: [0x62,0x61,0x7e,0x08,0x70,0xa2,0x00,0x08,0x00,0x00,0x7b]
+          vpshufhw $123, 2048(%rdx), %xmm28
+
+// CHECK: vpshufhw $123, -2048(%rdx), %xmm28
+// CHECK:  encoding: [0x62,0x61,0x7e,0x08,0x70,0x62,0x80,0x7b]
+          vpshufhw $123, -2048(%rdx), %xmm28
+
+// CHECK: vpshufhw $123, -2064(%rdx), %xmm28
+// CHECK:  encoding: [0x62,0x61,0x7e,0x08,0x70,0xa2,0xf0,0xf7,0xff,0xff,0x7b]
+          vpshufhw $123, -2064(%rdx), %xmm28
+
+// CHECK: vpshufhw $171, %ymm22, %ymm19
+// CHECK:  encoding: [0x62,0xa1,0x7e,0x28,0x70,0xde,0xab]
+          vpshufhw $171, %ymm22, %ymm19
+
+// CHECK: vpshufhw $171, %ymm22, %ymm19 {%k1}
+// CHECK:  encoding: [0x62,0xa1,0x7e,0x29,0x70,0xde,0xab]
+          vpshufhw $171, %ymm22, %ymm19 {%k1}
+
+// CHECK: vpshufhw $171, %ymm22, %ymm19 {%k1} {z}
+// CHECK:  encoding: [0x62,0xa1,0x7e,0xa9,0x70,0xde,0xab]
+          vpshufhw $171, %ymm22, %ymm19 {%k1} {z}
+
+// CHECK: vpshufhw $123, %ymm22, %ymm19
+// CHECK:  encoding: [0x62,0xa1,0x7e,0x28,0x70,0xde,0x7b]
+          vpshufhw $123, %ymm22, %ymm19
+
+// CHECK: vpshufhw $123, (%rcx), %ymm19
+// CHECK:  encoding: [0x62,0xe1,0x7e,0x28,0x70,0x19,0x7b]
+          vpshufhw $123, (%rcx), %ymm19
+
+// CHECK: vpshufhw $123, 291(%rax,%r14,8), %ymm19
+// CHECK:  encoding: [0x62,0xa1,0x7e,0x28,0x70,0x9c,0xf0,0x23,0x01,0x00,0x00,0x7b]
+          vpshufhw $123, 291(%rax,%r14,8), %ymm19
+
+// CHECK: vpshufhw $123, 4064(%rdx), %ymm19
+// CHECK:  encoding: [0x62,0xe1,0x7e,0x28,0x70,0x5a,0x7f,0x7b]
+          vpshufhw $123, 4064(%rdx), %ymm19
+
+// CHECK: vpshufhw $123, 4096(%rdx), %ymm19
+// CHECK:  encoding: [0x62,0xe1,0x7e,0x28,0x70,0x9a,0x00,0x10,0x00,0x00,0x7b]
+          vpshufhw $123, 4096(%rdx), %ymm19
+
+// CHECK: vpshufhw $123, -4096(%rdx), %ymm19
+// CHECK:  encoding: [0x62,0xe1,0x7e,0x28,0x70,0x5a,0x80,0x7b]
+          vpshufhw $123, -4096(%rdx), %ymm19
+
+// CHECK: vpshufhw $123, -4128(%rdx), %ymm19
+// CHECK:  encoding: [0x62,0xe1,0x7e,0x28,0x70,0x9a,0xe0,0xef,0xff,0xff,0x7b]
+          vpshufhw $123, -4128(%rdx), %ymm19
+
+// CHECK: vpshufhw $171, %xmm22, %xmm22
+// CHECK:  encoding: [0x62,0xa1,0x7e,0x08,0x70,0xf6,0xab]
+          vpshufhw $0xab, %xmm22, %xmm22
+
+// CHECK: vpshufhw $171, %xmm22, %xmm22 {%k7}
+// CHECK:  encoding: [0x62,0xa1,0x7e,0x0f,0x70,0xf6,0xab]
+          vpshufhw $0xab, %xmm22, %xmm22 {%k7}
+
+// CHECK: vpshufhw $171, %xmm22, %xmm22 {%k7} {z}
+// CHECK:  encoding: [0x62,0xa1,0x7e,0x8f,0x70,0xf6,0xab]
+          vpshufhw $0xab, %xmm22, %xmm22 {%k7} {z}
+
+// CHECK: vpshufhw $123, %xmm22, %xmm22
+// CHECK:  encoding: [0x62,0xa1,0x7e,0x08,0x70,0xf6,0x7b]
+          vpshufhw $0x7b, %xmm22, %xmm22
+
+// CHECK: vpshufhw $123, (%rcx), %xmm22
+// CHECK:  encoding: [0x62,0xe1,0x7e,0x08,0x70,0x31,0x7b]
+          vpshufhw $0x7b,(%rcx), %xmm22
+
+// CHECK: vpshufhw $123, 4660(%rax,%r14,8), %xmm22
+// CHECK:  encoding: [0x62,0xa1,0x7e,0x08,0x70,0xb4,0xf0,0x34,0x12,0x00,0x00,0x7b]
+          vpshufhw $0x7b,4660(%rax,%r14,8), %xmm22
+
+// CHECK: vpshufhw $123, 2032(%rdx), %xmm22
+// CHECK:  encoding: [0x62,0xe1,0x7e,0x08,0x70,0x72,0x7f,0x7b]
+          vpshufhw $0x7b,2032(%rdx), %xmm22
+
+// CHECK: vpshufhw $123, 2048(%rdx), %xmm22
+// CHECK:  encoding: [0x62,0xe1,0x7e,0x08,0x70,0xb2,0x00,0x08,0x00,0x00,0x7b]
+          vpshufhw $0x7b,2048(%rdx), %xmm22
+
+// CHECK: vpshufhw $123, -2048(%rdx), %xmm22
+// CHECK:  encoding: [0x62,0xe1,0x7e,0x08,0x70,0x72,0x80,0x7b]
+          vpshufhw $0x7b,-2048(%rdx), %xmm22
+
+// CHECK: vpshufhw $123, -2064(%rdx), %xmm22
+// CHECK:  encoding: [0x62,0xe1,0x7e,0x08,0x70,0xb2,0xf0,0xf7,0xff,0xff,0x7b]
+          vpshufhw $0x7b,-2064(%rdx), %xmm22
+
+// CHECK: vpshufhw $171, %ymm24, %ymm27
+// CHECK:  encoding: [0x62,0x01,0x7e,0x28,0x70,0xd8,0xab]
+          vpshufhw $0xab, %ymm24, %ymm27
+
+// CHECK: vpshufhw $171, %ymm24, %ymm27 {%k1}
+// CHECK:  encoding: [0x62,0x01,0x7e,0x29,0x70,0xd8,0xab]
+          vpshufhw $0xab, %ymm24, %ymm27 {%k1}
+
+// CHECK: vpshufhw $171, %ymm24, %ymm27 {%k1} {z}
+// CHECK:  encoding: [0x62,0x01,0x7e,0xa9,0x70,0xd8,0xab]
+          vpshufhw $0xab, %ymm24, %ymm27 {%k1} {z}
+
+// CHECK: vpshufhw $123, %ymm24, %ymm27
+// CHECK:  encoding: [0x62,0x01,0x7e,0x28,0x70,0xd8,0x7b]
+          vpshufhw $0x7b, %ymm24, %ymm27
+
+// CHECK: vpshufhw $123, (%rcx), %ymm27
+// CHECK:  encoding: [0x62,0x61,0x7e,0x28,0x70,0x19,0x7b]
+          vpshufhw $0x7b,(%rcx), %ymm27
+
+// CHECK: vpshufhw $123, 4660(%rax,%r14,8), %ymm27
+// CHECK:  encoding: [0x62,0x21,0x7e,0x28,0x70,0x9c,0xf0,0x34,0x12,0x00,0x00,0x7b]
+          vpshufhw $0x7b,4660(%rax,%r14,8), %ymm27
+
+// CHECK: vpshufhw $123, 4064(%rdx), %ymm27
+// CHECK:  encoding: [0x62,0x61,0x7e,0x28,0x70,0x5a,0x7f,0x7b]
+          vpshufhw $0x7b,4064(%rdx), %ymm27
+
+// CHECK: vpshufhw $123, 4096(%rdx), %ymm27
+// CHECK:  encoding: [0x62,0x61,0x7e,0x28,0x70,0x9a,0x00,0x10,0x00,0x00,0x7b]
+          vpshufhw $0x7b,4096(%rdx), %ymm27
+
+// CHECK: vpshufhw $123, -4096(%rdx), %ymm27
+// CHECK:  encoding: [0x62,0x61,0x7e,0x28,0x70,0x5a,0x80,0x7b]
+          vpshufhw $0x7b,-4096(%rdx), %ymm27
+
+// CHECK: vpshufhw $123, -4128(%rdx), %ymm27
+// CHECK:  encoding: [0x62,0x61,0x7e,0x28,0x70,0x9a,0xe0,0xef,0xff,0xff,0x7b]
+          vpshufhw $0x7b,-4128(%rdx), %ymm27
+
+// CHECK: vpshuflw $171, %xmm23, %xmm22
+// CHECK:  encoding: [0x62,0xa1,0x7f,0x08,0x70,0xf7,0xab]
+          vpshuflw $171, %xmm23, %xmm22
+
+// CHECK: vpshuflw $171, %xmm23, %xmm22 {%k5}
+// CHECK:  encoding: [0x62,0xa1,0x7f,0x0d,0x70,0xf7,0xab]
+          vpshuflw $171, %xmm23, %xmm22 {%k5}
+
+// CHECK: vpshuflw $171, %xmm23, %xmm22 {%k5} {z}
+// CHECK:  encoding: [0x62,0xa1,0x7f,0x8d,0x70,0xf7,0xab]
+          vpshuflw $171, %xmm23, %xmm22 {%k5} {z}
+
+// CHECK: vpshuflw $123, %xmm23, %xmm22
+// CHECK:  encoding: [0x62,0xa1,0x7f,0x08,0x70,0xf7,0x7b]
+          vpshuflw $123, %xmm23, %xmm22
+
+// CHECK: vpshuflw $123, (%rcx), %xmm22
+// CHECK:  encoding: [0x62,0xe1,0x7f,0x08,0x70,0x31,0x7b]
+          vpshuflw $123, (%rcx), %xmm22
+
+// CHECK: vpshuflw $123, 291(%rax,%r14,8), %xmm22
+// CHECK:  encoding: [0x62,0xa1,0x7f,0x08,0x70,0xb4,0xf0,0x23,0x01,0x00,0x00,0x7b]
+          vpshuflw $123, 291(%rax,%r14,8), %xmm22
+
+// CHECK: vpshuflw $123, 2032(%rdx), %xmm22
+// CHECK:  encoding: [0x62,0xe1,0x7f,0x08,0x70,0x72,0x7f,0x7b]
+          vpshuflw $123, 2032(%rdx), %xmm22
+
+// CHECK: vpshuflw $123, 2048(%rdx), %xmm22
+// CHECK:  encoding: [0x62,0xe1,0x7f,0x08,0x70,0xb2,0x00,0x08,0x00,0x00,0x7b]
+          vpshuflw $123, 2048(%rdx), %xmm22
+
+// CHECK: vpshuflw $123, -2048(%rdx), %xmm22
+// CHECK:  encoding: [0x62,0xe1,0x7f,0x08,0x70,0x72,0x80,0x7b]
+          vpshuflw $123, -2048(%rdx), %xmm22
+
+// CHECK: vpshuflw $123, -2064(%rdx), %xmm22
+// CHECK:  encoding: [0x62,0xe1,0x7f,0x08,0x70,0xb2,0xf0,0xf7,0xff,0xff,0x7b]
+          vpshuflw $123, -2064(%rdx), %xmm22
+
+// CHECK: vpshuflw $171, %ymm26, %ymm24
+// CHECK:  encoding: [0x62,0x01,0x7f,0x28,0x70,0xc2,0xab]
+          vpshuflw $171, %ymm26, %ymm24
+
+// CHECK: vpshuflw $171, %ymm26, %ymm24 {%k2}
+// CHECK:  encoding: [0x62,0x01,0x7f,0x2a,0x70,0xc2,0xab]
+          vpshuflw $171, %ymm26, %ymm24 {%k2}
+
+// CHECK: vpshuflw $171, %ymm26, %ymm24 {%k2} {z}
+// CHECK:  encoding: [0x62,0x01,0x7f,0xaa,0x70,0xc2,0xab]
+          vpshuflw $171, %ymm26, %ymm24 {%k2} {z}
+
+// CHECK: vpshuflw $123, %ymm26, %ymm24
+// CHECK:  encoding: [0x62,0x01,0x7f,0x28,0x70,0xc2,0x7b]
+          vpshuflw $123, %ymm26, %ymm24
+
+// CHECK: vpshuflw $123, (%rcx), %ymm24
+// CHECK:  encoding: [0x62,0x61,0x7f,0x28,0x70,0x01,0x7b]
+          vpshuflw $123, (%rcx), %ymm24
+
+// CHECK: vpshuflw $123, 291(%rax,%r14,8), %ymm24
+// CHECK:  encoding: [0x62,0x21,0x7f,0x28,0x70,0x84,0xf0,0x23,0x01,0x00,0x00,0x7b]
+          vpshuflw $123, 291(%rax,%r14,8), %ymm24
+
+// CHECK: vpshuflw $123, 4064(%rdx), %ymm24
+// CHECK:  encoding: [0x62,0x61,0x7f,0x28,0x70,0x42,0x7f,0x7b]
+          vpshuflw $123, 4064(%rdx), %ymm24
+
+// CHECK: vpshuflw $123, 4096(%rdx), %ymm24
+// CHECK:  encoding: [0x62,0x61,0x7f,0x28,0x70,0x82,0x00,0x10,0x00,0x00,0x7b]
+          vpshuflw $123, 4096(%rdx), %ymm24
+
+// CHECK: vpshuflw $123, -4096(%rdx), %ymm24
+// CHECK:  encoding: [0x62,0x61,0x7f,0x28,0x70,0x42,0x80,0x7b]
+          vpshuflw $123, -4096(%rdx), %ymm24
+
+// CHECK: vpshuflw $123, -4128(%rdx), %ymm24
+// CHECK:  encoding: [0x62,0x61,0x7f,0x28,0x70,0x82,0xe0,0xef,0xff,0xff,0x7b]
+          vpshuflw $123, -4128(%rdx), %ymm24
+
+// CHECK: vpshuflw $171, %xmm28, %xmm21
+// CHECK:  encoding: [0x62,0x81,0x7f,0x08,0x70,0xec,0xab]
+          vpshuflw $0xab, %xmm28, %xmm21
+
+// CHECK: vpshuflw $171, %xmm28, %xmm21 {%k6}
+// CHECK:  encoding: [0x62,0x81,0x7f,0x0e,0x70,0xec,0xab]
+          vpshuflw $0xab, %xmm28, %xmm21 {%k6}
+
+// CHECK: vpshuflw $171, %xmm28, %xmm21 {%k6} {z}
+// CHECK:  encoding: [0x62,0x81,0x7f,0x8e,0x70,0xec,0xab]
+          vpshuflw $0xab, %xmm28, %xmm21 {%k6} {z}
+
+// CHECK: vpshuflw $123, %xmm28, %xmm21
+// CHECK:  encoding: [0x62,0x81,0x7f,0x08,0x70,0xec,0x7b]
+          vpshuflw $0x7b, %xmm28, %xmm21
+
+// CHECK: vpshuflw $123, (%rcx), %xmm21
+// CHECK:  encoding: [0x62,0xe1,0x7f,0x08,0x70,0x29,0x7b]
+          vpshuflw $0x7b,(%rcx), %xmm21
+
+// CHECK: vpshuflw $123, 4660(%rax,%r14,8), %xmm21
+// CHECK:  encoding: [0x62,0xa1,0x7f,0x08,0x70,0xac,0xf0,0x34,0x12,0x00,0x00,0x7b]
+          vpshuflw $0x7b,4660(%rax,%r14,8), %xmm21
+
+// CHECK: vpshuflw $123, 2032(%rdx), %xmm21
+// CHECK:  encoding: [0x62,0xe1,0x7f,0x08,0x70,0x6a,0x7f,0x7b]
+          vpshuflw $0x7b,2032(%rdx), %xmm21
+
+// CHECK: vpshuflw $123, 2048(%rdx), %xmm21
+// CHECK:  encoding: [0x62,0xe1,0x7f,0x08,0x70,0xaa,0x00,0x08,0x00,0x00,0x7b]
+          vpshuflw $0x7b,2048(%rdx), %xmm21
+
+// CHECK: vpshuflw $123, -2048(%rdx), %xmm21
+// CHECK:  encoding: [0x62,0xe1,0x7f,0x08,0x70,0x6a,0x80,0x7b]
+          vpshuflw $0x7b,-2048(%rdx), %xmm21
+
+// CHECK: vpshuflw $123, -2064(%rdx), %xmm21
+// CHECK:  encoding: [0x62,0xe1,0x7f,0x08,0x70,0xaa,0xf0,0xf7,0xff,0xff,0x7b]
+          vpshuflw $0x7b,-2064(%rdx), %xmm21
+
+// CHECK: vpshuflw $171, %ymm29, %ymm20
+// CHECK:  encoding: [0x62,0x81,0x7f,0x28,0x70,0xe5,0xab]
+          vpshuflw $0xab, %ymm29, %ymm20
+
+// CHECK: vpshuflw $171, %ymm29, %ymm20 {%k3}
+// CHECK:  encoding: [0x62,0x81,0x7f,0x2b,0x70,0xe5,0xab]
+          vpshuflw $0xab, %ymm29, %ymm20 {%k3}
+
+// CHECK: vpshuflw $171, %ymm29, %ymm20 {%k3} {z}
+// CHECK:  encoding: [0x62,0x81,0x7f,0xab,0x70,0xe5,0xab]
+          vpshuflw $0xab, %ymm29, %ymm20 {%k3} {z}
+
+// CHECK: vpshuflw $123, %ymm29, %ymm20
+// CHECK:  encoding: [0x62,0x81,0x7f,0x28,0x70,0xe5,0x7b]
+          vpshuflw $0x7b, %ymm29, %ymm20
+
+// CHECK: vpshuflw $123, (%rcx), %ymm20
+// CHECK:  encoding: [0x62,0xe1,0x7f,0x28,0x70,0x21,0x7b]
+          vpshuflw $0x7b,(%rcx), %ymm20
+
+// CHECK: vpshuflw $123, 4660(%rax,%r14,8), %ymm20
+// CHECK:  encoding: [0x62,0xa1,0x7f,0x28,0x70,0xa4,0xf0,0x34,0x12,0x00,0x00,0x7b]
+          vpshuflw $0x7b,4660(%rax,%r14,8), %ymm20
+
+// CHECK: vpshuflw $123, 4064(%rdx), %ymm20
+// CHECK:  encoding: [0x62,0xe1,0x7f,0x28,0x70,0x62,0x7f,0x7b]
+          vpshuflw $0x7b,4064(%rdx), %ymm20
+
+// CHECK: vpshuflw $123, 4096(%rdx), %ymm20
+// CHECK:  encoding: [0x62,0xe1,0x7f,0x28,0x70,0xa2,0x00,0x10,0x00,0x00,0x7b]
+          vpshuflw $0x7b,4096(%rdx), %ymm20
+
+// CHECK: vpshuflw $123, -4096(%rdx), %ymm20
+// CHECK:  encoding: [0x62,0xe1,0x7f,0x28,0x70,0x62,0x80,0x7b]
+          vpshuflw $0x7b,-4096(%rdx), %ymm20
+
+// CHECK: vpshuflw $123, -4128(%rdx), %ymm20
+// CHECK:  encoding: [0x62,0xe1,0x7f,0x28,0x70,0xa2,0xe0,0xef,0xff,0xff,0x7b]
+          vpshuflw $0x7b,-4128(%rdx), %ymm20
 
 // CHECK: vpermi2w %xmm21, %xmm29, %xmm19
 // CHECK:  encoding: [0x62,0xa2,0x95,0x00,0x75,0xdd]




More information about the llvm-commits mailing list