summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@intel.com>2018-02-23 20:48:44 +0000
committerCraig Topper <craig.topper@intel.com>2018-02-23 20:48:44 +0000
commit16b20245baf368e5bc699dca4992d42a9dcf744f (patch)
tree9fa36615e343a35b1e939faac4e5690846fc13f2
parent626b651016f84c911cfe07e52c69f57aeb700381 (diff)
downloadbcm5719-llvm-16b20245baf368e5bc699dca4992d42a9dcf744f.tar.gz
bcm5719-llvm-16b20245baf368e5bc699dca4992d42a9dcf744f.zip
[X86] Add assembler/disassembler support for blendm with zero masking and broacast.
Fixes PR31617 llvm-svn: 325957
-rw-r--r--llvm/lib/Target/X86/X86InstrAVX512.td8
-rw-r--r--llvm/test/MC/X86/AVX512F_512-32.s92
-rw-r--r--llvm/test/MC/X86/AVX512F_512-64.s92
3 files changed, 192 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86InstrAVX512.td b/llvm/lib/Target/X86/X86InstrAVX512.td
index f24927fb2a0..2e6566f6216 100644
--- a/llvm/lib/Target/X86/X86InstrAVX512.td
+++ b/llvm/lib/Target/X86/X86InstrAVX512.td
@@ -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,
diff --git a/llvm/test/MC/X86/AVX512F_512-32.s b/llvm/test/MC/X86/AVX512F_512-32.s
index fdab24f4c73..eb9f77133c2 100644
--- a/llvm/test/MC/X86/AVX512F_512-32.s
+++ b/llvm/test/MC/X86/AVX512F_512-32.s
@@ -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
diff --git a/llvm/test/MC/X86/AVX512F_512-64.s b/llvm/test/MC/X86/AVX512F_512-64.s
index 753b8b11157..05f05a657cb 100644
--- a/llvm/test/MC/X86/AVX512F_512-64.s
+++ b/llvm/test/MC/X86/AVX512F_512-64.s
@@ -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
OpenPOWER on IntegriCloud