add instructions: VPAVGB and VPAVGW


review
http://reviews.llvm.org/D10504

llvm-svn: 240012
This commit is contained in:
Asaf Badouh 2015-06-18 12:30:53 +00:00
parent c30dd2daf9
commit 81f03c30a5
9 changed files with 683 additions and 2 deletions

View File

@ -3877,6 +3877,24 @@ let TargetPrefix = "x86" in {
def int_x86_avx512_mask_pmull_q_512 : GCCBuiltin<"__builtin_ia32_pmullq512_mask">,
Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_v8i64_ty,
llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>;
def int_x86_avx512_mask_pavg_b_512 : GCCBuiltin<"__builtin_ia32_pavgb512_mask">,
Intrinsic<[llvm_v64i8_ty], [llvm_v64i8_ty, llvm_v64i8_ty,
llvm_v64i8_ty, llvm_i64_ty], [IntrNoMem]>;
def int_x86_avx512_mask_pavg_w_512 : GCCBuiltin<"__builtin_ia32_pavgw512_mask">,
Intrinsic<[llvm_v32i16_ty], [llvm_v32i16_ty, llvm_v32i16_ty,
llvm_v32i16_ty, llvm_i32_ty], [IntrNoMem]>;
def int_x86_avx512_mask_pavg_b_128 : GCCBuiltin<"__builtin_ia32_pavgb128_mask">,
Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty,
llvm_v16i8_ty, llvm_i16_ty], [IntrNoMem]>;
def int_x86_avx512_mask_pavg_b_256 : GCCBuiltin<"__builtin_ia32_pavgb256_mask">,
Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty,
llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>;
def int_x86_avx512_mask_pavg_w_128 : GCCBuiltin<"__builtin_ia32_pavgw128_mask">,
Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty,
llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>;
def int_x86_avx512_mask_pavg_w_256 : GCCBuiltin<"__builtin_ia32_pavgw256_mask">,
Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty,
llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>;
}
// Gather and Scatter ops

View File

@ -218,7 +218,8 @@ namespace llvm {
// Integer add/sub with signed saturation.
ADDS,
SUBS,
// Unsigned Integer average
AVG,
/// Integer horizontal add.
HADD,

View File

@ -3126,7 +3126,8 @@ defm VPMULLW : avx512_binop_rm_vl_w<0xD5, "vpmull", mul,
SSE_INTALU_ITINS_P, HasBWI, 1>;
defm VPMULLQ : avx512_binop_rm_vl_q<0x40, "vpmull", mul,
SSE_INTALU_ITINS_P, HasDQI, 1>, T8PD;
defm VPAVG : avx512_binop_rm_vl_bw<0xE0, 0xE3, "vpavg", X86avg,
SSE_INTALU_ITINS_P, HasBWI, 1>;
multiclass avx512_binop_all<bits<8> opc, string OpcodeStr, OpndItins itins,
SDNode OpNode, bit IsCommutable = 0> {

View File

@ -187,6 +187,7 @@ def X86addus : SDNode<"X86ISD::ADDUS", SDTIntBinOp>;
def X86subus : SDNode<"X86ISD::SUBUS", SDTIntBinOp>;
def X86adds : SDNode<"X86ISD::ADDS", SDTIntBinOp>;
def X86subs : SDNode<"X86ISD::SUBS", SDTIntBinOp>;
def X86avg : SDNode<"X86ISD::AVG" , SDTIntBinOp>;
def X86ptest : SDNode<"X86ISD::PTEST", SDTX86CmpPTest>;
def X86testp : SDNode<"X86ISD::TESTP", SDTX86CmpPTest>;
def X86kortest : SDNode<"X86ISD::KORTEST", SDTX86CmpPTest>;

View File

@ -476,6 +476,12 @@ static const IntrinsicData IntrinsicsWithoutChain[] = {
X86_INTRINSIC_DATA(avx512_mask_pandn_q_128, INTR_TYPE_2OP_MASK, X86ISD::ANDNP, 0),
X86_INTRINSIC_DATA(avx512_mask_pandn_q_256, INTR_TYPE_2OP_MASK, X86ISD::ANDNP, 0),
X86_INTRINSIC_DATA(avx512_mask_pandn_q_512, INTR_TYPE_2OP_MASK, X86ISD::ANDNP, 0),
X86_INTRINSIC_DATA(avx512_mask_pavg_b_128, INTR_TYPE_2OP_MASK, X86ISD::AVG, 0),
X86_INTRINSIC_DATA(avx512_mask_pavg_b_256, INTR_TYPE_2OP_MASK, X86ISD::AVG, 0),
X86_INTRINSIC_DATA(avx512_mask_pavg_b_512, INTR_TYPE_2OP_MASK, X86ISD::AVG, 0),
X86_INTRINSIC_DATA(avx512_mask_pavg_w_128, INTR_TYPE_2OP_MASK, X86ISD::AVG, 0),
X86_INTRINSIC_DATA(avx512_mask_pavg_w_256, INTR_TYPE_2OP_MASK, X86ISD::AVG, 0),
X86_INTRINSIC_DATA(avx512_mask_pavg_w_512, INTR_TYPE_2OP_MASK, X86ISD::AVG, 0),
X86_INTRINSIC_DATA(avx512_mask_pcmpeq_b_128, CMP_MASK, X86ISD::PCMPEQM, 0),
X86_INTRINSIC_DATA(avx512_mask_pcmpeq_b_256, CMP_MASK, X86ISD::PCMPEQM, 0),
X86_INTRINSIC_DATA(avx512_mask_pcmpeq_b_512, CMP_MASK, X86ISD::PCMPEQM, 0),

View File

@ -892,3 +892,29 @@ define <32 x i16>@test_int_x86_avx512_mask_pminu_w_512(<32 x i16> %x0, <32 x i16
%res2 = add <32 x i16> %res, %res1
ret <32 x i16> %res2
}
declare <64 x i8> @llvm.x86.avx512.mask.pavg.b.512(<64 x i8>, <64 x i8>, <64 x i8>, i64)
; CHECK-LABEL: @test_int_x86_avx512_mask_pavg_b_512
; CHECK-NOT: call
; CHECK: vpavgb %zmm
; CHECK: {%k1}
define <64 x i8>@test_int_x86_avx512_mask_pavg_b_512(<64 x i8> %x0, <64 x i8> %x1, <64 x i8> %x2, i64 %x3) {
%res = call <64 x i8> @llvm.x86.avx512.mask.pavg.b.512(<64 x i8> %x0, <64 x i8> %x1, <64 x i8> %x2, i64 %x3)
%res1 = call <64 x i8> @llvm.x86.avx512.mask.pavg.b.512(<64 x i8> %x0, <64 x i8> %x1, <64 x i8> %x2, i64 -1)
%res2 = add <64 x i8> %res, %res1
ret <64 x i8> %res2
}
declare <32 x i16> @llvm.x86.avx512.mask.pavg.w.512(<32 x i16>, <32 x i16>, <32 x i16>, i32)
; CHECK-LABEL: @test_int_x86_avx512_mask_pavg_w_512
; CHECK-NOT: call
; CHECK: vpavgw %zmm
; CHECK: {%k1}
define <32 x i16>@test_int_x86_avx512_mask_pavg_w_512(<32 x i16> %x0, <32 x i16> %x1, <32 x i16> %x2, i32 %x3) {
%res = call <32 x i16> @llvm.x86.avx512.mask.pavg.w.512(<32 x i16> %x0, <32 x i16> %x1, <32 x i16> %x2, i32 %x3)
%res1 = call <32 x i16> @llvm.x86.avx512.mask.pavg.w.512(<32 x i16> %x0, <32 x i16> %x1, <32 x i16> %x2, i32 -1)
%res2 = add <32 x i16> %res, %res1
ret <32 x i16> %res2
}

View File

@ -2876,3 +2876,55 @@ define <16 x i16>@test_int_x86_avx512_mask_pminu_w_256(<16 x i16> %x0, <16 x i16
%res2 = add <16 x i16> %res, %res1
ret <16 x i16> %res2
}
declare <16 x i8> @llvm.x86.avx512.mask.pavg.b.128(<16 x i8>, <16 x i8>, <16 x i8>, i16)
; CHECK-LABEL: @test_int_x86_avx512_mask_pavg_b_128
; CHECK-NOT: call
; CHECK: vpavgb %xmm
; CHECK: {%k1}
define <16 x i8>@test_int_x86_avx512_mask_pavg_b_128(<16 x i8> %x0, <16 x i8> %x1, <16 x i8> %x2, i16 %x3) {
%res = call <16 x i8> @llvm.x86.avx512.mask.pavg.b.128(<16 x i8> %x0, <16 x i8> %x1, <16 x i8> %x2, i16 %x3)
%res1 = call <16 x i8> @llvm.x86.avx512.mask.pavg.b.128(<16 x i8> %x0, <16 x i8> %x1, <16 x i8> %x2, i16 -1)
%res2 = add <16 x i8> %res, %res1
ret <16 x i8> %res2
}
declare <32 x i8> @llvm.x86.avx512.mask.pavg.b.256(<32 x i8>, <32 x i8>, <32 x i8>, i32)
; CHECK-LABEL: @test_int_x86_avx512_mask_pavg_b_256
; CHECK-NOT: call
; CHECK: vpavgb %ymm
; CHECK: {%k1}
define <32 x i8>@test_int_x86_avx512_mask_pavg_b_256(<32 x i8> %x0, <32 x i8> %x1, <32 x i8> %x2, i32 %x3) {
%res = call <32 x i8> @llvm.x86.avx512.mask.pavg.b.256(<32 x i8> %x0, <32 x i8> %x1, <32 x i8> %x2, i32 %x3)
%res1 = call <32 x i8> @llvm.x86.avx512.mask.pavg.b.256(<32 x i8> %x0, <32 x i8> %x1, <32 x i8> %x2, i32 -1)
%res2 = add <32 x i8> %res, %res1
ret <32 x i8> %res2
}
declare <8 x i16> @llvm.x86.avx512.mask.pavg.w.128(<8 x i16>, <8 x i16>, <8 x i16>, i8)
; CHECK-LABEL: @test_int_x86_avx512_mask_pavg_w_128
; CHECK-NOT: call
; CHECK: vpavgw %xmm
; CHECK: {%k1}
define <8 x i16>@test_int_x86_avx512_mask_pavg_w_128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 %x3) {
%res = call <8 x i16> @llvm.x86.avx512.mask.pavg.w.128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 %x3)
%res1 = call <8 x i16> @llvm.x86.avx512.mask.pavg.w.128(<8 x i16> %x0, <8 x i16> %x1, <8 x i16> %x2, i8 -1)
%res2 = add <8 x i16> %res, %res1
ret <8 x i16> %res2
}
declare <16 x i16> @llvm.x86.avx512.mask.pavg.w.256(<16 x i16>, <16 x i16>, <16 x i16>, i16)
; CHECK-LABEL: @test_int_x86_avx512_mask_pavg_w_256
; CHECK-NOT: call
; CHECK: vpavgw %ymm
; CHECK: {%k1}
define <16 x i16>@test_int_x86_avx512_mask_pavg_w_256(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> %x2, i16 %x3) {
%res = call <16 x i16> @llvm.x86.avx512.mask.pavg.w.256(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> %x2, i16 %x3)
%res1 = call <16 x i16> @llvm.x86.avx512.mask.pavg.w.256(<16 x i16> %x0, <16 x i16> %x1, <16 x i16> %x2, i16 -1)
%res2 = add <16 x i16> %res, %res1
ret <16 x i16> %res2
}

View File

@ -3415,3 +3415,148 @@
// CHECK: vpermt2w -8256(%rdx), %zmm25, %zmm18
// CHECK: encoding: [0x62,0xe2,0xb5,0x40,0x7d,0x92,0xc0,0xdf,0xff,0xff]
vpermt2w -8256(%rdx), %zmm25, %zmm18
// CHECK: vpavgb %zmm21, %zmm29, %zmm17
// CHECK: encoding: [0x62,0xa1,0x15,0x40,0xe0,0xcd]
vpavgb %zmm21, %zmm29, %zmm17
// CHECK: vpavgb %zmm21, %zmm29, %zmm17 {%k2}
// CHECK: encoding: [0x62,0xa1,0x15,0x42,0xe0,0xcd]
vpavgb %zmm21, %zmm29, %zmm17 {%k2}
// CHECK: vpavgb %zmm21, %zmm29, %zmm17 {%k2} {z}
// CHECK: encoding: [0x62,0xa1,0x15,0xc2,0xe0,0xcd]
vpavgb %zmm21, %zmm29, %zmm17 {%k2} {z}
// CHECK: vpavgb (%rcx), %zmm29, %zmm17
// CHECK: encoding: [0x62,0xe1,0x15,0x40,0xe0,0x09]
vpavgb (%rcx), %zmm29, %zmm17
// CHECK: vpavgb 291(%rax,%r14,8), %zmm29, %zmm17
// CHECK: encoding: [0x62,0xa1,0x15,0x40,0xe0,0x8c,0xf0,0x23,0x01,0x00,0x00]
vpavgb 291(%rax,%r14,8), %zmm29, %zmm17
// CHECK: vpavgb 8128(%rdx), %zmm29, %zmm17
// CHECK: encoding: [0x62,0xe1,0x15,0x40,0xe0,0x4a,0x7f]
vpavgb 8128(%rdx), %zmm29, %zmm17
// CHECK: vpavgb 8192(%rdx), %zmm29, %zmm17
// CHECK: encoding: [0x62,0xe1,0x15,0x40,0xe0,0x8a,0x00,0x20,0x00,0x00]
vpavgb 8192(%rdx), %zmm29, %zmm17
// CHECK: vpavgb -8192(%rdx), %zmm29, %zmm17
// CHECK: encoding: [0x62,0xe1,0x15,0x40,0xe0,0x4a,0x80]
vpavgb -8192(%rdx), %zmm29, %zmm17
// CHECK: vpavgb -8256(%rdx), %zmm29, %zmm17
// CHECK: encoding: [0x62,0xe1,0x15,0x40,0xe0,0x8a,0xc0,0xdf,0xff,0xff]
vpavgb -8256(%rdx), %zmm29, %zmm17
// CHECK: vpavgw %zmm22, %zmm27, %zmm19
// CHECK: encoding: [0x62,0xa1,0x25,0x40,0xe3,0xde]
vpavgw %zmm22, %zmm27, %zmm19
// CHECK: vpavgw %zmm22, %zmm27, %zmm19 {%k4}
// CHECK: encoding: [0x62,0xa1,0x25,0x44,0xe3,0xde]
vpavgw %zmm22, %zmm27, %zmm19 {%k4}
// CHECK: vpavgw %zmm22, %zmm27, %zmm19 {%k4} {z}
// CHECK: encoding: [0x62,0xa1,0x25,0xc4,0xe3,0xde]
vpavgw %zmm22, %zmm27, %zmm19 {%k4} {z}
// CHECK: vpavgw (%rcx), %zmm27, %zmm19
// CHECK: encoding: [0x62,0xe1,0x25,0x40,0xe3,0x19]
vpavgw (%rcx), %zmm27, %zmm19
// CHECK: vpavgw 291(%rax,%r14,8), %zmm27, %zmm19
// CHECK: encoding: [0x62,0xa1,0x25,0x40,0xe3,0x9c,0xf0,0x23,0x01,0x00,0x00]
vpavgw 291(%rax,%r14,8), %zmm27, %zmm19
// CHECK: vpavgw 8128(%rdx), %zmm27, %zmm19
// CHECK: encoding: [0x62,0xe1,0x25,0x40,0xe3,0x5a,0x7f]
vpavgw 8128(%rdx), %zmm27, %zmm19
// CHECK: vpavgw 8192(%rdx), %zmm27, %zmm19
// CHECK: encoding: [0x62,0xe1,0x25,0x40,0xe3,0x9a,0x00,0x20,0x00,0x00]
vpavgw 8192(%rdx), %zmm27, %zmm19
// CHECK: vpavgw -8192(%rdx), %zmm27, %zmm19
// CHECK: encoding: [0x62,0xe1,0x25,0x40,0xe3,0x5a,0x80]
vpavgw -8192(%rdx), %zmm27, %zmm19
// CHECK: vpavgw -8256(%rdx), %zmm27, %zmm19
// CHECK: encoding: [0x62,0xe1,0x25,0x40,0xe3,0x9a,0xc0,0xdf,0xff,0xff]
vpavgw -8256(%rdx), %zmm27, %zmm19
// CHECK: vpavgb %zmm19, %zmm27, %zmm24
// CHECK: encoding: [0x62,0x21,0x25,0x40,0xe0,0xc3]
vpavgb %zmm19, %zmm27, %zmm24
// CHECK: vpavgb %zmm19, %zmm27, %zmm24 {%k4}
// CHECK: encoding: [0x62,0x21,0x25,0x44,0xe0,0xc3]
vpavgb %zmm19, %zmm27, %zmm24 {%k4}
// CHECK: vpavgb %zmm19, %zmm27, %zmm24 {%k4} {z}
// CHECK: encoding: [0x62,0x21,0x25,0xc4,0xe0,0xc3]
vpavgb %zmm19, %zmm27, %zmm24 {%k4} {z}
// CHECK: vpavgb (%rcx), %zmm27, %zmm24
// CHECK: encoding: [0x62,0x61,0x25,0x40,0xe0,0x01]
vpavgb (%rcx), %zmm27, %zmm24
// CHECK: vpavgb 291(%rax,%r14,8), %zmm27, %zmm24
// CHECK: encoding: [0x62,0x21,0x25,0x40,0xe0,0x84,0xf0,0x23,0x01,0x00,0x00]
vpavgb 291(%rax,%r14,8), %zmm27, %zmm24
// CHECK: vpavgb 8128(%rdx), %zmm27, %zmm24
// CHECK: encoding: [0x62,0x61,0x25,0x40,0xe0,0x42,0x7f]
vpavgb 8128(%rdx), %zmm27, %zmm24
// CHECK: vpavgb 8192(%rdx), %zmm27, %zmm24
// CHECK: encoding: [0x62,0x61,0x25,0x40,0xe0,0x82,0x00,0x20,0x00,0x00]
vpavgb 8192(%rdx), %zmm27, %zmm24
// CHECK: vpavgb -8192(%rdx), %zmm27, %zmm24
// CHECK: encoding: [0x62,0x61,0x25,0x40,0xe0,0x42,0x80]
vpavgb -8192(%rdx), %zmm27, %zmm24
// CHECK: vpavgb -8256(%rdx), %zmm27, %zmm24
// CHECK: encoding: [0x62,0x61,0x25,0x40,0xe0,0x82,0xc0,0xdf,0xff,0xff]
vpavgb -8256(%rdx), %zmm27, %zmm24
// CHECK: vpavgw %zmm26, %zmm29, %zmm29
// CHECK: encoding: [0x62,0x01,0x15,0x40,0xe3,0xea]
vpavgw %zmm26, %zmm29, %zmm29
// CHECK: vpavgw %zmm26, %zmm29, %zmm29 {%k6}
// CHECK: encoding: [0x62,0x01,0x15,0x46,0xe3,0xea]
vpavgw %zmm26, %zmm29, %zmm29 {%k6}
// CHECK: vpavgw %zmm26, %zmm29, %zmm29 {%k6} {z}
// CHECK: encoding: [0x62,0x01,0x15,0xc6,0xe3,0xea]
vpavgw %zmm26, %zmm29, %zmm29 {%k6} {z}
// CHECK: vpavgw (%rcx), %zmm29, %zmm29
// CHECK: encoding: [0x62,0x61,0x15,0x40,0xe3,0x29]
vpavgw (%rcx), %zmm29, %zmm29
// CHECK: vpavgw 291(%rax,%r14,8), %zmm29, %zmm29
// CHECK: encoding: [0x62,0x21,0x15,0x40,0xe3,0xac,0xf0,0x23,0x01,0x00,0x00]
vpavgw 291(%rax,%r14,8), %zmm29, %zmm29
// CHECK: vpavgw 8128(%rdx), %zmm29, %zmm29
// CHECK: encoding: [0x62,0x61,0x15,0x40,0xe3,0x6a,0x7f]
vpavgw 8128(%rdx), %zmm29, %zmm29
// CHECK: vpavgw 8192(%rdx), %zmm29, %zmm29
// CHECK: encoding: [0x62,0x61,0x15,0x40,0xe3,0xaa,0x00,0x20,0x00,0x00]
vpavgw 8192(%rdx), %zmm29, %zmm29
// CHECK: vpavgw -8192(%rdx), %zmm29, %zmm29
// CHECK: encoding: [0x62,0x61,0x15,0x40,0xe3,0x6a,0x80]
vpavgw -8192(%rdx), %zmm29, %zmm29
// CHECK: vpavgw -8256(%rdx), %zmm29, %zmm29
// CHECK: encoding: [0x62,0x61,0x15,0x40,0xe3,0xaa,0xc0,0xdf,0xff,0xff]
vpavgw -8256(%rdx), %zmm29, %zmm29

View File

@ -6079,3 +6079,434 @@
// CHECK: vpermt2w -4128(%rdx), %ymm23, %ymm28
// CHECK: encoding: [0x62,0x62,0xc5,0x20,0x7d,0xa2,0xe0,0xef,0xff,0xff]
vpermt2w -4128(%rdx), %ymm23, %ymm28
// CHECK: vpavgb %xmm22, %xmm24, %xmm21
// CHECK: encoding: [0x62,0xa1,0x3d,0x00,0xe0,0xee]
vpavgb %xmm22, %xmm24, %xmm21
// CHECK: vpavgb %xmm22, %xmm24, %xmm21 {%k7}
// CHECK: encoding: [0x62,0xa1,0x3d,0x07,0xe0,0xee]
vpavgb %xmm22, %xmm24, %xmm21 {%k7}
// CHECK: vpavgb %xmm22, %xmm24, %xmm21 {%k7} {z}
// CHECK: encoding: [0x62,0xa1,0x3d,0x87,0xe0,0xee]
vpavgb %xmm22, %xmm24, %xmm21 {%k7} {z}
// CHECK: vpavgb (%rcx), %xmm24, %xmm21
// CHECK: encoding: [0x62,0xe1,0x3d,0x00,0xe0,0x29]
vpavgb (%rcx), %xmm24, %xmm21
// CHECK: vpavgb 4660(%rax,%r14,8), %xmm24, %xmm21
// CHECK: encoding: [0x62,0xa1,0x3d,0x00,0xe0,0xac,0xf0,0x34,0x12,0x00,0x00]
vpavgb 4660(%rax,%r14,8), %xmm24, %xmm21
// CHECK: vpavgb 2032(%rdx), %xmm24, %xmm21
// CHECK: encoding: [0x62,0xe1,0x3d,0x00,0xe0,0x6a,0x7f]
vpavgb 2032(%rdx), %xmm24, %xmm21
// CHECK: vpavgb 2048(%rdx), %xmm24, %xmm21
// CHECK: encoding: [0x62,0xe1,0x3d,0x00,0xe0,0xaa,0x00,0x08,0x00,0x00]
vpavgb 2048(%rdx), %xmm24, %xmm21
// CHECK: vpavgb -2048(%rdx), %xmm24, %xmm21
// CHECK: encoding: [0x62,0xe1,0x3d,0x00,0xe0,0x6a,0x80]
vpavgb -2048(%rdx), %xmm24, %xmm21
// CHECK: vpavgb -2064(%rdx), %xmm24, %xmm21
// CHECK: encoding: [0x62,0xe1,0x3d,0x00,0xe0,0xaa,0xf0,0xf7,0xff,0xff]
vpavgb -2064(%rdx), %xmm24, %xmm21
// CHECK: vpavgb %ymm18, %ymm18, %ymm26
// CHECK: encoding: [0x62,0x21,0x6d,0x20,0xe0,0xd2]
vpavgb %ymm18, %ymm18, %ymm26
// CHECK: vpavgb %ymm18, %ymm18, %ymm26 {%k4}
// CHECK: encoding: [0x62,0x21,0x6d,0x24,0xe0,0xd2]
vpavgb %ymm18, %ymm18, %ymm26 {%k4}
// CHECK: vpavgb %ymm18, %ymm18, %ymm26 {%k4} {z}
// CHECK: encoding: [0x62,0x21,0x6d,0xa4,0xe0,0xd2]
vpavgb %ymm18, %ymm18, %ymm26 {%k4} {z}
// CHECK: vpavgb (%rcx), %ymm18, %ymm26
// CHECK: encoding: [0x62,0x61,0x6d,0x20,0xe0,0x11]
vpavgb (%rcx), %ymm18, %ymm26
// CHECK: vpavgb 4660(%rax,%r14,8), %ymm18, %ymm26
// CHECK: encoding: [0x62,0x21,0x6d,0x20,0xe0,0x94,0xf0,0x34,0x12,0x00,0x00]
vpavgb 4660(%rax,%r14,8), %ymm18, %ymm26
// CHECK: vpavgb 4064(%rdx), %ymm18, %ymm26
// CHECK: encoding: [0x62,0x61,0x6d,0x20,0xe0,0x52,0x7f]
vpavgb 4064(%rdx), %ymm18, %ymm26
// CHECK: vpavgb 4096(%rdx), %ymm18, %ymm26
// CHECK: encoding: [0x62,0x61,0x6d,0x20,0xe0,0x92,0x00,0x10,0x00,0x00]
vpavgb 4096(%rdx), %ymm18, %ymm26
// CHECK: vpavgb -4096(%rdx), %ymm18, %ymm26
// CHECK: encoding: [0x62,0x61,0x6d,0x20,0xe0,0x52,0x80]
vpavgb -4096(%rdx), %ymm18, %ymm26
// CHECK: vpavgb -4128(%rdx), %ymm18, %ymm26
// CHECK: encoding: [0x62,0x61,0x6d,0x20,0xe0,0x92,0xe0,0xef,0xff,0xff]
vpavgb -4128(%rdx), %ymm18, %ymm26
// CHECK: vpavgw %xmm23, %xmm28, %xmm29
// CHECK: encoding: [0x62,0x21,0x1d,0x00,0xe3,0xef]
vpavgw %xmm23, %xmm28, %xmm29
// CHECK: vpavgw %xmm23, %xmm28, %xmm29 {%k7}
// CHECK: encoding: [0x62,0x21,0x1d,0x07,0xe3,0xef]
vpavgw %xmm23, %xmm28, %xmm29 {%k7}
// CHECK: vpavgw %xmm23, %xmm28, %xmm29 {%k7} {z}
// CHECK: encoding: [0x62,0x21,0x1d,0x87,0xe3,0xef]
vpavgw %xmm23, %xmm28, %xmm29 {%k7} {z}
// CHECK: vpavgw (%rcx), %xmm28, %xmm29
// CHECK: encoding: [0x62,0x61,0x1d,0x00,0xe3,0x29]
vpavgw (%rcx), %xmm28, %xmm29
// CHECK: vpavgw 4660(%rax,%r14,8), %xmm28, %xmm29
// CHECK: encoding: [0x62,0x21,0x1d,0x00,0xe3,0xac,0xf0,0x34,0x12,0x00,0x00]
vpavgw 4660(%rax,%r14,8), %xmm28, %xmm29
// CHECK: vpavgw 2032(%rdx), %xmm28, %xmm29
// CHECK: encoding: [0x62,0x61,0x1d,0x00,0xe3,0x6a,0x7f]
vpavgw 2032(%rdx), %xmm28, %xmm29
// CHECK: vpavgw 2048(%rdx), %xmm28, %xmm29
// CHECK: encoding: [0x62,0x61,0x1d,0x00,0xe3,0xaa,0x00,0x08,0x00,0x00]
vpavgw 2048(%rdx), %xmm28, %xmm29
// CHECK: vpavgw -2048(%rdx), %xmm28, %xmm29
// CHECK: encoding: [0x62,0x61,0x1d,0x00,0xe3,0x6a,0x80]
vpavgw -2048(%rdx), %xmm28, %xmm29
// CHECK: vpavgw -2064(%rdx), %xmm28, %xmm29
// CHECK: encoding: [0x62,0x61,0x1d,0x00,0xe3,0xaa,0xf0,0xf7,0xff,0xff]
vpavgw -2064(%rdx), %xmm28, %xmm29
// CHECK: vpavgw %ymm17, %ymm18, %ymm27
// CHECK: encoding: [0x62,0x21,0x6d,0x20,0xe3,0xd9]
vpavgw %ymm17, %ymm18, %ymm27
// CHECK: vpavgw %ymm17, %ymm18, %ymm27 {%k5}
// CHECK: encoding: [0x62,0x21,0x6d,0x25,0xe3,0xd9]
vpavgw %ymm17, %ymm18, %ymm27 {%k5}
// CHECK: vpavgw %ymm17, %ymm18, %ymm27 {%k5} {z}
// CHECK: encoding: [0x62,0x21,0x6d,0xa5,0xe3,0xd9]
vpavgw %ymm17, %ymm18, %ymm27 {%k5} {z}
// CHECK: vpavgw (%rcx), %ymm18, %ymm27
// CHECK: encoding: [0x62,0x61,0x6d,0x20,0xe3,0x19]
vpavgw (%rcx), %ymm18, %ymm27
// CHECK: vpavgw 4660(%rax,%r14,8), %ymm18, %ymm27
// CHECK: encoding: [0x62,0x21,0x6d,0x20,0xe3,0x9c,0xf0,0x34,0x12,0x00,0x00]
vpavgw 4660(%rax,%r14,8), %ymm18, %ymm27
// CHECK: vpavgw 4064(%rdx), %ymm18, %ymm27
// CHECK: encoding: [0x62,0x61,0x6d,0x20,0xe3,0x5a,0x7f]
vpavgw 4064(%rdx), %ymm18, %ymm27
// CHECK: vpavgw 4096(%rdx), %ymm18, %ymm27
// CHECK: encoding: [0x62,0x61,0x6d,0x20,0xe3,0x9a,0x00,0x10,0x00,0x00]
vpavgw 4096(%rdx), %ymm18, %ymm27
// CHECK: vpavgw -4096(%rdx), %ymm18, %ymm27
// CHECK: encoding: [0x62,0x61,0x6d,0x20,0xe3,0x5a,0x80]
vpavgw -4096(%rdx), %ymm18, %ymm27
// CHECK: vpavgw -4128(%rdx), %ymm18, %ymm27
// CHECK: encoding: [0x62,0x61,0x6d,0x20,0xe3,0x9a,0xe0,0xef,0xff,0xff]
vpavgw -4128(%rdx), %ymm18, %ymm27
// CHECK: vpavgb %xmm20, %xmm22, %xmm26
// CHECK: encoding: [0x62,0x21,0x4d,0x00,0xe0,0xd4]
vpavgb %xmm20, %xmm22, %xmm26
// CHECK: vpavgb %xmm20, %xmm22, %xmm26 {%k6}
// CHECK: encoding: [0x62,0x21,0x4d,0x06,0xe0,0xd4]
vpavgb %xmm20, %xmm22, %xmm26 {%k6}
// CHECK: vpavgb %xmm20, %xmm22, %xmm26 {%k6} {z}
// CHECK: encoding: [0x62,0x21,0x4d,0x86,0xe0,0xd4]
vpavgb %xmm20, %xmm22, %xmm26 {%k6} {z}
// CHECK: vpavgb (%rcx), %xmm22, %xmm26
// CHECK: encoding: [0x62,0x61,0x4d,0x00,0xe0,0x11]
vpavgb (%rcx), %xmm22, %xmm26
// CHECK: vpavgb 291(%rax,%r14,8), %xmm22, %xmm26
// CHECK: encoding: [0x62,0x21,0x4d,0x00,0xe0,0x94,0xf0,0x23,0x01,0x00,0x00]
vpavgb 291(%rax,%r14,8), %xmm22, %xmm26
// CHECK: vpavgb 2032(%rdx), %xmm22, %xmm26
// CHECK: encoding: [0x62,0x61,0x4d,0x00,0xe0,0x52,0x7f]
vpavgb 2032(%rdx), %xmm22, %xmm26
// CHECK: vpavgb 2048(%rdx), %xmm22, %xmm26
// CHECK: encoding: [0x62,0x61,0x4d,0x00,0xe0,0x92,0x00,0x08,0x00,0x00]
vpavgb 2048(%rdx), %xmm22, %xmm26
// CHECK: vpavgb -2048(%rdx), %xmm22, %xmm26
// CHECK: encoding: [0x62,0x61,0x4d,0x00,0xe0,0x52,0x80]
vpavgb -2048(%rdx), %xmm22, %xmm26
// CHECK: vpavgb -2064(%rdx), %xmm22, %xmm26
// CHECK: encoding: [0x62,0x61,0x4d,0x00,0xe0,0x92,0xf0,0xf7,0xff,0xff]
vpavgb -2064(%rdx), %xmm22, %xmm26
// CHECK: vpavgb %ymm18, %ymm22, %ymm29
// CHECK: encoding: [0x62,0x21,0x4d,0x20,0xe0,0xea]
vpavgb %ymm18, %ymm22, %ymm29
// CHECK: vpavgb %ymm18, %ymm22, %ymm29 {%k1}
// CHECK: encoding: [0x62,0x21,0x4d,0x21,0xe0,0xea]
vpavgb %ymm18, %ymm22, %ymm29 {%k1}
// CHECK: vpavgb %ymm18, %ymm22, %ymm29 {%k1} {z}
// CHECK: encoding: [0x62,0x21,0x4d,0xa1,0xe0,0xea]
vpavgb %ymm18, %ymm22, %ymm29 {%k1} {z}
// CHECK: vpavgb (%rcx), %ymm22, %ymm29
// CHECK: encoding: [0x62,0x61,0x4d,0x20,0xe0,0x29]
vpavgb (%rcx), %ymm22, %ymm29
// CHECK: vpavgb 291(%rax,%r14,8), %ymm22, %ymm29
// CHECK: encoding: [0x62,0x21,0x4d,0x20,0xe0,0xac,0xf0,0x23,0x01,0x00,0x00]
vpavgb 291(%rax,%r14,8), %ymm22, %ymm29
// CHECK: vpavgb 4064(%rdx), %ymm22, %ymm29
// CHECK: encoding: [0x62,0x61,0x4d,0x20,0xe0,0x6a,0x7f]
vpavgb 4064(%rdx), %ymm22, %ymm29
// CHECK: vpavgb 4096(%rdx), %ymm22, %ymm29
// CHECK: encoding: [0x62,0x61,0x4d,0x20,0xe0,0xaa,0x00,0x10,0x00,0x00]
vpavgb 4096(%rdx), %ymm22, %ymm29
// CHECK: vpavgb -4096(%rdx), %ymm22, %ymm29
// CHECK: encoding: [0x62,0x61,0x4d,0x20,0xe0,0x6a,0x80]
vpavgb -4096(%rdx), %ymm22, %ymm29
// CHECK: vpavgb -4128(%rdx), %ymm22, %ymm29
// CHECK: encoding: [0x62,0x61,0x4d,0x20,0xe0,0xaa,0xe0,0xef,0xff,0xff]
vpavgb -4128(%rdx), %ymm22, %ymm29
// CHECK: vpavgw %xmm23, %xmm24, %xmm28
// CHECK: encoding: [0x62,0x21,0x3d,0x00,0xe3,0xe7]
vpavgw %xmm23, %xmm24, %xmm28
// CHECK: vpavgw %xmm23, %xmm24, %xmm28 {%k7}
// CHECK: encoding: [0x62,0x21,0x3d,0x07,0xe3,0xe7]
vpavgw %xmm23, %xmm24, %xmm28 {%k7}
// CHECK: vpavgw %xmm23, %xmm24, %xmm28 {%k7} {z}
// CHECK: encoding: [0x62,0x21,0x3d,0x87,0xe3,0xe7]
vpavgw %xmm23, %xmm24, %xmm28 {%k7} {z}
// CHECK: vpavgw (%rcx), %xmm24, %xmm28
// CHECK: encoding: [0x62,0x61,0x3d,0x00,0xe3,0x21]
vpavgw (%rcx), %xmm24, %xmm28
// CHECK: vpavgw 291(%rax,%r14,8), %xmm24, %xmm28
// CHECK: encoding: [0x62,0x21,0x3d,0x00,0xe3,0xa4,0xf0,0x23,0x01,0x00,0x00]
vpavgw 291(%rax,%r14,8), %xmm24, %xmm28
// CHECK: vpavgw 2032(%rdx), %xmm24, %xmm28
// CHECK: encoding: [0x62,0x61,0x3d,0x00,0xe3,0x62,0x7f]
vpavgw 2032(%rdx), %xmm24, %xmm28
// CHECK: vpavgw 2048(%rdx), %xmm24, %xmm28
// CHECK: encoding: [0x62,0x61,0x3d,0x00,0xe3,0xa2,0x00,0x08,0x00,0x00]
vpavgw 2048(%rdx), %xmm24, %xmm28
// CHECK: vpavgw -2048(%rdx), %xmm24, %xmm28
// CHECK: encoding: [0x62,0x61,0x3d,0x00,0xe3,0x62,0x80]
vpavgw -2048(%rdx), %xmm24, %xmm28
// CHECK: vpavgw -2064(%rdx), %xmm24, %xmm28
// CHECK: encoding: [0x62,0x61,0x3d,0x00,0xe3,0xa2,0xf0,0xf7,0xff,0xff]
vpavgw -2064(%rdx), %xmm24, %xmm28
// CHECK: vpavgw %ymm22, %ymm26, %ymm22
// CHECK: encoding: [0x62,0xa1,0x2d,0x20,0xe3,0xf6]
vpavgw %ymm22, %ymm26, %ymm22
// CHECK: vpavgw %ymm22, %ymm26, %ymm22 {%k7}
// CHECK: encoding: [0x62,0xa1,0x2d,0x27,0xe3,0xf6]
vpavgw %ymm22, %ymm26, %ymm22 {%k7}
// CHECK: vpavgw %ymm22, %ymm26, %ymm22 {%k7} {z}
// CHECK: encoding: [0x62,0xa1,0x2d,0xa7,0xe3,0xf6]
vpavgw %ymm22, %ymm26, %ymm22 {%k7} {z}
// CHECK: vpavgw (%rcx), %ymm26, %ymm22
// CHECK: encoding: [0x62,0xe1,0x2d,0x20,0xe3,0x31]
vpavgw (%rcx), %ymm26, %ymm22
// CHECK: vpavgw 291(%rax,%r14,8), %ymm26, %ymm22
// CHECK: encoding: [0x62,0xa1,0x2d,0x20,0xe3,0xb4,0xf0,0x23,0x01,0x00,0x00]
vpavgw 291(%rax,%r14,8), %ymm26, %ymm22
// CHECK: vpavgw 4064(%rdx), %ymm26, %ymm22
// CHECK: encoding: [0x62,0xe1,0x2d,0x20,0xe3,0x72,0x7f]
vpavgw 4064(%rdx), %ymm26, %ymm22
// CHECK: vpavgw 4096(%rdx), %ymm26, %ymm22
// CHECK: encoding: [0x62,0xe1,0x2d,0x20,0xe3,0xb2,0x00,0x10,0x00,0x00]
vpavgw 4096(%rdx), %ymm26, %ymm22
// CHECK: vpavgw -4096(%rdx), %ymm26, %ymm22
// CHECK: encoding: [0x62,0xe1,0x2d,0x20,0xe3,0x72,0x80]
vpavgw -4096(%rdx), %ymm26, %ymm22
// CHECK: vpavgw -4128(%rdx), %ymm26, %ymm22
// CHECK: encoding: [0x62,0xe1,0x2d,0x20,0xe3,0xb2,0xe0,0xef,0xff,0xff]
vpavgw -4128(%rdx), %ymm26, %ymm22
// CHECK: vpavgb %xmm26, %xmm19, %xmm20
// CHECK: encoding: [0x62,0x81,0x65,0x00,0xe0,0xe2]
vpavgb %xmm26, %xmm19, %xmm20
// CHECK: vpavgb %xmm26, %xmm19, %xmm20 {%k7}
// CHECK: encoding: [0x62,0x81,0x65,0x07,0xe0,0xe2]
vpavgb %xmm26, %xmm19, %xmm20 {%k7}
// CHECK: vpavgb %xmm26, %xmm19, %xmm20 {%k7} {z}
// CHECK: encoding: [0x62,0x81,0x65,0x87,0xe0,0xe2]
vpavgb %xmm26, %xmm19, %xmm20 {%k7} {z}
// CHECK: vpavgb (%rcx), %xmm19, %xmm20
// CHECK: encoding: [0x62,0xe1,0x65,0x00,0xe0,0x21]
vpavgb (%rcx), %xmm19, %xmm20
// CHECK: vpavgb 291(%rax,%r14,8), %xmm19, %xmm20
// CHECK: encoding: [0x62,0xa1,0x65,0x00,0xe0,0xa4,0xf0,0x23,0x01,0x00,0x00]
vpavgb 291(%rax,%r14,8), %xmm19, %xmm20
// CHECK: vpavgb 2032(%rdx), %xmm19, %xmm20
// CHECK: encoding: [0x62,0xe1,0x65,0x00,0xe0,0x62,0x7f]
vpavgb 2032(%rdx), %xmm19, %xmm20
// CHECK: vpavgb 2048(%rdx), %xmm19, %xmm20
// CHECK: encoding: [0x62,0xe1,0x65,0x00,0xe0,0xa2,0x00,0x08,0x00,0x00]
vpavgb 2048(%rdx), %xmm19, %xmm20
// CHECK: vpavgb -2048(%rdx), %xmm19, %xmm20
// CHECK: encoding: [0x62,0xe1,0x65,0x00,0xe0,0x62,0x80]
vpavgb -2048(%rdx), %xmm19, %xmm20
// CHECK: vpavgb -2064(%rdx), %xmm19, %xmm20
// CHECK: encoding: [0x62,0xe1,0x65,0x00,0xe0,0xa2,0xf0,0xf7,0xff,0xff]
vpavgb -2064(%rdx), %xmm19, %xmm20
// CHECK: vpavgb %ymm17, %ymm22, %ymm26
// CHECK: encoding: [0x62,0x21,0x4d,0x20,0xe0,0xd1]
vpavgb %ymm17, %ymm22, %ymm26
// CHECK: vpavgb %ymm17, %ymm22, %ymm26 {%k5}
// CHECK: encoding: [0x62,0x21,0x4d,0x25,0xe0,0xd1]
vpavgb %ymm17, %ymm22, %ymm26 {%k5}
// CHECK: vpavgb %ymm17, %ymm22, %ymm26 {%k5} {z}
// CHECK: encoding: [0x62,0x21,0x4d,0xa5,0xe0,0xd1]
vpavgb %ymm17, %ymm22, %ymm26 {%k5} {z}
// CHECK: vpavgb (%rcx), %ymm22, %ymm26
// CHECK: encoding: [0x62,0x61,0x4d,0x20,0xe0,0x11]
vpavgb (%rcx), %ymm22, %ymm26
// CHECK: vpavgb 291(%rax,%r14,8), %ymm22, %ymm26
// CHECK: encoding: [0x62,0x21,0x4d,0x20,0xe0,0x94,0xf0,0x23,0x01,0x00,0x00]
vpavgb 291(%rax,%r14,8), %ymm22, %ymm26
// CHECK: vpavgb 4064(%rdx), %ymm22, %ymm26
// CHECK: encoding: [0x62,0x61,0x4d,0x20,0xe0,0x52,0x7f]
vpavgb 4064(%rdx), %ymm22, %ymm26
// CHECK: vpavgb 4096(%rdx), %ymm22, %ymm26
// CHECK: encoding: [0x62,0x61,0x4d,0x20,0xe0,0x92,0x00,0x10,0x00,0x00]
vpavgb 4096(%rdx), %ymm22, %ymm26
// CHECK: vpavgb -4096(%rdx), %ymm22, %ymm26
// CHECK: encoding: [0x62,0x61,0x4d,0x20,0xe0,0x52,0x80]
vpavgb -4096(%rdx), %ymm22, %ymm26
// CHECK: vpavgb -4128(%rdx), %ymm22, %ymm26
// CHECK: encoding: [0x62,0x61,0x4d,0x20,0xe0,0x92,0xe0,0xef,0xff,0xff]
vpavgb -4128(%rdx), %ymm22, %ymm26
// CHECK: vpavgw %xmm20, %xmm18, %xmm22
// CHECK: encoding: [0x62,0xa1,0x6d,0x00,0xe3,0xf4]
vpavgw %xmm20, %xmm18, %xmm22
// CHECK: vpavgw %xmm20, %xmm18, %xmm22 {%k7}
// CHECK: encoding: [0x62,0xa1,0x6d,0x07,0xe3,0xf4]
vpavgw %xmm20, %xmm18, %xmm22 {%k7}
// CHECK: vpavgw %xmm20, %xmm18, %xmm22 {%k7} {z}
// CHECK: encoding: [0x62,0xa1,0x6d,0x87,0xe3,0xf4]
vpavgw %xmm20, %xmm18, %xmm22 {%k7} {z}
// CHECK: vpavgw (%rcx), %xmm18, %xmm22
// CHECK: encoding: [0x62,0xe1,0x6d,0x00,0xe3,0x31]
vpavgw (%rcx), %xmm18, %xmm22
// CHECK: vpavgw 291(%rax,%r14,8), %xmm18, %xmm22
// CHECK: encoding: [0x62,0xa1,0x6d,0x00,0xe3,0xb4,0xf0,0x23,0x01,0x00,0x00]
vpavgw 291(%rax,%r14,8), %xmm18, %xmm22
// CHECK: vpavgw 2032(%rdx), %xmm18, %xmm22
// CHECK: encoding: [0x62,0xe1,0x6d,0x00,0xe3,0x72,0x7f]
vpavgw 2032(%rdx), %xmm18, %xmm22
// CHECK: vpavgw 2048(%rdx), %xmm18, %xmm22
// CHECK: encoding: [0x62,0xe1,0x6d,0x00,0xe3,0xb2,0x00,0x08,0x00,0x00]
vpavgw 2048(%rdx), %xmm18, %xmm22
// CHECK: vpavgw -2048(%rdx), %xmm18, %xmm22
// CHECK: encoding: [0x62,0xe1,0x6d,0x00,0xe3,0x72,0x80]
vpavgw -2048(%rdx), %xmm18, %xmm22
// CHECK: vpavgw -2064(%rdx), %xmm18, %xmm22
// CHECK: encoding: [0x62,0xe1,0x6d,0x00,0xe3,0xb2,0xf0,0xf7,0xff,0xff]
vpavgw -2064(%rdx), %xmm18, %xmm22
// CHECK: vpavgw %ymm21, %ymm23, %ymm21
// CHECK: encoding: [0x62,0xa1,0x45,0x20,0xe3,0xed]
vpavgw %ymm21, %ymm23, %ymm21
// CHECK: vpavgw %ymm21, %ymm23, %ymm21 {%k2}
// CHECK: encoding: [0x62,0xa1,0x45,0x22,0xe3,0xed]
vpavgw %ymm21, %ymm23, %ymm21 {%k2}
// CHECK: vpavgw %ymm21, %ymm23, %ymm21 {%k2} {z}
// CHECK: encoding: [0x62,0xa1,0x45,0xa2,0xe3,0xed]
vpavgw %ymm21, %ymm23, %ymm21 {%k2} {z}
// CHECK: vpavgw (%rcx), %ymm23, %ymm21
// CHECK: encoding: [0x62,0xe1,0x45,0x20,0xe3,0x29]
vpavgw (%rcx), %ymm23, %ymm21
// CHECK: vpavgw 291(%rax,%r14,8), %ymm23, %ymm21
// CHECK: encoding: [0x62,0xa1,0x45,0x20,0xe3,0xac,0xf0,0x23,0x01,0x00,0x00]
vpavgw 291(%rax,%r14,8), %ymm23, %ymm21
// CHECK: vpavgw 4064(%rdx), %ymm23, %ymm21
// CHECK: encoding: [0x62,0xe1,0x45,0x20,0xe3,0x6a,0x7f]
vpavgw 4064(%rdx), %ymm23, %ymm21
// CHECK: vpavgw 4096(%rdx), %ymm23, %ymm21
// CHECK: encoding: [0x62,0xe1,0x45,0x20,0xe3,0xaa,0x00,0x10,0x00,0x00]
vpavgw 4096(%rdx), %ymm23, %ymm21
// CHECK: vpavgw -4096(%rdx), %ymm23, %ymm21
// CHECK: encoding: [0x62,0xe1,0x45,0x20,0xe3,0x6a,0x80]
vpavgw -4096(%rdx), %ymm23, %ymm21
// CHECK: vpavgw -4128(%rdx), %ymm23, %ymm21
// CHECK: encoding: [0x62,0xe1,0x45,0x20,0xe3,0xaa,0xe0,0xef,0xff,0xff]
vpavgw -4128(%rdx), %ymm23, %ymm21