[X86] Add assembler/disassembler support for blendm with zero masking and broacast.
authorCraig Topper <craig.topper@intel.com>
Fri, 23 Feb 2018 20:48:44 +0000 (20:48 +0000)
committerCraig Topper <craig.topper@intel.com>
Fri, 23 Feb 2018 20:48:44 +0000 (20:48 +0000)
Fixes PR31617

llvm-svn: 325957

llvm/lib/Target/X86/X86InstrAVX512.td
llvm/test/MC/X86/AVX512F_512-32.s
llvm/test/MC/X86/AVX512F_512-64.s

index f24927f..2e6566f 100644 (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,
index fdab24f..eb9f771 100644 (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 
index 753b8b1..05f05a6 100644 (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