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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@249521 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Igor Breger 2015-10-07 06:31:18 +00:00
parent da4cec0bf1
commit 2fe1f6e4f3
3 changed files with 363 additions and 123 deletions

View 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

View File

@ -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

View File

@ -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, %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]