Index: llvm/trunk/lib/Target/X86/X86InstrAVX512.td =================================================================== --- llvm/trunk/lib/Target/X86/X86InstrAVX512.td +++ llvm/trunk/lib/Target/X86/X86InstrAVX512.td @@ -1842,7 +1842,6 @@ } } - multiclass avx512_vector_fpclass_all opc, SDNode OpNode, Predicate prd, string broadcast>{ @@ -4149,9 +4148,9 @@ 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 opc, string OpcodeStr, SDNode OpNode> { let Predicates = [HasBWI] in Index: llvm/trunk/test/MC/X86/x86-64-avx512bw.s =================================================================== --- llvm/trunk/test/MC/X86/x86-64-avx512bw.s +++ llvm/trunk/test/MC/X86/x86-64-avx512bw.s @@ -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 + Index: llvm/trunk/test/MC/X86/x86-64-avx512bw_vl.s =================================================================== --- llvm/trunk/test/MC/X86/x86-64-avx512bw_vl.s +++ llvm/trunk/test/MC/X86/x86-64-avx512bw_vl.s @@ -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]