AVX512: Change encoding of vpshuflw and vpshufhw instructions. Implement WIG as W0...
authorIgor Breger <igor.breger@intel.com>
Wed, 7 Oct 2015 06:31:18 +0000 (06:31 +0000)
committerIgor Breger <igor.breger@intel.com>
Wed, 7 Oct 2015 06:31:18 +0000 (06:31 +0000)
Add encoding tests.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@249521 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86InstrAVX512.td
test/MC/X86/x86-64-avx512bw.s
test/MC/X86/x86-64-avx512bw_vl.s

index 3c9bcf64848c28a74126421a6368304a9046e531..85a53e1179330390dacafd504478d47ba418555f 100644 (file)
@@ -1842,7 +1842,6 @@ multiclass avx512_vector_fpclass<bits<8> opc, string OpcodeStr, SDNode OpNode,
   }
 }
 
-
 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<0x70, MRMSrcReg, MRMSrcMem, "vpshufd",
                              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
index e362683bad1564b129e370c8c3f37e08a79a316f..feca21a4d577b98f8e4e2e28664ac31e29d9abae 100644 (file)
 // 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
+
index 91ae301b9d1545fb572546f9ad15fcd30309d4fd..cd57ce1d55a1ae2a6f4f87f88806023fd11deb19 100644 (file)
 // 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, %xmm27, %xmm28
+// CHECK:  encoding: [0x62,0x01,0x7e,0x08,0x70,0xe3,0xab]
+          vpshufhw $171, %xmm27, %xmm28
 
-// CHECK: vpshufhw $171, %xmm19, %xmm23 {%k7}
-// CHECK:  encoding: [0x62,0xa1,0xfe,0x0f,0x70,0xfb,0xab]
-          vpshufhw $171, %xmm19, %xmm23 {%k7}
+// CHECK: vpshufhw $171, %xmm27, %xmm28 {%k6}
+// CHECK:  encoding: [0x62,0x01,0x7e,0x0e,0x70,0xe3,0xab]
+          vpshufhw $171, %xmm27, %xmm28 {%k6}
 
-// CHECK: vpshufhw $171, %xmm19, %xmm23 {%k7} {z}
-// CHECK:  encoding: [0x62,0xa1,0xfe,0x8f,0x70,0xfb,0xab]
-          vpshufhw $171, %xmm19, %xmm23 {%k7} {z}
+// 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,  %xmm19, %xmm23
-// CHECK:  encoding: [0x62,0xa1,0xfe,0x08,0x70,0xfb,0x7b]
-          vpshufhw $123,  %xmm19, %xmm23
+// CHECK: vpshufhw $123, %xmm27, %xmm28
+// CHECK:  encoding: [0x62,0x01,0x7e,0x08,0x70,0xe3,0x7b]
+          vpshufhw $123, %xmm27, %xmm28
 
-// CHECK: vpshufhw $123,  (%rcx), %xmm23
-// CHECK:  encoding: [0x62,0xe1,0xfe,0x08,0x70,0x39,0x7b]
-          vpshufhw $123, (%rcx), %xmm23
+// 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), %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, 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), %xmm23
-// CHECK:  encoding: [0x62,0xe1,0xfe,0x08,0x70,0x7a,0x7f,0x7b]
-          vpshufhw $123, 2032(%rdx), %xmm23
+// 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), %xmm23
-// CHECK:  encoding: [0x62,0xe1,0xfe,0x08,0x70,0xba,0x00,0x08,0x00,0x00,0x7b]
-          vpshufhw $123, 2048(%rdx), %xmm23
+// 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), %xmm23
-// CHECK:  encoding: [0x62,0xe1,0xfe,0x08,0x70,0x7a,0x80,0x7b]
-          vpshufhw $123, -2048(%rdx), %xmm23
+// 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), %xmm23
-// CHECK:  encoding: [0x62,0xe1,0xfe,0x08,0x70,0xba,0xf0,0xf7,0xff,0xff,0x7b]
-          vpshufhw $123, -2064(%rdx), %xmm23
+// 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, %ymm17, %ymm29
-// CHECK:  encoding: [0x62,0x21,0xfe,0x28,0x70,0xe9,0xab]
-          vpshufhw $171, %ymm17, %ymm29
+// CHECK: vpshufhw $171, %ymm22, %ymm19
+// CHECK:  encoding: [0x62,0xa1,0x7e,0x28,0x70,0xde,0xab]
+          vpshufhw $171, %ymm22, %ymm19
 
-// CHECK: vpshufhw $171, %ymm17, %ymm29 {%k7}
-// CHECK:  encoding: [0x62,0x21,0xfe,0x2f,0x70,0xe9,0xab]
-          vpshufhw $171, %ymm17, %ymm29 {%k7}
+// CHECK: vpshufhw $171, %ymm22, %ymm19 {%k1}
+// CHECK:  encoding: [0x62,0xa1,0x7e,0x29,0x70,0xde,0xab]
+          vpshufhw $171, %ymm22, %ymm19 {%k1}
 
-// CHECK: vpshufhw $171, %ymm17, %ymm29 {%k7} {z}
-// CHECK:  encoding: [0x62,0x21,0xfe,0xaf,0x70,0xe9,0xab]
-          vpshufhw $171, %ymm17, %ymm29 {%k7} {z}
+// 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,  %ymm17, %ymm29
-// CHECK:  encoding: [0x62,0x21,0xfe,0x28,0x70,0xe9,0x7b]
-          vpshufhw $123,  %ymm17, %ymm29
+// CHECK: vpshufhw $123, %ymm22, %ymm19
+// CHECK:  encoding: [0x62,0xa1,0x7e,0x28,0x70,0xde,0x7b]
+          vpshufhw $123, %ymm22, %ymm19
 
-// CHECK: vpshufhw $123, (%rcx), %ymm29
-// CHECK:  encoding: [0x62,0x61,0xfe,0x28,0x70,0x29,0x7b]
-          vpshufhw $123, (%rcx), %ymm29
+// 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), %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, 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), %ymm29
-// CHECK:  encoding: [0x62,0x61,0xfe,0x28,0x70,0x6a,0x7f,0x7b]
-          vpshufhw $123, 4064(%rdx), %ymm29
+// 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), %ymm29
-// CHECK:  encoding: [0x62,0x61,0xfe,0x28,0x70,0xaa,0x00,0x10,0x00,0x00,0x7b]
-          vpshufhw $123, 4096(%rdx), %ymm29
+// 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), %ymm29
-// CHECK:  encoding: [0x62,0x61,0xfe,0x28,0x70,0x6a,0x80,0x7b]
-          vpshufhw $123, -4096(%rdx), %ymm29
+// 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), %ymm29
-// CHECK:  encoding: [0x62,0x61,0xfe,0x28,0x70,0xaa,0xe0,0xef,0xff,0xff,0x7b]
-          vpshufhw $123, -4128(%rdx), %ymm29
+// 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: vpshuflw $171, %xmm27, %xmm30
-// CHECK:  encoding: [0x62,0x01,0xff,0x08,0x70,0xf3,0xab]
-          vpshuflw $171, %xmm27, %xmm30
+// CHECK: vpshufhw $171, %xmm22, %xmm22
+// CHECK:  encoding: [0x62,0xa1,0x7e,0x08,0x70,0xf6,0xab]
+          vpshufhw $0xab, %xmm22, %xmm22
 
-// CHECK: vpshuflw $171, %xmm27, %xmm30 {%k6}
-// CHECK:  encoding: [0x62,0x01,0xff,0x0e,0x70,0xf3,0xab]
-          vpshuflw $171, %xmm27, %xmm30 {%k6}
+// CHECK: vpshufhw $171, %xmm22, %xmm22 {%k7}
+// CHECK:  encoding: [0x62,0xa1,0x7e,0x0f,0x70,0xf6,0xab]
+          vpshufhw $0xab, %xmm22, %xmm22 {%k7}
 
-// CHECK: vpshuflw $171, %xmm27, %xmm30 {%k6} {z}
-// CHECK:  encoding: [0x62,0x01,0xff,0x8e,0x70,0xf3,0xab]
-          vpshuflw $171, %xmm27, %xmm30 {%k6} {z}
+// CHECK: vpshufhw $171, %xmm22, %xmm22 {%k7} {z}
+// CHECK:  encoding: [0x62,0xa1,0x7e,0x8f,0x70,0xf6,0xab]
+          vpshufhw $0xab, %xmm22, %xmm22 {%k7} {z}
 
-// CHECK: vpshuflw $123,  %xmm27, %xmm30
-// CHECK:  encoding: [0x62,0x01,0xff,0x08,0x70,0xf3,0x7b]
-          vpshuflw $123,  %xmm27, %xmm30
+// CHECK: vpshufhw $123, %xmm22, %xmm22
+// CHECK:  encoding: [0x62,0xa1,0x7e,0x08,0x70,0xf6,0x7b]
+          vpshufhw $0x7b, %xmm22, %xmm22
 
-// CHECK: vpshuflw $123, (%rcx), %xmm30
-// CHECK:  encoding: [0x62,0x61,0xff,0x08,0x70,0x31,0x7b]
-          vpshuflw $123, (%rcx), %xmm30
+// CHECK: vpshufhw $123, (%rcx), %xmm22
+// CHECK:  encoding: [0x62,0xe1,0x7e,0x08,0x70,0x31,0x7b]
+          vpshufhw $0x7b,(%rcx), %xmm22
 
-// 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: 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: vpshuflw $123, 2032(%rdx), %xmm30
-// CHECK:  encoding: [0x62,0x61,0xff,0x08,0x70,0x72,0x7f,0x7b]
-          vpshuflw $123, 2032(%rdx), %xmm30
+// CHECK: vpshufhw $123, 2032(%rdx), %xmm22
+// CHECK:  encoding: [0x62,0xe1,0x7e,0x08,0x70,0x72,0x7f,0x7b]
+          vpshufhw $0x7b,2032(%rdx), %xmm22
 
-// 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: vpshufhw $123, 2048(%rdx), %xmm22
+// CHECK:  encoding: [0x62,0xe1,0x7e,0x08,0x70,0xb2,0x00,0x08,0x00,0x00,0x7b]
+          vpshufhw $0x7b,2048(%rdx), %xmm22
 
-// CHECK: vpshuflw $123, -2048(%rdx), %xmm30
-// CHECK:  encoding: [0x62,0x61,0xff,0x08,0x70,0x72,0x80,0x7b]
-          vpshuflw $123, -2048(%rdx), %xmm30
+// CHECK: vpshufhw $123, -2048(%rdx), %xmm22
+// CHECK:  encoding: [0x62,0xe1,0x7e,0x08,0x70,0x72,0x80,0x7b]
+          vpshufhw $0x7b,-2048(%rdx), %xmm22
 
-// 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: vpshufhw $123, -2064(%rdx), %xmm22
+// CHECK:  encoding: [0x62,0xe1,0x7e,0x08,0x70,0xb2,0xf0,0xf7,0xff,0xff,0x7b]
+          vpshufhw $0x7b,-2064(%rdx), %xmm22
 
-// CHECK: vpshuflw $171, %ymm25, %ymm25
-// CHECK:  encoding: [0x62,0x01,0xff,0x28,0x70,0xc9,0xab]
-          vpshuflw $171, %ymm25, %ymm25
+// CHECK: vpshufhw $171, %ymm24, %ymm27
+// CHECK:  encoding: [0x62,0x01,0x7e,0x28,0x70,0xd8,0xab]
+          vpshufhw $0xab, %ymm24, %ymm27
 
-// CHECK: vpshuflw $171, %ymm25, %ymm25 {%k5}
-// CHECK:  encoding: [0x62,0x01,0xff,0x2d,0x70,0xc9,0xab]
-          vpshuflw $171, %ymm25, %ymm25 {%k5}
+// CHECK: vpshufhw $171, %ymm24, %ymm27 {%k1}
+// CHECK:  encoding: [0x62,0x01,0x7e,0x29,0x70,0xd8,0xab]
+          vpshufhw $0xab, %ymm24, %ymm27 {%k1}
 
-// CHECK: vpshuflw $171, %ymm25, %ymm25 {%k5} {z}
-// CHECK:  encoding: [0x62,0x01,0xff,0xad,0x70,0xc9,0xab]
-          vpshuflw $171, %ymm25, %ymm25 {%k5} {z}
+// CHECK: vpshufhw $171, %ymm24, %ymm27 {%k1} {z}
+// CHECK:  encoding: [0x62,0x01,0x7e,0xa9,0x70,0xd8,0xab]
+          vpshufhw $0xab, %ymm24, %ymm27 {%k1} {z}
 
-// CHECK: vpshuflw $123,  %ymm25, %ymm25
-// CHECK:  encoding: [0x62,0x01,0xff,0x28,0x70,0xc9,0x7b]
-          vpshuflw $123,  %ymm25, %ymm25
+// CHECK: vpshufhw $123, %ymm24, %ymm27
+// CHECK:  encoding: [0x62,0x01,0x7e,0x28,0x70,0xd8,0x7b]
+          vpshufhw $0x7b, %ymm24, %ymm27
 
-// CHECK: vpshuflw $123, (%rcx), %ymm25
-// CHECK:  encoding: [0x62,0x61,0xff,0x28,0x70,0x09,0x7b]
-          vpshuflw $123, (%rcx), %ymm25
+// CHECK: vpshufhw $123, (%rcx), %ymm27
+// CHECK:  encoding: [0x62,0x61,0x7e,0x28,0x70,0x19,0x7b]
+          vpshufhw $0x7b,(%rcx), %ymm27
 
-// 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: 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: vpshuflw $123, 4064(%rdx), %ymm25
-// CHECK:  encoding: [0x62,0x61,0xff,0x28,0x70,0x4a,0x7f,0x7b]
-          vpshuflw $123, 4064(%rdx), %ymm25
+// CHECK: vpshufhw $123, 4064(%rdx), %ymm27
+// CHECK:  encoding: [0x62,0x61,0x7e,0x28,0x70,0x5a,0x7f,0x7b]
+          vpshufhw $0x7b,4064(%rdx), %ymm27
 
-// 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: vpshufhw $123, 4096(%rdx), %ymm27
+// CHECK:  encoding: [0x62,0x61,0x7e,0x28,0x70,0x9a,0x00,0x10,0x00,0x00,0x7b]
+          vpshufhw $0x7b,4096(%rdx), %ymm27
 
-// CHECK: vpshuflw $123, -4096(%rdx), %ymm25
-// CHECK:  encoding: [0x62,0x61,0xff,0x28,0x70,0x4a,0x80,0x7b]
-          vpshuflw $123, -4096(%rdx), %ymm25
+// CHECK: vpshufhw $123, -4096(%rdx), %ymm27
+// CHECK:  encoding: [0x62,0x61,0x7e,0x28,0x70,0x5a,0x80,0x7b]
+          vpshufhw $0x7b,-4096(%rdx), %ymm27
 
-// 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 $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]