1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 11:42:57 +01:00

[X86] Add assembler/disassembler support for blendm with zero masking and broacast.

Fixes PR31617

llvm-svn: 325957
This commit is contained in:
Craig Topper 2018-02-23 20:48:44 +00:00
parent be9d55fd16
commit a17dd7c4dd
3 changed files with 192 additions and 0 deletions

View File

@ -1965,6 +1965,14 @@ multiclass avx512_blendmask_rmb<bits<8> opc, string OpcodeStr, OpndItins itins,
[], itins.rm>, EVEX_4V, EVEX_K, EVEX_B, EVEX_CD8<_.EltSize, CD8VF>,
Sched<[itins.Sched.Folded, ReadAfterLd]>;
def rmbkz : AVX5128I<opc, MRMSrcMem, (outs _.RC:$dst),
(ins _.KRCWM:$mask, _.RC:$src1, _.ScalarMemOp:$src2),
!strconcat(OpcodeStr,
"\t{${src2}", _.BroadcastStr, ", $src1, $dst {${mask}} {z}|",
"$dst {${mask}} {z}, $src1, ${src2}", _.BroadcastStr, "}"),
[], itins.rm>, EVEX_4V, EVEX_KZ, EVEX_B, EVEX_CD8<_.EltSize, CD8VF>,
Sched<[itins.Sched.Folded, ReadAfterLd]>;
def rmb : AVX5128I<opc, MRMSrcMem, (outs _.RC:$dst),
(ins _.RC:$src1, _.ScalarMemOp:$src2),
!strconcat(OpcodeStr,

View File

@ -740,6 +740,10 @@ vblendmpd 485498096{1to8}, %zmm2, %zmm2
// CHECK: encoding: [0x62,0xf2,0xed,0x5a,0x65,0x15,0xf0,0x1c,0xf0,0x1c]
vblendmpd 485498096{1to8}, %zmm2, %zmm2 {%k2}
// CHECK: vblendmpd 485498096{1to8}, %zmm2, %zmm2 {%k2} {z}
// CHECK: encoding: [0x62,0xf2,0xed,0xda,0x65,0x15,0xf0,0x1c,0xf0,0x1c]
vblendmpd 485498096{1to8}, %zmm2, %zmm2 {%k2} {z}
// CHECK: vblendmpd 485498096(%edx){1to8}, %zmm2, %zmm2
// CHECK: encoding: [0x62,0xf2,0xed,0x58,0x65,0x92,0xf0,0x1c,0xf0,0x1c]
vblendmpd 485498096(%edx){1to8}, %zmm2, %zmm2
@ -748,6 +752,10 @@ vblendmpd 485498096(%edx){1to8}, %zmm2, %zmm2
// CHECK: encoding: [0x62,0xf2,0xed,0x5a,0x65,0x92,0xf0,0x1c,0xf0,0x1c]
vblendmpd 485498096(%edx){1to8}, %zmm2, %zmm2 {%k2}
// CHECK: vblendmpd 485498096(%edx){1to8}, %zmm2, %zmm2 {%k2} {z}
// CHECK: encoding: [0x62,0xf2,0xed,0xda,0x65,0x92,0xf0,0x1c,0xf0,0x1c]
vblendmpd 485498096(%edx){1to8}, %zmm2, %zmm2 {%k2} {z}
// CHECK: vblendmpd -485498096(%edx,%eax,4){1to8}, %zmm2, %zmm2
// CHECK: encoding: [0x62,0xf2,0xed,0x58,0x65,0x94,0x82,0x10,0xe3,0x0f,0xe3]
vblendmpd -485498096(%edx,%eax,4){1to8}, %zmm2, %zmm2
@ -760,10 +768,18 @@ vblendmpd 485498096(%edx,%eax,4){1to8}, %zmm2, %zmm2
// CHECK: encoding: [0x62,0xf2,0xed,0x5a,0x65,0x94,0x82,0x10,0xe3,0x0f,0xe3]
vblendmpd -485498096(%edx,%eax,4){1to8}, %zmm2, %zmm2 {%k2}
// CHECK: vblendmpd -485498096(%edx,%eax,4){1to8}, %zmm2, %zmm2 {%k2} {z}
// CHECK: encoding: [0x62,0xf2,0xed,0xda,0x65,0x94,0x82,0x10,0xe3,0x0f,0xe3]
vblendmpd -485498096(%edx,%eax,4){1to8}, %zmm2, %zmm2 {%k2} {z}
// CHECK: vblendmpd 485498096(%edx,%eax,4){1to8}, %zmm2, %zmm2 {%k2}
// CHECK: encoding: [0x62,0xf2,0xed,0x5a,0x65,0x94,0x82,0xf0,0x1c,0xf0,0x1c]
vblendmpd 485498096(%edx,%eax,4){1to8}, %zmm2, %zmm2 {%k2}
// CHECK: vblendmpd 485498096(%edx,%eax,4){1to8}, %zmm2, %zmm2 {%k2} {z}
// CHECK: encoding: [0x62,0xf2,0xed,0xda,0x65,0x94,0x82,0xf0,0x1c,0xf0,0x1c]
vblendmpd 485498096(%edx,%eax,4){1to8}, %zmm2, %zmm2 {%k2} {z}
// CHECK: vblendmpd -485498096(%edx,%eax,4), %zmm2, %zmm2
// CHECK: encoding: [0x62,0xf2,0xed,0x48,0x65,0x94,0x82,0x10,0xe3,0x0f,0xe3]
vblendmpd -485498096(%edx,%eax,4), %zmm2, %zmm2
@ -820,6 +836,10 @@ vblendmpd 512(%edx,%eax){1to8}, %zmm2, %zmm2
// CHECK: encoding: [0x62,0xf2,0xed,0x5a,0x65,0x54,0x02,0x40]
vblendmpd 512(%edx,%eax){1to8}, %zmm2, %zmm2 {%k2}
// CHECK: vblendmpd 512(%edx,%eax){1to8}, %zmm2, %zmm2 {%k2} {z}
// CHECK: encoding: [0x62,0xf2,0xed,0xda,0x65,0x54,0x02,0x40]
vblendmpd 512(%edx,%eax){1to8}, %zmm2, %zmm2 {%k2} {z}
// CHECK: vblendmpd (%edx){1to8}, %zmm2, %zmm2
// CHECK: encoding: [0x62,0xf2,0xed,0x58,0x65,0x12]
vblendmpd (%edx){1to8}, %zmm2, %zmm2
@ -828,6 +848,10 @@ vblendmpd (%edx){1to8}, %zmm2, %zmm2
// CHECK: encoding: [0x62,0xf2,0xed,0x5a,0x65,0x12]
vblendmpd (%edx){1to8}, %zmm2, %zmm2 {%k2}
// CHECK: vblendmpd (%edx){1to8}, %zmm2, %zmm2 {%k2} {z}
// CHECK: encoding: [0x62,0xf2,0xed,0xda,0x65,0x12]
vblendmpd (%edx){1to8}, %zmm2, %zmm2 {%k2} {z}
// CHECK: vblendmpd (%edx), %zmm2, %zmm2
// CHECK: encoding: [0x62,0xf2,0xed,0x48,0x65,0x12]
vblendmpd (%edx), %zmm2, %zmm2
@ -860,6 +884,10 @@ vblendmps 256(%edx,%eax){1to16}, %zmm2, %zmm2
// CHECK: encoding: [0x62,0xf2,0x6d,0x5a,0x65,0x54,0x02,0x40]
vblendmps 256(%edx,%eax){1to16}, %zmm2, %zmm2 {%k2}
// CHECK: vblendmps 256(%edx,%eax){1to16}, %zmm2, %zmm2 {%k2} {z}
// CHECK: encoding: [0x62,0xf2,0x6d,0xda,0x65,0x54,0x02,0x40]
vblendmps 256(%edx,%eax){1to16}, %zmm2, %zmm2 {%k2} {z}
// CHECK: vblendmps 4096(%edx,%eax), %zmm2, %zmm2
// CHECK: encoding: [0x62,0xf2,0x6d,0x48,0x65,0x54,0x02,0x40]
vblendmps 4096(%edx,%eax), %zmm2, %zmm2
@ -880,6 +908,10 @@ vblendmps 485498096{1to16}, %zmm2, %zmm2
// CHECK: encoding: [0x62,0xf2,0x6d,0x5a,0x65,0x15,0xf0,0x1c,0xf0,0x1c]
vblendmps 485498096{1to16}, %zmm2, %zmm2 {%k2}
// CHECK: vblendmps 485498096{1to16}, %zmm2, %zmm2 {%k2} {z}
// CHECK: encoding: [0x62,0xf2,0x6d,0xda,0x65,0x15,0xf0,0x1c,0xf0,0x1c]
vblendmps 485498096{1to16}, %zmm2, %zmm2 {%k2} {z}
// CHECK: vblendmps 485498096(%edx){1to16}, %zmm2, %zmm2
// CHECK: encoding: [0x62,0xf2,0x6d,0x58,0x65,0x92,0xf0,0x1c,0xf0,0x1c]
vblendmps 485498096(%edx){1to16}, %zmm2, %zmm2
@ -888,6 +920,10 @@ vblendmps 485498096(%edx){1to16}, %zmm2, %zmm2
// CHECK: encoding: [0x62,0xf2,0x6d,0x5a,0x65,0x92,0xf0,0x1c,0xf0,0x1c]
vblendmps 485498096(%edx){1to16}, %zmm2, %zmm2 {%k2}
// CHECK: vblendmps 485498096(%edx){1to16}, %zmm2, %zmm2 {%k2} {z}
// CHECK: encoding: [0x62,0xf2,0x6d,0xda,0x65,0x92,0xf0,0x1c,0xf0,0x1c]
vblendmps 485498096(%edx){1to16}, %zmm2, %zmm2 {%k2} {z}
// CHECK: vblendmps -485498096(%edx,%eax,4){1to16}, %zmm2, %zmm2
// CHECK: encoding: [0x62,0xf2,0x6d,0x58,0x65,0x94,0x82,0x10,0xe3,0x0f,0xe3]
vblendmps -485498096(%edx,%eax,4){1to16}, %zmm2, %zmm2
@ -900,10 +936,18 @@ vblendmps 485498096(%edx,%eax,4){1to16}, %zmm2, %zmm2
// CHECK: encoding: [0x62,0xf2,0x6d,0x5a,0x65,0x94,0x82,0x10,0xe3,0x0f,0xe3]
vblendmps -485498096(%edx,%eax,4){1to16}, %zmm2, %zmm2 {%k2}
// CHECK: vblendmps -485498096(%edx,%eax,4){1to16}, %zmm2, %zmm2 {%k2} {z}
// CHECK: encoding: [0x62,0xf2,0x6d,0xda,0x65,0x94,0x82,0x10,0xe3,0x0f,0xe3]
vblendmps -485498096(%edx,%eax,4){1to16}, %zmm2, %zmm2 {%k2} {z}
// CHECK: vblendmps 485498096(%edx,%eax,4){1to16}, %zmm2, %zmm2 {%k2}
// CHECK: encoding: [0x62,0xf2,0x6d,0x5a,0x65,0x94,0x82,0xf0,0x1c,0xf0,0x1c]
vblendmps 485498096(%edx,%eax,4){1to16}, %zmm2, %zmm2 {%k2}
// CHECK: vblendmps 485498096(%edx,%eax,4){1to16}, %zmm2, %zmm2 {%k2} {z}
// CHECK: encoding: [0x62,0xf2,0x6d,0xda,0x65,0x94,0x82,0xf0,0x1c,0xf0,0x1c]
vblendmps 485498096(%edx,%eax,4){1to16}, %zmm2, %zmm2 {%k2} {z}
// CHECK: vblendmps -485498096(%edx,%eax,4), %zmm2, %zmm2
// CHECK: encoding: [0x62,0xf2,0x6d,0x48,0x65,0x94,0x82,0x10,0xe3,0x0f,0xe3]
vblendmps -485498096(%edx,%eax,4), %zmm2, %zmm2
@ -960,6 +1004,10 @@ vblendmps (%edx){1to16}, %zmm2, %zmm2
// CHECK: encoding: [0x62,0xf2,0x6d,0x5a,0x65,0x12]
vblendmps (%edx){1to16}, %zmm2, %zmm2 {%k2}
// CHECK: vblendmps (%edx){1to16}, %zmm2, %zmm2 {%k2} {z}
// CHECK: encoding: [0x62,0xf2,0x6d,0xda,0x65,0x12]
vblendmps (%edx){1to16}, %zmm2, %zmm2 {%k2} {z}
// CHECK: vblendmps (%edx), %zmm2, %zmm2
// CHECK: encoding: [0x62,0xf2,0x6d,0x48,0x65,0x12]
vblendmps (%edx), %zmm2, %zmm2
@ -17624,6 +17672,10 @@ vpblendmd 256(%edx,%eax){1to16}, %zmm2, %zmm2
// CHECK: encoding: [0x62,0xf2,0x6d,0x5a,0x64,0x54,0x02,0x40]
vpblendmd 256(%edx,%eax){1to16}, %zmm2, %zmm2 {%k2}
// CHECK: vpblendmd 256(%edx,%eax){1to16}, %zmm2, %zmm2 {%k2} {z}
// CHECK: encoding: [0x62,0xf2,0x6d,0xda,0x64,0x54,0x02,0x40]
vpblendmd 256(%edx,%eax){1to16}, %zmm2, %zmm2 {%k2} {z}
// CHECK: vpblendmd 4096(%edx,%eax), %zmm2, %zmm2
// CHECK: encoding: [0x62,0xf2,0x6d,0x48,0x64,0x54,0x02,0x40]
vpblendmd 4096(%edx,%eax), %zmm2, %zmm2
@ -17644,6 +17696,10 @@ vpblendmd 485498096{1to16}, %zmm2, %zmm2
// CHECK: encoding: [0x62,0xf2,0x6d,0x5a,0x64,0x15,0xf0,0x1c,0xf0,0x1c]
vpblendmd 485498096{1to16}, %zmm2, %zmm2 {%k2}
// CHECK: vpblendmd 485498096{1to16}, %zmm2, %zmm2 {%k2} {z}
// CHECK: encoding: [0x62,0xf2,0x6d,0xda,0x64,0x15,0xf0,0x1c,0xf0,0x1c]
vpblendmd 485498096{1to16}, %zmm2, %zmm2 {%k2} {z}
// CHECK: vpblendmd 485498096(%edx){1to16}, %zmm2, %zmm2
// CHECK: encoding: [0x62,0xf2,0x6d,0x58,0x64,0x92,0xf0,0x1c,0xf0,0x1c]
vpblendmd 485498096(%edx){1to16}, %zmm2, %zmm2
@ -17664,10 +17720,18 @@ vpblendmd 485498096(%edx,%eax,4){1to16}, %zmm2, %zmm2
// CHECK: encoding: [0x62,0xf2,0x6d,0x5a,0x64,0x94,0x82,0x10,0xe3,0x0f,0xe3]
vpblendmd -485498096(%edx,%eax,4){1to16}, %zmm2, %zmm2 {%k2}
// CHECK: vpblendmd -485498096(%edx,%eax,4){1to16}, %zmm2, %zmm2 {%k2} {z}
// CHECK: encoding: [0x62,0xf2,0x6d,0xda,0x64,0x94,0x82,0x10,0xe3,0x0f,0xe3]
vpblendmd -485498096(%edx,%eax,4){1to16}, %zmm2, %zmm2 {%k2} {z}
// CHECK: vpblendmd 485498096(%edx,%eax,4){1to16}, %zmm2, %zmm2 {%k2}
// CHECK: encoding: [0x62,0xf2,0x6d,0x5a,0x64,0x94,0x82,0xf0,0x1c,0xf0,0x1c]
vpblendmd 485498096(%edx,%eax,4){1to16}, %zmm2, %zmm2 {%k2}
// CHECK: vpblendmd 485498096(%edx,%eax,4){1to16}, %zmm2, %zmm2 {%k2} {z}
// CHECK: encoding: [0x62,0xf2,0x6d,0xda,0x64,0x94,0x82,0xf0,0x1c,0xf0,0x1c]
vpblendmd 485498096(%edx,%eax,4){1to16}, %zmm2, %zmm2 {%k2} {z}
// CHECK: vpblendmd -485498096(%edx,%eax,4), %zmm2, %zmm2
// CHECK: encoding: [0x62,0xf2,0x6d,0x48,0x64,0x94,0x82,0x10,0xe3,0x0f,0xe3]
vpblendmd -485498096(%edx,%eax,4), %zmm2, %zmm2
@ -17724,6 +17788,10 @@ vpblendmd (%edx){1to16}, %zmm2, %zmm2
// CHECK: encoding: [0x62,0xf2,0x6d,0x5a,0x64,0x12]
vpblendmd (%edx){1to16}, %zmm2, %zmm2 {%k2}
// CHECK: vpblendmd (%edx){1to16}, %zmm2, %zmm2 {%k2} {z}
// CHECK: encoding: [0x62,0xf2,0x6d,0xda,0x64,0x12]
vpblendmd (%edx){1to16}, %zmm2, %zmm2 {%k2} {z}
// CHECK: vpblendmd (%edx), %zmm2, %zmm2
// CHECK: encoding: [0x62,0xf2,0x6d,0x48,0x64,0x12]
vpblendmd (%edx), %zmm2, %zmm2
@ -17768,6 +17836,10 @@ vpblendmq 485498096{1to8}, %zmm2, %zmm2
// CHECK: encoding: [0x62,0xf2,0xed,0x5a,0x64,0x15,0xf0,0x1c,0xf0,0x1c]
vpblendmq 485498096{1to8}, %zmm2, %zmm2 {%k2}
// CHECK: vpblendmq 485498096{1to8}, %zmm2, %zmm2 {%k2} {z}
// CHECK: encoding: [0x62,0xf2,0xed,0xda,0x64,0x15,0xf0,0x1c,0xf0,0x1c]
vpblendmq 485498096{1to8}, %zmm2, %zmm2 {%k2} {z}
// CHECK: vpblendmq 485498096(%edx){1to8}, %zmm2, %zmm2
// CHECK: encoding: [0x62,0xf2,0xed,0x58,0x64,0x92,0xf0,0x1c,0xf0,0x1c]
vpblendmq 485498096(%edx){1to8}, %zmm2, %zmm2
@ -17776,6 +17848,10 @@ vpblendmq 485498096(%edx){1to8}, %zmm2, %zmm2
// CHECK: encoding: [0x62,0xf2,0xed,0x5a,0x64,0x92,0xf0,0x1c,0xf0,0x1c]
vpblendmq 485498096(%edx){1to8}, %zmm2, %zmm2 {%k2}
// CHECK: vpblendmq 485498096(%edx){1to8}, %zmm2, %zmm2 {%k2} {z}
// CHECK: encoding: [0x62,0xf2,0xed,0xda,0x64,0x92,0xf0,0x1c,0xf0,0x1c]
vpblendmq 485498096(%edx){1to8}, %zmm2, %zmm2 {%k2} {z}
// CHECK: vpblendmq -485498096(%edx,%eax,4){1to8}, %zmm2, %zmm2
// CHECK: encoding: [0x62,0xf2,0xed,0x58,0x64,0x94,0x82,0x10,0xe3,0x0f,0xe3]
vpblendmq -485498096(%edx,%eax,4){1to8}, %zmm2, %zmm2
@ -17788,10 +17864,18 @@ vpblendmq 485498096(%edx,%eax,4){1to8}, %zmm2, %zmm2
// CHECK: encoding: [0x62,0xf2,0xed,0x5a,0x64,0x94,0x82,0x10,0xe3,0x0f,0xe3]
vpblendmq -485498096(%edx,%eax,4){1to8}, %zmm2, %zmm2 {%k2}
// CHECK: vpblendmq -485498096(%edx,%eax,4){1to8}, %zmm2, %zmm2 {%k2} {z}
// CHECK: encoding: [0x62,0xf2,0xed,0xda,0x64,0x94,0x82,0x10,0xe3,0x0f,0xe3]
vpblendmq -485498096(%edx,%eax,4){1to8}, %zmm2, %zmm2 {%k2} {z}
// CHECK: vpblendmq 485498096(%edx,%eax,4){1to8}, %zmm2, %zmm2 {%k2}
// CHECK: encoding: [0x62,0xf2,0xed,0x5a,0x64,0x94,0x82,0xf0,0x1c,0xf0,0x1c]
vpblendmq 485498096(%edx,%eax,4){1to8}, %zmm2, %zmm2 {%k2}
// CHECK: vpblendmq 485498096(%edx,%eax,4){1to8}, %zmm2, %zmm2 {%k2} {z}
// CHECK: encoding: [0x62,0xf2,0xed,0xda,0x64,0x94,0x82,0xf0,0x1c,0xf0,0x1c]
vpblendmq 485498096(%edx,%eax,4){1to8}, %zmm2, %zmm2 {%k2} {z}
// CHECK: vpblendmq -485498096(%edx,%eax,4), %zmm2, %zmm2
// CHECK: encoding: [0x62,0xf2,0xed,0x48,0x64,0x94,0x82,0x10,0xe3,0x0f,0xe3]
vpblendmq -485498096(%edx,%eax,4), %zmm2, %zmm2
@ -17848,6 +17932,10 @@ vpblendmq 512(%edx,%eax){1to8}, %zmm2, %zmm2
// CHECK: encoding: [0x62,0xf2,0xed,0x5a,0x64,0x54,0x02,0x40]
vpblendmq 512(%edx,%eax){1to8}, %zmm2, %zmm2 {%k2}
// CHECK: vpblendmq 512(%edx,%eax){1to8}, %zmm2, %zmm2 {%k2} {z}
// CHECK: encoding: [0x62,0xf2,0xed,0xda,0x64,0x54,0x02,0x40]
vpblendmq 512(%edx,%eax){1to8}, %zmm2, %zmm2 {%k2} {z}
// CHECK: vpblendmq (%edx){1to8}, %zmm2, %zmm2
// CHECK: encoding: [0x62,0xf2,0xed,0x58,0x64,0x12]
vpblendmq (%edx){1to8}, %zmm2, %zmm2
@ -17856,6 +17944,10 @@ vpblendmq (%edx){1to8}, %zmm2, %zmm2
// CHECK: encoding: [0x62,0xf2,0xed,0x5a,0x64,0x12]
vpblendmq (%edx){1to8}, %zmm2, %zmm2 {%k2}
// CHECK: vpblendmq (%edx){1to8}, %zmm2, %zmm2 {%k2} {z}
// CHECK: encoding: [0x62,0xf2,0xed,0xda,0x64,0x12]
vpblendmq (%edx){1to8}, %zmm2, %zmm2 {%k2} {z}
// CHECK: vpblendmq (%edx), %zmm2, %zmm2
// CHECK: encoding: [0x62,0xf2,0xed,0x48,0x64,0x12]
vpblendmq (%edx), %zmm2, %zmm2

View File

@ -776,6 +776,10 @@ vblendmpd 485498096{1to8}, %zmm19, %zmm19
// CHECK: encoding: [0x62,0xe2,0xe5,0x52,0x65,0x1c,0x25,0xf0,0x1c,0xf0,0x1c]
vblendmpd 485498096{1to8}, %zmm19, %zmm19 {%k2}
// CHECK: vblendmpd 485498096{1to8}, %zmm19, %zmm19 {%k2} {z}
// CHECK: encoding: [0x62,0xe2,0xe5,0xd2,0x65,0x1c,0x25,0xf0,0x1c,0xf0,0x1c]
vblendmpd 485498096{1to8}, %zmm19, %zmm19 {%k2} {z}
// CHECK: vblendmpd 485498096, %zmm19, %zmm19
// CHECK: encoding: [0x62,0xe2,0xe5,0x40,0x65,0x1c,0x25,0xf0,0x1c,0xf0,0x1c]
vblendmpd 485498096, %zmm19, %zmm19
@ -796,6 +800,10 @@ vblendmpd 512(%rdx){1to8}, %zmm19, %zmm19
// CHECK: encoding: [0x62,0xe2,0xe5,0x52,0x65,0x5a,0x40]
vblendmpd 512(%rdx){1to8}, %zmm19, %zmm19 {%k2}
// CHECK: vblendmpd 512(%rdx){1to8}, %zmm19, %zmm19 {%k2} {z}
// CHECK: encoding: [0x62,0xe2,0xe5,0xd2,0x65,0x5a,0x40]
vblendmpd 512(%rdx){1to8}, %zmm19, %zmm19 {%k2} {z}
// CHECK: vblendmpd 512(%rdx,%rax){1to8}, %zmm19, %zmm19
// CHECK: encoding: [0x62,0xe2,0xe5,0x50,0x65,0x5c,0x02,0x40]
vblendmpd 512(%rdx,%rax){1to8}, %zmm19, %zmm19
@ -804,6 +812,10 @@ vblendmpd 512(%rdx,%rax){1to8}, %zmm19, %zmm19
// CHECK: encoding: [0x62,0xe2,0xe5,0x52,0x65,0x5c,0x02,0x40]
vblendmpd 512(%rdx,%rax){1to8}, %zmm19, %zmm19 {%k2}
// CHECK: vblendmpd 512(%rdx,%rax){1to8}, %zmm19, %zmm19 {%k2} {z}
// CHECK: encoding: [0x62,0xe2,0xe5,0xd2,0x65,0x5c,0x02,0x40]
vblendmpd 512(%rdx,%rax){1to8}, %zmm19, %zmm19 {%k2} {z}
// CHECK: vblendmpd 512(%rdx,%rax,4){1to8}, %zmm19, %zmm19
// CHECK: encoding: [0x62,0xe2,0xe5,0x50,0x65,0x5c,0x82,0x40]
vblendmpd 512(%rdx,%rax,4){1to8}, %zmm19, %zmm19
@ -816,10 +828,18 @@ vblendmpd -512(%rdx,%rax,4){1to8}, %zmm19, %zmm19
// CHECK: encoding: [0x62,0xe2,0xe5,0x52,0x65,0x5c,0x82,0x40]
vblendmpd 512(%rdx,%rax,4){1to8}, %zmm19, %zmm19 {%k2}
// CHECK: vblendmpd 512(%rdx,%rax,4){1to8}, %zmm19, %zmm19 {%k2} {z}
// CHECK: encoding: [0x62,0xe2,0xe5,0xd2,0x65,0x5c,0x82,0x40]
vblendmpd 512(%rdx,%rax,4){1to8}, %zmm19, %zmm19 {%k2} {z}
// CHECK: vblendmpd -512(%rdx,%rax,4){1to8}, %zmm19, %zmm19 {%k2}
// CHECK: encoding: [0x62,0xe2,0xe5,0x52,0x65,0x5c,0x82,0xc0]
vblendmpd -512(%rdx,%rax,4){1to8}, %zmm19, %zmm19 {%k2}
// CHECK: vblendmpd -512(%rdx,%rax,4){1to8}, %zmm19, %zmm19 {%k2} {z}
// CHECK: encoding: [0x62,0xe2,0xe5,0xd2,0x65,0x5c,0x82,0xc0]
vblendmpd -512(%rdx,%rax,4){1to8}, %zmm19, %zmm19 {%k2} {z}
// CHECK: vblendmpd (%rdx){1to8}, %zmm19, %zmm19
// CHECK: encoding: [0x62,0xe2,0xe5,0x50,0x65,0x1a]
vblendmpd (%rdx){1to8}, %zmm19, %zmm19
@ -828,6 +848,10 @@ vblendmpd (%rdx){1to8}, %zmm19, %zmm19
// CHECK: encoding: [0x62,0xe2,0xe5,0x52,0x65,0x1a]
vblendmpd (%rdx){1to8}, %zmm19, %zmm19 {%k2}
// CHECK: vblendmpd (%rdx){1to8}, %zmm19, %zmm19 {%k2} {z}
// CHECK: encoding: [0x62,0xe2,0xe5,0xd2,0x65,0x1a]
vblendmpd (%rdx){1to8}, %zmm19, %zmm19 {%k2} {z}
// CHECK: vblendmpd (%rdx), %zmm19, %zmm19
// CHECK: encoding: [0x62,0xe2,0xe5,0x40,0x65,0x1a]
vblendmpd (%rdx), %zmm19, %zmm19
@ -860,6 +884,10 @@ vblendmps 256(%rdx){1to16}, %zmm19, %zmm19
// CHECK: encoding: [0x62,0xe2,0x65,0x52,0x65,0x5a,0x40]
vblendmps 256(%rdx){1to16}, %zmm19, %zmm19 {%k2}
// CHECK: vblendmps 256(%rdx){1to16}, %zmm19, %zmm19 {%k2} {z}
// CHECK: encoding: [0x62,0xe2,0x65,0xd2,0x65,0x5a,0x40]
vblendmps 256(%rdx){1to16}, %zmm19, %zmm19 {%k2} {z}
// CHECK: vblendmps 256(%rdx,%rax){1to16}, %zmm19, %zmm19
// CHECK: encoding: [0x62,0xe2,0x65,0x50,0x65,0x5c,0x02,0x40]
vblendmps 256(%rdx,%rax){1to16}, %zmm19, %zmm19
@ -868,6 +896,10 @@ vblendmps 256(%rdx,%rax){1to16}, %zmm19, %zmm19
// CHECK: encoding: [0x62,0xe2,0x65,0x52,0x65,0x5c,0x02,0x40]
vblendmps 256(%rdx,%rax){1to16}, %zmm19, %zmm19 {%k2}
// CHECK: vblendmps 256(%rdx,%rax){1to16}, %zmm19, %zmm19 {%k2} {z}
// CHECK: encoding: [0x62,0xe2,0x65,0xd2,0x65,0x5c,0x02,0x40]
vblendmps 256(%rdx,%rax){1to16}, %zmm19, %zmm19 {%k2} {z}
// CHECK: vblendmps 256(%rdx,%rax,4){1to16}, %zmm19, %zmm19
// CHECK: encoding: [0x62,0xe2,0x65,0x50,0x65,0x5c,0x82,0x40]
vblendmps 256(%rdx,%rax,4){1to16}, %zmm19, %zmm19
@ -880,10 +912,18 @@ vblendmps -256(%rdx,%rax,4){1to16}, %zmm19, %zmm19
// CHECK: encoding: [0x62,0xe2,0x65,0x52,0x65,0x5c,0x82,0x40]
vblendmps 256(%rdx,%rax,4){1to16}, %zmm19, %zmm19 {%k2}
// CHECK: vblendmps 256(%rdx,%rax,4){1to16}, %zmm19, %zmm19 {%k2} {z}
// CHECK: encoding: [0x62,0xe2,0x65,0xd2,0x65,0x5c,0x82,0x40]
vblendmps 256(%rdx,%rax,4){1to16}, %zmm19, %zmm19 {%k2} {z}
// CHECK: vblendmps -256(%rdx,%rax,4){1to16}, %zmm19, %zmm19 {%k2}
// CHECK: encoding: [0x62,0xe2,0x65,0x52,0x65,0x5c,0x82,0xc0]
vblendmps -256(%rdx,%rax,4){1to16}, %zmm19, %zmm19 {%k2}
// CHECK: vblendmps -256(%rdx,%rax,4){1to16}, %zmm19, %zmm19 {%k2} {z}
// CHECK: encoding: [0x62,0xe2,0x65,0xd2,0x65,0x5c,0x82,0xc0]
vblendmps -256(%rdx,%rax,4){1to16}, %zmm19, %zmm19 {%k2} {z}
// CHECK: vblendmps 4096(%rdx,%rax,4), %zmm19, %zmm19
// CHECK: encoding: [0x62,0xe2,0x65,0x40,0x65,0x5c,0x82,0x40]
vblendmps 4096(%rdx,%rax,4), %zmm19, %zmm19
@ -940,6 +980,10 @@ vblendmps 485498096{1to16}, %zmm19, %zmm19
// CHECK: encoding: [0x62,0xe2,0x65,0x52,0x65,0x1c,0x25,0xf0,0x1c,0xf0,0x1c]
vblendmps 485498096{1to16}, %zmm19, %zmm19 {%k2}
// CHECK: vblendmps 485498096{1to16}, %zmm19, %zmm19 {%k2} {z}
// CHECK: encoding: [0x62,0xe2,0x65,0xd2,0x65,0x1c,0x25,0xf0,0x1c,0xf0,0x1c]
vblendmps 485498096{1to16}, %zmm19, %zmm19 {%k2} {z}
// CHECK: vblendmps 485498096, %zmm19, %zmm19
// CHECK: encoding: [0x62,0xe2,0x65,0x40,0x65,0x1c,0x25,0xf0,0x1c,0xf0,0x1c]
vblendmps 485498096, %zmm19, %zmm19
@ -960,6 +1004,10 @@ vblendmps (%rdx){1to16}, %zmm19, %zmm19
// CHECK: encoding: [0x62,0xe2,0x65,0x52,0x65,0x1a]
vblendmps (%rdx){1to16}, %zmm19, %zmm19 {%k2}
// CHECK: vblendmps (%rdx){1to16}, %zmm19, %zmm19 {%k2} {z}
// CHECK: encoding: [0x62,0xe2,0x65,0xd2,0x65,0x1a]
vblendmps (%rdx){1to16}, %zmm19, %zmm19 {%k2} {z}
// CHECK: vblendmps (%rdx), %zmm19, %zmm19
// CHECK: encoding: [0x62,0xe2,0x65,0x40,0x65,0x1a]
vblendmps (%rdx), %zmm19, %zmm19
@ -17988,6 +18036,10 @@ vpblendmd 256(%rdx){1to16}, %zmm19, %zmm19
// CHECK: encoding: [0x62,0xe2,0x65,0x52,0x64,0x5a,0x40]
vpblendmd 256(%rdx){1to16}, %zmm19, %zmm19 {%k2}
// CHECK: vpblendmd 256(%rdx){1to16}, %zmm19, %zmm19 {%k2} {z}
// CHECK: encoding: [0x62,0xe2,0x65,0xd2,0x64,0x5a,0x40]
vpblendmd 256(%rdx){1to16}, %zmm19, %zmm19 {%k2} {z}
// CHECK: vpblendmd 256(%rdx,%rax){1to16}, %zmm19, %zmm19
// CHECK: encoding: [0x62,0xe2,0x65,0x50,0x64,0x5c,0x02,0x40]
vpblendmd 256(%rdx,%rax){1to16}, %zmm19, %zmm19
@ -17996,6 +18048,10 @@ vpblendmd 256(%rdx,%rax){1to16}, %zmm19, %zmm19
// CHECK: encoding: [0x62,0xe2,0x65,0x52,0x64,0x5c,0x02,0x40]
vpblendmd 256(%rdx,%rax){1to16}, %zmm19, %zmm19 {%k2}
// CHECK: vpblendmd 256(%rdx,%rax){1to16}, %zmm19, %zmm19 {%k2} {z}
// CHECK: encoding: [0x62,0xe2,0x65,0xd2,0x64,0x5c,0x02,0x40]
vpblendmd 256(%rdx,%rax){1to16}, %zmm19, %zmm19 {%k2} {z}
// CHECK: vpblendmd 256(%rdx,%rax,4){1to16}, %zmm19, %zmm19
// CHECK: encoding: [0x62,0xe2,0x65,0x50,0x64,0x5c,0x82,0x40]
vpblendmd 256(%rdx,%rax,4){1to16}, %zmm19, %zmm19
@ -18008,10 +18064,18 @@ vpblendmd -256(%rdx,%rax,4){1to16}, %zmm19, %zmm19
// CHECK: encoding: [0x62,0xe2,0x65,0x52,0x64,0x5c,0x82,0x40]
vpblendmd 256(%rdx,%rax,4){1to16}, %zmm19, %zmm19 {%k2}
// CHECK: vpblendmd 256(%rdx,%rax,4){1to16}, %zmm19, %zmm19 {%k2} {z}
// CHECK: encoding: [0x62,0xe2,0x65,0xd2,0x64,0x5c,0x82,0x40]
vpblendmd 256(%rdx,%rax,4){1to16}, %zmm19, %zmm19 {%k2} {z}
// CHECK: vpblendmd -256(%rdx,%rax,4){1to16}, %zmm19, %zmm19 {%k2}
// CHECK: encoding: [0x62,0xe2,0x65,0x52,0x64,0x5c,0x82,0xc0]
vpblendmd -256(%rdx,%rax,4){1to16}, %zmm19, %zmm19 {%k2}
// CHECK: vpblendmd -256(%rdx,%rax,4){1to16}, %zmm19, %zmm19 {%k2} {z}
// CHECK: encoding: [0x62,0xe2,0x65,0xd2,0x64,0x5c,0x82,0xc0]
vpblendmd -256(%rdx,%rax,4){1to16}, %zmm19, %zmm19 {%k2} {z}
// CHECK: vpblendmd 4096(%rdx,%rax,4), %zmm19, %zmm19
// CHECK: encoding: [0x62,0xe2,0x65,0x40,0x64,0x5c,0x82,0x40]
vpblendmd 4096(%rdx,%rax,4), %zmm19, %zmm19
@ -18068,6 +18132,10 @@ vpblendmd 485498096{1to16}, %zmm19, %zmm19
// CHECK: encoding: [0x62,0xe2,0x65,0x52,0x64,0x1c,0x25,0xf0,0x1c,0xf0,0x1c]
vpblendmd 485498096{1to16}, %zmm19, %zmm19 {%k2}
// CHECK: vpblendmd 485498096{1to16}, %zmm19, %zmm19 {%k2} {z}
// CHECK: encoding: [0x62,0xe2,0x65,0xd2,0x64,0x1c,0x25,0xf0,0x1c,0xf0,0x1c]
vpblendmd 485498096{1to16}, %zmm19, %zmm19 {%k2} {z}
// CHECK: vpblendmd 485498096, %zmm19, %zmm19
// CHECK: encoding: [0x62,0xe2,0x65,0x40,0x64,0x1c,0x25,0xf0,0x1c,0xf0,0x1c]
vpblendmd 485498096, %zmm19, %zmm19
@ -18088,6 +18156,10 @@ vpblendmd (%rdx){1to16}, %zmm19, %zmm19
// CHECK: encoding: [0x62,0xe2,0x65,0x52,0x64,0x1a]
vpblendmd (%rdx){1to16}, %zmm19, %zmm19 {%k2}
// CHECK: vpblendmd (%rdx){1to16}, %zmm19, %zmm19 {%k2} {z}
// CHECK: encoding: [0x62,0xe2,0x65,0xd2,0x64,0x1a]
vpblendmd (%rdx){1to16}, %zmm19, %zmm19 {%k2} {z}
// CHECK: vpblendmd (%rdx), %zmm19, %zmm19
// CHECK: encoding: [0x62,0xe2,0x65,0x40,0x64,0x1a]
vpblendmd (%rdx), %zmm19, %zmm19
@ -18168,6 +18240,10 @@ vpblendmq 485498096{1to8}, %zmm19, %zmm19
// CHECK: encoding: [0x62,0xe2,0xe5,0x52,0x64,0x1c,0x25,0xf0,0x1c,0xf0,0x1c]
vpblendmq 485498096{1to8}, %zmm19, %zmm19 {%k2}
// CHECK: vpblendmd (%rdx){1to16}, %zmm19, %zmm19 {%k2} {z}
// CHECK: encoding: [0x62,0xe2,0x65,0xd2,0x64,0x1a]
vpblendmd (%rdx){1to16}, %zmm19, %zmm19 {%k2} {z}
// CHECK: vpblendmq 485498096, %zmm19, %zmm19
// CHECK: encoding: [0x62,0xe2,0xe5,0x40,0x64,0x1c,0x25,0xf0,0x1c,0xf0,0x1c]
vpblendmq 485498096, %zmm19, %zmm19
@ -18188,6 +18264,10 @@ vpblendmq 512(%rdx){1to8}, %zmm19, %zmm19
// CHECK: encoding: [0x62,0xe2,0xe5,0x52,0x64,0x5a,0x40]
vpblendmq 512(%rdx){1to8}, %zmm19, %zmm19 {%k2}
// CHECK: vpblendmq 512(%rdx){1to8}, %zmm19, %zmm19 {%k2} {z}
// CHECK: encoding: [0x62,0xe2,0xe5,0xd2,0x64,0x5a,0x40]
vpblendmq 512(%rdx){1to8}, %zmm19, %zmm19 {%k2} {z}
// CHECK: vpblendmq 512(%rdx,%rax){1to8}, %zmm19, %zmm19
// CHECK: encoding: [0x62,0xe2,0xe5,0x50,0x64,0x5c,0x02,0x40]
vpblendmq 512(%rdx,%rax){1to8}, %zmm19, %zmm19
@ -18196,6 +18276,10 @@ vpblendmq 512(%rdx,%rax){1to8}, %zmm19, %zmm19
// CHECK: encoding: [0x62,0xe2,0xe5,0x52,0x64,0x5c,0x02,0x40]
vpblendmq 512(%rdx,%rax){1to8}, %zmm19, %zmm19 {%k2}
// CHECK: vpblendmq 512(%rdx,%rax){1to8}, %zmm19, %zmm19 {%k2} {z}
// CHECK: encoding: [0x62,0xe2,0xe5,0xd2,0x64,0x5c,0x02,0x40]
vpblendmq 512(%rdx,%rax){1to8}, %zmm19, %zmm19 {%k2} {z}
// CHECK: vpblendmq 512(%rdx,%rax,4){1to8}, %zmm19, %zmm19
// CHECK: encoding: [0x62,0xe2,0xe5,0x50,0x64,0x5c,0x82,0x40]
vpblendmq 512(%rdx,%rax,4){1to8}, %zmm19, %zmm19
@ -18208,10 +18292,18 @@ vpblendmq -512(%rdx,%rax,4){1to8}, %zmm19, %zmm19
// CHECK: encoding: [0x62,0xe2,0xe5,0x52,0x64,0x5c,0x82,0x40]
vpblendmq 512(%rdx,%rax,4){1to8}, %zmm19, %zmm19 {%k2}
// CHECK: vpblendmq 512(%rdx,%rax,4){1to8}, %zmm19, %zmm19 {%k2} {z}
// CHECK: encoding: [0x62,0xe2,0xe5,0xd2,0x64,0x5c,0x82,0x40]
vpblendmq 512(%rdx,%rax,4){1to8}, %zmm19, %zmm19 {%k2} {z}
// CHECK: vpblendmq -512(%rdx,%rax,4){1to8}, %zmm19, %zmm19 {%k2}
// CHECK: encoding: [0x62,0xe2,0xe5,0x52,0x64,0x5c,0x82,0xc0]
vpblendmq -512(%rdx,%rax,4){1to8}, %zmm19, %zmm19 {%k2}
// CHECK: vpblendmq -512(%rdx,%rax,4){1to8}, %zmm19, %zmm19 {%k2} {z}
// CHECK: encoding: [0x62,0xe2,0xe5,0xd2,0x64,0x5c,0x82,0xc0]
vpblendmq -512(%rdx,%rax,4){1to8}, %zmm19, %zmm19 {%k2} {z}
// CHECK: vpblendmq (%rdx){1to8}, %zmm19, %zmm19
// CHECK: encoding: [0x62,0xe2,0xe5,0x50,0x64,0x1a]
vpblendmq (%rdx){1to8}, %zmm19, %zmm19