[llvm] r359903 - [X86] Allow assembly parser to accept x/y/z suffixes on non-memory vfpclassps/pd and on memory forms in intel syntax
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Fri May 3 09:15:15 PDT 2019
Author: ctopper
Date: Fri May 3 09:15:15 2019
New Revision: 359903
URL: http://llvm.org/viewvc/llvm-project?rev=359903&view=rev
Log:
[X86] Allow assembly parser to accept x/y/z suffixes on non-memory vfpclassps/pd and on memory forms in intel syntax
The x/y/z suffix is needed to disambiguate the memory form in at&t syntax since no xmm/ymm/zmm register is mentioned.
But we should also allow it for the register and broadcast forms where its not needed for consistency. This matches gas.
The printing code will still only use the suffix for the memory form where it is needed.
Modified:
llvm/trunk/lib/Target/X86/X86InstrAVX512.td
llvm/trunk/test/MC/X86/intel-syntax-x86-avx512dq_vl.s
llvm/trunk/test/MC/X86/x86-64-avx512dq.s
llvm/trunk/test/MC/X86/x86-64-avx512dq_vl.s
Modified: llvm/trunk/lib/Target/X86/X86InstrAVX512.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrAVX512.td?rev=359903&r1=359902&r2=359903&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86InstrAVX512.td (original)
+++ llvm/trunk/lib/Target/X86/X86InstrAVX512.td Fri May 3 09:15:15 2019
@@ -2669,7 +2669,7 @@ multiclass avx512_vector_fpclass<bits<8>
EVEX_K, Sched<[sched]>;
def rm : AVX512<opc, MRMSrcMem, (outs _.KRC:$dst),
(ins _.MemOp:$src1, i32u8imm:$src2),
- OpcodeStr##_.Suffix##mem#
+ OpcodeStr##_.Suffix#"{"#mem#"}"#
"\t{$src2, $src1, $dst|$dst, $src1, $src2}",
[(set _.KRC:$dst,(X86Vfpclass
(_.VT (_.LdFrag addr:$src1)),
@@ -2677,7 +2677,7 @@ multiclass avx512_vector_fpclass<bits<8>
Sched<[sched.Folded, sched.ReadAfterFold]>;
def rmk : AVX512<opc, MRMSrcMem, (outs _.KRC:$dst),
(ins _.KRCWM:$mask, _.MemOp:$src1, i32u8imm:$src2),
- OpcodeStr##_.Suffix##mem#
+ OpcodeStr##_.Suffix#"{"#mem#"}"#
"\t{$src2, $src1, $dst {${mask}}|$dst {${mask}}, $src1, $src2}",
[(set _.KRC:$dst, (and _.KRCWM:$mask, (X86Vfpclass_su
(_.VT (_.LdFrag addr:$src1)),
@@ -2704,6 +2704,27 @@ multiclass avx512_vector_fpclass<bits<8>
(i32 imm:$src2))))]>,
EVEX_B, EVEX_K, Sched<[sched.Folded, sched.ReadAfterFold]>;
}
+
+ // Allow registers or broadcast with the x, y, z suffix we use to disambiguate
+ // the memory form.
+ def : InstAlias<OpcodeStr#_.Suffix#mem#
+ "\t{$src2, $src1, $dst|$dst, $src1, $src2}",
+ (!cast<Instruction>(NAME#"rr")
+ _.KRC:$dst, _.RC:$src1, i32u8imm:$src2), 0, "att">;
+ def : InstAlias<OpcodeStr#_.Suffix#mem#
+ "\t{$src2, $src1, $dst {${mask}}|$dst {${mask}}, $src1, $src2}",
+ (!cast<Instruction>(NAME#"rrk")
+ _.KRC:$dst, _.KRCWM:$mask, _.RC:$src1, i32u8imm:$src2), 0, "att">;
+ def : InstAlias<OpcodeStr#_.Suffix#mem#
+ "\t{$src2, ${src1}"#_.BroadcastStr#", $dst|$dst, ${src1}"#
+ _.BroadcastStr#", $src2}",
+ (!cast<Instruction>(NAME#"rmb")
+ _.KRC:$dst, _.ScalarMemOp:$src1, i32u8imm:$src2), 0, "att">;
+ def : InstAlias<OpcodeStr#_.Suffix#mem#
+ "\t{$src2, ${src1}"#_.BroadcastStr#", $dst {${mask}}|"
+ "$dst {${mask}}, ${src1}"#_.BroadcastStr#", $src2}",
+ (!cast<Instruction>(NAME#"rmbk")
+ _.KRC:$dst, _.KRCWM:$mask, _.ScalarMemOp:$src1, i32u8imm:$src2), 0, "att">;
}
multiclass avx512_vector_fpclass_all<string OpcodeStr, AVX512VLVectorVTInfo _,
@@ -2711,13 +2732,13 @@ multiclass avx512_vector_fpclass_all<str
Predicate prd>{
let Predicates = [prd] in {
defm Z : avx512_vector_fpclass<opc, OpcodeStr, sched.ZMM,
- _.info512, "{z}">, EVEX_V512;
+ _.info512, "z">, EVEX_V512;
}
let Predicates = [prd, HasVLX] in {
defm Z128 : avx512_vector_fpclass<opc, OpcodeStr, sched.XMM,
- _.info128, "{x}">, EVEX_V128;
+ _.info128, "x">, EVEX_V128;
defm Z256 : avx512_vector_fpclass<opc, OpcodeStr, sched.YMM,
- _.info256, "{y}">, EVEX_V256;
+ _.info256, "y">, EVEX_V256;
}
}
Modified: llvm/trunk/test/MC/X86/intel-syntax-x86-avx512dq_vl.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/X86/intel-syntax-x86-avx512dq_vl.s?rev=359903&r1=359902&r2=359903&view=diff
==============================================================================
--- llvm/trunk/test/MC/X86/intel-syntax-x86-avx512dq_vl.s (original)
+++ llvm/trunk/test/MC/X86/intel-syntax-x86-avx512dq_vl.s Fri May 3 09:15:15 2019
@@ -95,3 +95,99 @@
// CHECK: vcvttps2uqq xmm1, qword ptr [rcx + 128]
// CHECK: encoding: [0x62,0xf1,0x7d,0x08,0x78,0x49,0x10]
vcvttps2uqq xmm1, qword ptr [rcx + 128]
+
+// CHECK: vfpclasspd k2, xmm18, 171
+// CHECK: encoding: [0x62,0xb3,0xfd,0x08,0x66,0xd2,0xab]
+ vfpclasspd k2, xmm18, 0xab
+
+// CHECK: vfpclasspd k2 {k7}, xmm18, 171
+// CHECK: encoding: [0x62,0xb3,0xfd,0x0f,0x66,0xd2,0xab]
+ vfpclasspd k2 {k7}, xmm18, 0xab
+
+// CHECK: vfpclasspd k2, xmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x08,0x66,0x11,0x7b]
+ vfpclasspd k2, xmmword ptr [rcx], 0x7b
+
+// CHECK: vfpclasspd k2 {k7}, xmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x0f,0x66,0x11,0x7b]
+ vfpclasspd k2 {k7}, xmmword ptr [rcx], 0x7b
+
+// CHECK: vfpclasspd k2, qword ptr [rcx]{1to2}, 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x18,0x66,0x11,0x7b]
+ vfpclasspd k2, qword ptr [rcx]{1to2}, 0x7b
+
+// CHECK: vfpclasspd k2 {k7}, qword ptr [rcx]{1to2}, 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x1f,0x66,0x11,0x7b]
+ vfpclasspd k2 {k7}, qword ptr [rcx]{1to2}, 0x7b
+
+// CHECK: vfpclassps k2, xmm18, 171
+// CHECK: encoding: [0x62,0xb3,0x7d,0x08,0x66,0xd2,0xab]
+ vfpclassps k2, xmm18, 0xab
+
+// CHECK: vfpclassps k2 {k7}, xmm18, 171
+// CHECK: encoding: [0x62,0xb3,0x7d,0x0f,0x66,0xd2,0xab]
+ vfpclassps k2 {k7}, xmm18, 0xab
+
+// CHECK: vfpclassps k2, xmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf3,0x7d,0x08,0x66,0x11,0x7b]
+ vfpclassps k2, xmmword ptr [rcx], 0x7b
+
+// CHECK: vfpclassps k2 {k7}, xmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf3,0x7d,0x0f,0x66,0x11,0x7b]
+ vfpclassps k2 {k7}, xmmword ptr [rcx], 0x7b
+
+// CHECK: vfpclassps k2, dword ptr [rcx]{1to4}, 123
+// CHECK: encoding: [0x62,0xf3,0x7d,0x18,0x66,0x11,0x7b]
+ vfpclassps k2, dword ptr [rcx]{1to4}, 0x7b
+
+// CHECK: vfpclassps k2 {k7}, dword ptr [rcx]{1to4}, 123
+// CHECK: encoding: [0x62,0xf3,0x7d,0x1f,0x66,0x11,0x7b]
+ vfpclassps k2 {k7}, dword ptr [rcx]{1to4}, 0x7b
+
+// CHECK: vfpclasspd k2, ymm18, 171
+// CHECK: encoding: [0x62,0xb3,0xfd,0x28,0x66,0xd2,0xab]
+ vfpclasspd k2, ymm18, 0xab
+
+// CHECK: vfpclasspd k2 {k7}, ymm18, 171
+// CHECK: encoding: [0x62,0xb3,0xfd,0x2f,0x66,0xd2,0xab]
+ vfpclasspd k2 {k7}, ymm18, 0xab
+
+// CHECK: vfpclasspd k2, ymmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x28,0x66,0x11,0x7b]
+ vfpclasspd k2, ymmword ptr [rcx], 0x7b
+
+// CHECK: vfpclasspd k2 {k7}, ymmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x2f,0x66,0x11,0x7b]
+ vfpclasspd k2 {k7}, ymmword ptr [rcx], 0x7b
+
+// CHECK: vfpclasspd k2, qword ptr [rcx]{1to4}, 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x38,0x66,0x11,0x7b]
+ vfpclasspd k2, qword ptr [rcx]{1to4}, 0x7b
+
+// CHECK: vfpclasspd k2 {k7}, qword ptr [rcx]{1to4}, 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x3f,0x66,0x11,0x7b]
+ vfpclasspd k2 {k7}, qword ptr [rcx]{1to4}, 0x7b
+
+// CHECK: vfpclassps k2, ymm18, 171
+// CHECK: encoding: [0x62,0xb3,0x7d,0x28,0x66,0xd2,0xab]
+ vfpclassps k2, ymm18, 0xab
+
+// CHECK: vfpclassps k2 {k7}, ymm18, 171
+// CHECK: encoding: [0x62,0xb3,0x7d,0x2f,0x66,0xd2,0xab]
+ vfpclassps k2 {k7}, ymm18, 0xab
+
+// CHECK: vfpclassps k2, ymmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf3,0x7d,0x28,0x66,0x11,0x7b]
+ vfpclassps k2, ymmword ptr [rcx], 0x7b
+
+// CHECK: vfpclassps k2 {k7}, ymmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf3,0x7d,0x2f,0x66,0x11,0x7b]
+ vfpclassps k2 {k7}, ymmword ptr [rcx], 0x7b
+
+// CHECK: vfpclassps k2, dword ptr [rcx]{1to8}, 123
+// CHECK: encoding: [0x62,0xf3,0x7d,0x38,0x66,0x11,0x7b]
+ vfpclassps k2, dword ptr [rcx]{1to8}, 0x7b
+
+// CHECK: vfpclassps k2 {k7}, dword ptr [rcx]{1to8}, 123
+// CHECK: encoding: [0x62,0xf3,0x7d,0x3f,0x66,0x11,0x7b]
+ vfpclassps k2 {k7}, dword ptr [rcx]{1to8}, 0x7b
Modified: llvm/trunk/test/MC/X86/x86-64-avx512dq.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/X86/x86-64-avx512dq.s?rev=359903&r1=359902&r2=359903&view=diff
==============================================================================
--- llvm/trunk/test/MC/X86/x86-64-avx512dq.s (original)
+++ llvm/trunk/test/MC/X86/x86-64-avx512dq.s Fri May 3 09:15:15 2019
@@ -3495,14 +3495,26 @@
// CHECK: encoding: [0x62,0xb3,0xfd,0x48,0x66,0xd1,0xab]
vfpclasspd $0xab, %zmm17, %k2
+// CHECK: vfpclasspd $171, %zmm17, %k2
+// CHECK: encoding: [0x62,0xb3,0xfd,0x48,0x66,0xd1,0xab]
+ vfpclasspdz $0xab, %zmm17, %k2
+
// CHECK: vfpclasspd $171, %zmm17, %k2 {%k1}
// CHECK: encoding: [0x62,0xb3,0xfd,0x49,0x66,0xd1,0xab]
vfpclasspd $0xab, %zmm17, %k2 {%k1}
+// CHECK: vfpclasspd $171, %zmm17, %k2 {%k1}
+// CHECK: encoding: [0x62,0xb3,0xfd,0x49,0x66,0xd1,0xab]
+ vfpclasspdz $0xab, %zmm17, %k2 {%k1}
+
// CHECK: vfpclasspd $123, %zmm17, %k2
// CHECK: encoding: [0x62,0xb3,0xfd,0x48,0x66,0xd1,0x7b]
vfpclasspd $0x7b, %zmm17, %k2
+// CHECK: vfpclasspd $123, %zmm17, %k2
+// CHECK: encoding: [0x62,0xb3,0xfd,0x48,0x66,0xd1,0x7b]
+ vfpclasspdz $0x7b, %zmm17, %k2
+
// CHECK: vfpclasspdz $123, (%rcx), %k2
// CHECK: encoding: [0x62,0xf3,0xfd,0x48,0x66,0x11,0x7b]
vfpclasspdz $0x7b,(%rcx), %k2
@@ -3535,30 +3547,58 @@
// CHECK: encoding: [0x62,0xf3,0xfd,0x58,0x66,0x52,0x7f,0x7b]
vfpclasspd $0x7b,1016(%rdx){1to8}, %k2
+// CHECK: vfpclasspd $123, 1016(%rdx){1to8}, %k2
+// CHECK: encoding: [0x62,0xf3,0xfd,0x58,0x66,0x52,0x7f,0x7b]
+ vfpclasspdz $0x7b,1016(%rdx){1to8}, %k2
+
// CHECK: vfpclasspd $123, 1024(%rdx){1to8}, %k2
// CHECK: encoding: [0x62,0xf3,0xfd,0x58,0x66,0x92,0x00,0x04,0x00,0x00,0x7b]
vfpclasspd $0x7b,1024(%rdx){1to8}, %k2
+// CHECK: vfpclasspd $123, 1024(%rdx){1to8}, %k2
+// CHECK: encoding: [0x62,0xf3,0xfd,0x58,0x66,0x92,0x00,0x04,0x00,0x00,0x7b]
+ vfpclasspdz $0x7b,1024(%rdx){1to8}, %k2
+
// CHECK: vfpclasspd $123, -1024(%rdx){1to8}, %k2
// CHECK: encoding: [0x62,0xf3,0xfd,0x58,0x66,0x52,0x80,0x7b]
vfpclasspd $0x7b,-1024(%rdx){1to8}, %k2
+// CHECK: vfpclasspd $123, -1024(%rdx){1to8}, %k2
+// CHECK: encoding: [0x62,0xf3,0xfd,0x58,0x66,0x52,0x80,0x7b]
+ vfpclasspdz $0x7b,-1024(%rdx){1to8}, %k2
+
// CHECK: vfpclasspd $123, -1032(%rdx){1to8}, %k2
// CHECK: encoding: [0x62,0xf3,0xfd,0x58,0x66,0x92,0xf8,0xfb,0xff,0xff,0x7b]
vfpclasspd $0x7b,-1032(%rdx){1to8}, %k2
+// CHECK: vfpclasspd $123, -1032(%rdx){1to8}, %k2
+// CHECK: encoding: [0x62,0xf3,0xfd,0x58,0x66,0x92,0xf8,0xfb,0xff,0xff,0x7b]
+ vfpclasspdz $0x7b,-1032(%rdx){1to8}, %k2
+
// CHECK: vfpclassps $171, %zmm21, %k2
// CHECK: encoding: [0x62,0xb3,0x7d,0x48,0x66,0xd5,0xab]
vfpclassps $0xab, %zmm21, %k2
+// CHECK: vfpclassps $171, %zmm21, %k2
+// CHECK: encoding: [0x62,0xb3,0x7d,0x48,0x66,0xd5,0xab]
+ vfpclasspsz $0xab, %zmm21, %k2
+
// CHECK: vfpclassps $171, %zmm21, %k2 {%k2}
// CHECK: encoding: [0x62,0xb3,0x7d,0x4a,0x66,0xd5,0xab]
vfpclassps $0xab, %zmm21, %k2 {%k2}
+// CHECK: vfpclassps $171, %zmm21, %k2 {%k2}
+// CHECK: encoding: [0x62,0xb3,0x7d,0x4a,0x66,0xd5,0xab]
+ vfpclasspsz $0xab, %zmm21, %k2 {%k2}
+
// CHECK: vfpclassps $123, %zmm21, %k2
// CHECK: encoding: [0x62,0xb3,0x7d,0x48,0x66,0xd5,0x7b]
vfpclassps $0x7b, %zmm21, %k2
+// CHECK: vfpclassps $123, %zmm21, %k2
+// CHECK: encoding: [0x62,0xb3,0x7d,0x48,0x66,0xd5,0x7b]
+ vfpclasspsz $0x7b, %zmm21, %k2
+
// CHECK: vfpclasspsz $123, (%rcx), %k2
// CHECK: encoding: [0x62,0xf3,0x7d,0x48,0x66,0x11,0x7b]
vfpclasspsz $0x7b,(%rcx), %k2
@@ -3571,6 +3611,10 @@
// CHECK: encoding: [0x62,0xf3,0x7d,0x58,0x66,0x11,0x7b]
vfpclassps $0x7b,(%rcx){1to16}, %k2
+// CHECK: vfpclassps $123, (%rcx){1to16}, %k2
+// CHECK: encoding: [0x62,0xf3,0x7d,0x58,0x66,0x11,0x7b]
+ vfpclasspsz $0x7b,(%rcx){1to16}, %k2
+
// CHECK: vfpclasspsz $123, 8128(%rdx), %k2
// CHECK: encoding: [0x62,0xf3,0x7d,0x48,0x66,0x52,0x7f,0x7b]
vfpclasspsz $0x7b,8128(%rdx), %k2
@@ -3591,30 +3635,58 @@
// CHECK: encoding: [0x62,0xf3,0x7d,0x58,0x66,0x52,0x7f,0x7b]
vfpclassps $0x7b,508(%rdx){1to16}, %k2
+// CHECK: vfpclassps $123, 508(%rdx){1to16}, %k2
+// CHECK: encoding: [0x62,0xf3,0x7d,0x58,0x66,0x52,0x7f,0x7b]
+ vfpclasspsz $0x7b,508(%rdx){1to16}, %k2
+
// CHECK: vfpclassps $123, 512(%rdx){1to16}, %k2
// CHECK: encoding: [0x62,0xf3,0x7d,0x58,0x66,0x92,0x00,0x02,0x00,0x00,0x7b]
vfpclassps $0x7b,512(%rdx){1to16}, %k2
+// CHECK: vfpclassps $123, 512(%rdx){1to16}, %k2
+// CHECK: encoding: [0x62,0xf3,0x7d,0x58,0x66,0x92,0x00,0x02,0x00,0x00,0x7b]
+ vfpclasspsz $0x7b,512(%rdx){1to16}, %k2
+
// CHECK: vfpclassps $123, -512(%rdx){1to16}, %k2
// CHECK: encoding: [0x62,0xf3,0x7d,0x58,0x66,0x52,0x80,0x7b]
vfpclassps $0x7b,-512(%rdx){1to16}, %k2
+// CHECK: vfpclassps $123, -512(%rdx){1to16}, %k2
+// CHECK: encoding: [0x62,0xf3,0x7d,0x58,0x66,0x52,0x80,0x7b]
+ vfpclasspsz $0x7b,-512(%rdx){1to16}, %k2
+
// CHECK: vfpclassps $123, -516(%rdx){1to16}, %k2
// CHECK: encoding: [0x62,0xf3,0x7d,0x58,0x66,0x92,0xfc,0xfd,0xff,0xff,0x7b]
vfpclassps $0x7b,-516(%rdx){1to16}, %k2
+// CHECK: vfpclassps $123, -516(%rdx){1to16}, %k2
+// CHECK: encoding: [0x62,0xf3,0x7d,0x58,0x66,0x92,0xfc,0xfd,0xff,0xff,0x7b]
+ vfpclasspsz $0x7b,-516(%rdx){1to16}, %k2
+
// CHECK: vfpclasspd $171, %zmm19, %k2
// CHECK: encoding: [0x62,0xb3,0xfd,0x48,0x66,0xd3,0xab]
vfpclasspd $0xab, %zmm19, %k2
+// CHECK: vfpclasspd $171, %zmm19, %k2
+// CHECK: encoding: [0x62,0xb3,0xfd,0x48,0x66,0xd3,0xab]
+ vfpclasspdz $0xab, %zmm19, %k2
+
// CHECK: vfpclasspd $171, %zmm19, %k2 {%k6}
// CHECK: encoding: [0x62,0xb3,0xfd,0x4e,0x66,0xd3,0xab]
vfpclasspd $0xab, %zmm19, %k2 {%k6}
+// CHECK: vfpclasspd $171, %zmm19, %k2 {%k6}
+// CHECK: encoding: [0x62,0xb3,0xfd,0x4e,0x66,0xd3,0xab]
+ vfpclasspdz $0xab, %zmm19, %k2 {%k6}
+
// CHECK: vfpclasspd $123, %zmm19, %k2
// CHECK: encoding: [0x62,0xb3,0xfd,0x48,0x66,0xd3,0x7b]
vfpclasspd $0x7b, %zmm19, %k2
+// CHECK: vfpclasspd $123, %zmm19, %k2
+// CHECK: encoding: [0x62,0xb3,0xfd,0x48,0x66,0xd3,0x7b]
+ vfpclasspdz $0x7b, %zmm19, %k2
+
// CHECK: vfpclasspdz $123, (%rcx), %k2
// CHECK: encoding: [0x62,0xf3,0xfd,0x48,0x66,0x11,0x7b]
vfpclasspdz $0x7b,(%rcx), %k2
@@ -3627,6 +3699,10 @@
// CHECK: encoding: [0x62,0xf3,0xfd,0x58,0x66,0x11,0x7b]
vfpclasspd $0x7b,(%rcx){1to8}, %k2
+// CHECK: vfpclasspd $123, (%rcx){1to8}, %k2
+// CHECK: encoding: [0x62,0xf3,0xfd,0x58,0x66,0x11,0x7b]
+ vfpclasspdz $0x7b,(%rcx){1to8}, %k2
+
// CHECK: vfpclasspdz $123, 8128(%rdx), %k2
// CHECK: encoding: [0x62,0xf3,0xfd,0x48,0x66,0x52,0x7f,0x7b]
vfpclasspdz $0x7b,8128(%rdx), %k2
@@ -3647,30 +3723,58 @@
// CHECK: encoding: [0x62,0xf3,0xfd,0x58,0x66,0x52,0x7f,0x7b]
vfpclasspd $0x7b,1016(%rdx){1to8}, %k2
+// CHECK: vfpclasspd $123, 1016(%rdx){1to8}, %k2
+// CHECK: encoding: [0x62,0xf3,0xfd,0x58,0x66,0x52,0x7f,0x7b]
+ vfpclasspdz $0x7b,1016(%rdx){1to8}, %k2
+
// CHECK: vfpclasspd $123, 1024(%rdx){1to8}, %k2
// CHECK: encoding: [0x62,0xf3,0xfd,0x58,0x66,0x92,0x00,0x04,0x00,0x00,0x7b]
vfpclasspd $0x7b,1024(%rdx){1to8}, %k2
+// CHECK: vfpclasspd $123, 1024(%rdx){1to8}, %k2
+// CHECK: encoding: [0x62,0xf3,0xfd,0x58,0x66,0x92,0x00,0x04,0x00,0x00,0x7b]
+ vfpclasspdz $0x7b,1024(%rdx){1to8}, %k2
+
// CHECK: vfpclasspd $123, -1024(%rdx){1to8}, %k2
// CHECK: encoding: [0x62,0xf3,0xfd,0x58,0x66,0x52,0x80,0x7b]
vfpclasspd $0x7b,-1024(%rdx){1to8}, %k2
+// CHECK: vfpclasspd $123, -1024(%rdx){1to8}, %k2
+// CHECK: encoding: [0x62,0xf3,0xfd,0x58,0x66,0x52,0x80,0x7b]
+ vfpclasspdz $0x7b,-1024(%rdx){1to8}, %k2
+
// CHECK: vfpclasspd $123, -1032(%rdx){1to8}, %k2
// CHECK: encoding: [0x62,0xf3,0xfd,0x58,0x66,0x92,0xf8,0xfb,0xff,0xff,0x7b]
vfpclasspd $0x7b,-1032(%rdx){1to8}, %k2
+// CHECK: vfpclasspd $123, -1032(%rdx){1to8}, %k2
+// CHECK: encoding: [0x62,0xf3,0xfd,0x58,0x66,0x92,0xf8,0xfb,0xff,0xff,0x7b]
+ vfpclasspdz $0x7b,-1032(%rdx){1to8}, %k2
+
// CHECK: vfpclassps $171, %zmm17, %k4
// CHECK: encoding: [0x62,0xb3,0x7d,0x48,0x66,0xe1,0xab]
vfpclassps $0xab, %zmm17, %k4
+// CHECK: vfpclassps $171, %zmm17, %k4
+// CHECK: encoding: [0x62,0xb3,0x7d,0x48,0x66,0xe1,0xab]
+ vfpclasspsz $0xab, %zmm17, %k4
+
// CHECK: vfpclassps $171, %zmm17, %k4 {%k2}
// CHECK: encoding: [0x62,0xb3,0x7d,0x4a,0x66,0xe1,0xab]
vfpclassps $0xab, %zmm17, %k4 {%k2}
+// CHECK: vfpclassps $171, %zmm17, %k4 {%k2}
+// CHECK: encoding: [0x62,0xb3,0x7d,0x4a,0x66,0xe1,0xab]
+ vfpclasspsz $0xab, %zmm17, %k4 {%k2}
+
// CHECK: vfpclassps $123, %zmm17, %k4
// CHECK: encoding: [0x62,0xb3,0x7d,0x48,0x66,0xe1,0x7b]
vfpclassps $0x7b, %zmm17, %k4
+// CHECK: vfpclassps $123, %zmm17, %k4
+// CHECK: encoding: [0x62,0xb3,0x7d,0x48,0x66,0xe1,0x7b]
+ vfpclasspsz $0x7b, %zmm17, %k4
+
// CHECK: vfpclasspsz $123, (%rcx), %k4
// CHECK: encoding: [0x62,0xf3,0x7d,0x48,0x66,0x21,0x7b]
vfpclasspsz $0x7b,(%rcx), %k4
@@ -3683,6 +3787,10 @@
// CHECK: encoding: [0x62,0xf3,0x7d,0x58,0x66,0x21,0x7b]
vfpclassps $0x7b,(%rcx){1to16}, %k4
+// CHECK: vfpclassps $123, (%rcx){1to16}, %k4
+// CHECK: encoding: [0x62,0xf3,0x7d,0x58,0x66,0x21,0x7b]
+ vfpclasspsz $0x7b,(%rcx){1to16}, %k4
+
// CHECK: vfpclasspsz $123, 8128(%rdx), %k4
// CHECK: encoding: [0x62,0xf3,0x7d,0x48,0x66,0x62,0x7f,0x7b]
vfpclasspsz $0x7b,8128(%rdx), %k4
@@ -3703,18 +3811,33 @@
// CHECK: encoding: [0x62,0xf3,0x7d,0x58,0x66,0x62,0x7f,0x7b]
vfpclassps $0x7b,508(%rdx){1to16}, %k4
+// CHECK: vfpclassps $123, 508(%rdx){1to16}, %k4
+// CHECK: encoding: [0x62,0xf3,0x7d,0x58,0x66,0x62,0x7f,0x7b]
+ vfpclasspsz $0x7b,508(%rdx){1to16}, %k4
+
// CHECK: vfpclassps $123, 512(%rdx){1to16}, %k4
// CHECK: encoding: [0x62,0xf3,0x7d,0x58,0x66,0xa2,0x00,0x02,0x00,0x00,0x7b]
vfpclassps $0x7b,512(%rdx){1to16}, %k4
+// CHECK: vfpclassps $123, 512(%rdx){1to16}, %k4
+// CHECK: encoding: [0x62,0xf3,0x7d,0x58,0x66,0xa2,0x00,0x02,0x00,0x00,0x7b]
+ vfpclasspsz $0x7b,512(%rdx){1to16}, %k4
+
// CHECK: vfpclassps $123, -512(%rdx){1to16}, %k4
// CHECK: encoding: [0x62,0xf3,0x7d,0x58,0x66,0x62,0x80,0x7b]
vfpclassps $0x7b,-512(%rdx){1to16}, %k4
+// CHECK: vfpclassps $123, -512(%rdx){1to16}, %k4
+// CHECK: encoding: [0x62,0xf3,0x7d,0x58,0x66,0x62,0x80,0x7b]
+ vfpclasspsz $0x7b,-512(%rdx){1to16}, %k4
+
// CHECK: vfpclassps $123, -516(%rdx){1to16}, %k4
// CHECK: encoding: [0x62,0xf3,0x7d,0x58,0x66,0xa2,0xfc,0xfd,0xff,0xff,0x7b]
vfpclassps $0x7b,-516(%rdx){1to16}, %k4
+// CHECK: vfpclassps $123, -516(%rdx){1to16}, %k4
+// CHECK: encoding: [0x62,0xf3,0x7d,0x58,0x66,0xa2,0xfc,0xfd,0xff,0xff,0x7b]
+ vfpclasspsz $0x7b,-516(%rdx){1to16}, %k4
// CHECK: vcvtuqq2ps {rn-sae}, %zmm21, %ymm18
// CHECK: encoding: [0x62,0xa1,0xff,0x18,0x7a,0xd5]
Modified: llvm/trunk/test/MC/X86/x86-64-avx512dq_vl.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/X86/x86-64-avx512dq_vl.s?rev=359903&r1=359902&r2=359903&view=diff
==============================================================================
--- llvm/trunk/test/MC/X86/x86-64-avx512dq_vl.s (original)
+++ llvm/trunk/test/MC/X86/x86-64-avx512dq_vl.s Fri May 3 09:15:15 2019
@@ -5432,14 +5432,26 @@
// CHECK: encoding: [0x62,0xb3,0xfd,0x08,0x66,0xd2,0xab]
vfpclasspd $0xab, %xmm18, %k2
+// CHECK: vfpclasspd $171, %xmm18, %k2
+// CHECK: encoding: [0x62,0xb3,0xfd,0x08,0x66,0xd2,0xab]
+ vfpclasspdx $0xab, %xmm18, %k2
+
// CHECK: vfpclasspd $171, %xmm18, %k2 {%k7}
// CHECK: encoding: [0x62,0xb3,0xfd,0x0f,0x66,0xd2,0xab]
vfpclasspd $0xab, %xmm18, %k2 {%k7}
+// CHECK: vfpclasspd $171, %xmm18, %k2 {%k7}
+// CHECK: encoding: [0x62,0xb3,0xfd,0x0f,0x66,0xd2,0xab]
+ vfpclasspdx $0xab, %xmm18, %k2 {%k7}
+
// CHECK: vfpclasspd $123, %xmm18, %k2
// CHECK: encoding: [0x62,0xb3,0xfd,0x08,0x66,0xd2,0x7b]
vfpclasspd $0x7b, %xmm18, %k2
+// CHECK: vfpclasspd $123, %xmm18, %k2
+// CHECK: encoding: [0x62,0xb3,0xfd,0x08,0x66,0xd2,0x7b]
+ vfpclasspdx $0x7b, %xmm18, %k2
+
// CHECK: vfpclasspdx $123, (%rcx), %k2
// CHECK: encoding: [0x62,0xf3,0xfd,0x08,0x66,0x11,0x7b]
vfpclasspdx $0x7b,(%rcx), %k2
@@ -5452,6 +5464,10 @@
// CHECK: encoding: [0x62,0xf3,0xfd,0x18,0x66,0x11,0x7b]
vfpclasspd $0x7b,(%rcx){1to2}, %k2
+// CHECK: vfpclasspd $123, (%rcx){1to2}, %k2
+// CHECK: encoding: [0x62,0xf3,0xfd,0x18,0x66,0x11,0x7b]
+ vfpclasspdx $0x7b,(%rcx){1to2}, %k2
+
// CHECK: vfpclasspdx $123, 2032(%rdx), %k2
// CHECK: encoding: [0x62,0xf3,0xfd,0x08,0x66,0x52,0x7f,0x7b]
vfpclasspdx $0x7b,2032(%rdx), %k2
@@ -5472,30 +5488,58 @@
// CHECK: encoding: [0x62,0xf3,0xfd,0x18,0x66,0x52,0x7f,0x7b]
vfpclasspd $0x7b,1016(%rdx){1to2}, %k2
+// CHECK: vfpclasspd $123, 1016(%rdx){1to2}, %k2
+// CHECK: encoding: [0x62,0xf3,0xfd,0x18,0x66,0x52,0x7f,0x7b]
+ vfpclasspdx $0x7b,1016(%rdx){1to2}, %k2
+
// CHECK: vfpclasspd $123, 1024(%rdx){1to2}, %k2
// CHECK: encoding: [0x62,0xf3,0xfd,0x18,0x66,0x92,0x00,0x04,0x00,0x00,0x7b]
vfpclasspd $0x7b,1024(%rdx){1to2}, %k2
+// CHECK: vfpclasspd $123, 1024(%rdx){1to2}, %k2
+// CHECK: encoding: [0x62,0xf3,0xfd,0x18,0x66,0x92,0x00,0x04,0x00,0x00,0x7b]
+ vfpclasspdx $0x7b,1024(%rdx){1to2}, %k2
+
// CHECK: vfpclasspd $123, -1024(%rdx){1to2}, %k2
// CHECK: encoding: [0x62,0xf3,0xfd,0x18,0x66,0x52,0x80,0x7b]
vfpclasspd $0x7b,-1024(%rdx){1to2}, %k2
+// CHECK: vfpclasspd $123, -1024(%rdx){1to2}, %k2
+// CHECK: encoding: [0x62,0xf3,0xfd,0x18,0x66,0x52,0x80,0x7b]
+ vfpclasspdx $0x7b,-1024(%rdx){1to2}, %k2
+
// CHECK: vfpclasspd $123, -1032(%rdx){1to2}, %k2
// CHECK: encoding: [0x62,0xf3,0xfd,0x18,0x66,0x92,0xf8,0xfb,0xff,0xff,0x7b]
vfpclasspd $0x7b,-1032(%rdx){1to2}, %k2
+// CHECK: vfpclasspd $123, -1032(%rdx){1to2}, %k2
+// CHECK: encoding: [0x62,0xf3,0xfd,0x18,0x66,0x92,0xf8,0xfb,0xff,0xff,0x7b]
+ vfpclasspdx $0x7b,-1032(%rdx){1to2}, %k2
+
// CHECK: vfpclasspd $171, %ymm25, %k4
// CHECK: encoding: [0x62,0x93,0xfd,0x28,0x66,0xe1,0xab]
vfpclasspd $0xab, %ymm25, %k4
+// CHECK: vfpclasspd $171, %ymm25, %k4
+// CHECK: encoding: [0x62,0x93,0xfd,0x28,0x66,0xe1,0xab]
+ vfpclasspdy $0xab, %ymm25, %k4
+
// CHECK: vfpclasspd $171, %ymm25, %k4 {%k6}
// CHECK: encoding: [0x62,0x93,0xfd,0x2e,0x66,0xe1,0xab]
vfpclasspd $0xab, %ymm25, %k4 {%k6}
+// CHECK: vfpclasspd $171, %ymm25, %k4 {%k6}
+// CHECK: encoding: [0x62,0x93,0xfd,0x2e,0x66,0xe1,0xab]
+ vfpclasspdy $0xab, %ymm25, %k4 {%k6}
+
// CHECK: vfpclasspd $123, %ymm25, %k4
// CHECK: encoding: [0x62,0x93,0xfd,0x28,0x66,0xe1,0x7b]
vfpclasspd $0x7b, %ymm25, %k4
+// CHECK: vfpclasspd $123, %ymm25, %k4
+// CHECK: encoding: [0x62,0x93,0xfd,0x28,0x66,0xe1,0x7b]
+ vfpclasspdy $0x7b, %ymm25, %k4
+
// CHECK: vfpclasspdy $123, (%rcx), %k4
// CHECK: encoding: [0x62,0xf3,0xfd,0x28,0x66,0x21,0x7b]
vfpclasspdy $0x7b,(%rcx), %k4
@@ -5508,6 +5552,10 @@
// CHECK: encoding: [0x62,0xf3,0xfd,0x38,0x66,0x21,0x7b]
vfpclasspd $0x7b,(%rcx){1to4}, %k4
+// CHECK: vfpclasspd $123, (%rcx){1to4}, %k4
+// CHECK: encoding: [0x62,0xf3,0xfd,0x38,0x66,0x21,0x7b]
+ vfpclasspdy $0x7b,(%rcx){1to4}, %k4
+
// CHECK: vfpclasspdy $123, 4064(%rdx), %k4
// CHECK: encoding: [0x62,0xf3,0xfd,0x28,0x66,0x62,0x7f,0x7b]
vfpclasspdy $0x7b,4064(%rdx), %k4
@@ -5528,30 +5576,58 @@
// CHECK: encoding: [0x62,0xf3,0xfd,0x38,0x66,0x62,0x7f,0x7b]
vfpclasspd $0x7b,1016(%rdx){1to4}, %k4
+// CHECK: vfpclasspd $123, 1016(%rdx){1to4}, %k4
+// CHECK: encoding: [0x62,0xf3,0xfd,0x38,0x66,0x62,0x7f,0x7b]
+ vfpclasspdy $0x7b,1016(%rdx){1to4}, %k4
+
// CHECK: vfpclasspd $123, 1024(%rdx){1to4}, %k4
// CHECK: encoding: [0x62,0xf3,0xfd,0x38,0x66,0xa2,0x00,0x04,0x00,0x00,0x7b]
vfpclasspd $0x7b,1024(%rdx){1to4}, %k4
+// CHECK: vfpclasspd $123, 1024(%rdx){1to4}, %k4
+// CHECK: encoding: [0x62,0xf3,0xfd,0x38,0x66,0xa2,0x00,0x04,0x00,0x00,0x7b]
+ vfpclasspdy $0x7b,1024(%rdx){1to4}, %k4
+
// CHECK: vfpclasspd $123, -1024(%rdx){1to4}, %k4
// CHECK: encoding: [0x62,0xf3,0xfd,0x38,0x66,0x62,0x80,0x7b]
vfpclasspd $0x7b,-1024(%rdx){1to4}, %k4
+// CHECK: vfpclasspd $123, -1024(%rdx){1to4}, %k4
+// CHECK: encoding: [0x62,0xf3,0xfd,0x38,0x66,0x62,0x80,0x7b]
+ vfpclasspdy $0x7b,-1024(%rdx){1to4}, %k4
+
// CHECK: vfpclasspd $123, -1032(%rdx){1to4}, %k4
// CHECK: encoding: [0x62,0xf3,0xfd,0x38,0x66,0xa2,0xf8,0xfb,0xff,0xff,0x7b]
vfpclasspd $0x7b,-1032(%rdx){1to4}, %k4
+// CHECK: vfpclasspd $123, -1032(%rdx){1to4}, %k4
+// CHECK: encoding: [0x62,0xf3,0xfd,0x38,0x66,0xa2,0xf8,0xfb,0xff,0xff,0x7b]
+ vfpclasspdy $0x7b,-1032(%rdx){1to4}, %k4
+
// CHECK: vfpclassps $171, %xmm20, %k4
// CHECK: encoding: [0x62,0xb3,0x7d,0x08,0x66,0xe4,0xab]
vfpclassps $0xab, %xmm20, %k4
+// CHECK: vfpclassps $171, %xmm20, %k4
+// CHECK: encoding: [0x62,0xb3,0x7d,0x08,0x66,0xe4,0xab]
+ vfpclasspsx $0xab, %xmm20, %k4
+
// CHECK: vfpclassps $171, %xmm20, %k4 {%k5}
// CHECK: encoding: [0x62,0xb3,0x7d,0x0d,0x66,0xe4,0xab]
vfpclassps $0xab, %xmm20, %k4 {%k5}
+// CHECK: vfpclassps $171, %xmm20, %k4 {%k5}
+// CHECK: encoding: [0x62,0xb3,0x7d,0x0d,0x66,0xe4,0xab]
+ vfpclasspsx $0xab, %xmm20, %k4 {%k5}
+
// CHECK: vfpclassps $123, %xmm20, %k4
// CHECK: encoding: [0x62,0xb3,0x7d,0x08,0x66,0xe4,0x7b]
vfpclassps $0x7b, %xmm20, %k4
+// CHECK: vfpclassps $123, %xmm20, %k4
+// CHECK: encoding: [0x62,0xb3,0x7d,0x08,0x66,0xe4,0x7b]
+ vfpclasspsx $0x7b, %xmm20, %k4
+
// CHECK: vfpclasspsx $123, (%rcx), %k4
// CHECK: encoding: [0x62,0xf3,0x7d,0x08,0x66,0x21,0x7b]
vfpclasspsx $0x7b,(%rcx), %k4
@@ -5564,6 +5640,10 @@
// CHECK: encoding: [0x62,0xf3,0x7d,0x18,0x66,0x21,0x7b]
vfpclassps $0x7b,(%rcx){1to4}, %k4
+// CHECK: vfpclassps $123, (%rcx){1to4}, %k4
+// CHECK: encoding: [0x62,0xf3,0x7d,0x18,0x66,0x21,0x7b]
+ vfpclasspsx $0x7b,(%rcx){1to4}, %k4
+
// CHECK: vfpclasspsx $123, 2032(%rdx), %k4
// CHECK: encoding: [0x62,0xf3,0x7d,0x08,0x66,0x62,0x7f,0x7b]
vfpclasspsx $0x7b,2032(%rdx), %k4
@@ -5584,30 +5664,58 @@
// CHECK: encoding: [0x62,0xf3,0x7d,0x18,0x66,0x62,0x7f,0x7b]
vfpclassps $0x7b,508(%rdx){1to4}, %k4
+// CHECK: vfpclassps $123, 508(%rdx){1to4}, %k4
+// CHECK: encoding: [0x62,0xf3,0x7d,0x18,0x66,0x62,0x7f,0x7b]
+ vfpclasspsx $0x7b,508(%rdx){1to4}, %k4
+
// CHECK: vfpclassps $123, 512(%rdx){1to4}, %k4
// CHECK: encoding: [0x62,0xf3,0x7d,0x18,0x66,0xa2,0x00,0x02,0x00,0x00,0x7b]
vfpclassps $0x7b,512(%rdx){1to4}, %k4
+// CHECK: vfpclassps $123, 512(%rdx){1to4}, %k4
+// CHECK: encoding: [0x62,0xf3,0x7d,0x18,0x66,0xa2,0x00,0x02,0x00,0x00,0x7b]
+ vfpclasspsx $0x7b,512(%rdx){1to4}, %k4
+
// CHECK: vfpclassps $123, -512(%rdx){1to4}, %k4
// CHECK: encoding: [0x62,0xf3,0x7d,0x18,0x66,0x62,0x80,0x7b]
vfpclassps $0x7b,-512(%rdx){1to4}, %k4
+// CHECK: vfpclassps $123, -512(%rdx){1to4}, %k4
+// CHECK: encoding: [0x62,0xf3,0x7d,0x18,0x66,0x62,0x80,0x7b]
+ vfpclasspsx $0x7b,-512(%rdx){1to4}, %k4
+
// CHECK: vfpclassps $123, -516(%rdx){1to4}, %k4
// CHECK: encoding: [0x62,0xf3,0x7d,0x18,0x66,0xa2,0xfc,0xfd,0xff,0xff,0x7b]
vfpclassps $0x7b,-516(%rdx){1to4}, %k4
+// CHECK: vfpclassps $123, -516(%rdx){1to4}, %k4
+// CHECK: encoding: [0x62,0xf3,0x7d,0x18,0x66,0xa2,0xfc,0xfd,0xff,0xff,0x7b]
+ vfpclasspsx $0x7b,-516(%rdx){1to4}, %k4
+
// CHECK: vfpclassps $171, %ymm17, %k4
// CHECK: encoding: [0x62,0xb3,0x7d,0x28,0x66,0xe1,0xab]
vfpclassps $0xab, %ymm17, %k4
+// CHECK: vfpclassps $171, %ymm17, %k4
+// CHECK: encoding: [0x62,0xb3,0x7d,0x28,0x66,0xe1,0xab]
+ vfpclasspsy $0xab, %ymm17, %k4
+
// CHECK: vfpclassps $171, %ymm17, %k4 {%k5}
// CHECK: encoding: [0x62,0xb3,0x7d,0x2d,0x66,0xe1,0xab]
vfpclassps $0xab, %ymm17, %k4 {%k5}
+// CHECK: vfpclassps $171, %ymm17, %k4 {%k5}
+// CHECK: encoding: [0x62,0xb3,0x7d,0x2d,0x66,0xe1,0xab]
+ vfpclasspsy $0xab, %ymm17, %k4 {%k5}
+
// CHECK: vfpclassps $123, %ymm17, %k4
// CHECK: encoding: [0x62,0xb3,0x7d,0x28,0x66,0xe1,0x7b]
vfpclassps $0x7b, %ymm17, %k4
+// CHECK: vfpclassps $123, %ymm17, %k4
+// CHECK: encoding: [0x62,0xb3,0x7d,0x28,0x66,0xe1,0x7b]
+ vfpclasspsy $0x7b, %ymm17, %k4
+
// CHECK: vfpclasspsy $123, (%rcx), %k4
// CHECK: encoding: [0x62,0xf3,0x7d,0x28,0x66,0x21,0x7b]
vfpclasspsy $0x7b,(%rcx), %k4
@@ -5620,6 +5728,10 @@
// CHECK: encoding: [0x62,0xf3,0x7d,0x38,0x66,0x21,0x7b]
vfpclassps $0x7b,(%rcx){1to8}, %k4
+// CHECK: vfpclassps $123, (%rcx){1to8}, %k4
+// CHECK: encoding: [0x62,0xf3,0x7d,0x38,0x66,0x21,0x7b]
+ vfpclasspsy $0x7b,(%rcx){1to8}, %k4
+
// CHECK: vfpclasspsy $123, 4064(%rdx), %k4
// CHECK: encoding: [0x62,0xf3,0x7d,0x28,0x66,0x62,0x7f,0x7b]
vfpclasspsy $0x7b,4064(%rdx), %k4
@@ -5640,30 +5752,58 @@
// CHECK: encoding: [0x62,0xf3,0x7d,0x38,0x66,0x62,0x7f,0x7b]
vfpclassps $0x7b,508(%rdx){1to8}, %k4
+// CHECK: vfpclassps $123, 508(%rdx){1to8}, %k4
+// CHECK: encoding: [0x62,0xf3,0x7d,0x38,0x66,0x62,0x7f,0x7b]
+ vfpclasspsy $0x7b,508(%rdx){1to8}, %k4
+
// CHECK: vfpclassps $123, 512(%rdx){1to8}, %k4
// CHECK: encoding: [0x62,0xf3,0x7d,0x38,0x66,0xa2,0x00,0x02,0x00,0x00,0x7b]
vfpclassps $0x7b,512(%rdx){1to8}, %k4
+// CHECK: vfpclassps $123, 512(%rdx){1to8}, %k4
+// CHECK: encoding: [0x62,0xf3,0x7d,0x38,0x66,0xa2,0x00,0x02,0x00,0x00,0x7b]
+ vfpclasspsy $0x7b,512(%rdx){1to8}, %k4
+
// CHECK: vfpclassps $123, -512(%rdx){1to8}, %k4
// CHECK: encoding: [0x62,0xf3,0x7d,0x38,0x66,0x62,0x80,0x7b]
vfpclassps $0x7b,-512(%rdx){1to8}, %k4
+// CHECK: vfpclassps $123, -512(%rdx){1to8}, %k4
+// CHECK: encoding: [0x62,0xf3,0x7d,0x38,0x66,0x62,0x80,0x7b]
+ vfpclasspsy $0x7b,-512(%rdx){1to8}, %k4
+
// CHECK: vfpclassps $123, -516(%rdx){1to8}, %k4
// CHECK: encoding: [0x62,0xf3,0x7d,0x38,0x66,0xa2,0xfc,0xfd,0xff,0xff,0x7b]
vfpclassps $0x7b,-516(%rdx){1to8}, %k4
+// CHECK: vfpclassps $123, -516(%rdx){1to8}, %k4
+// CHECK: encoding: [0x62,0xf3,0x7d,0x38,0x66,0xa2,0xfc,0xfd,0xff,0xff,0x7b]
+ vfpclasspsy $0x7b,-516(%rdx){1to8}, %k4
+
// CHECK: vfpclasspd $171, %xmm26, %k3
// CHECK: encoding: [0x62,0x93,0xfd,0x08,0x66,0xda,0xab]
vfpclasspd $0xab, %xmm26, %k3
+// CHECK: vfpclasspd $171, %xmm26, %k3
+// CHECK: encoding: [0x62,0x93,0xfd,0x08,0x66,0xda,0xab]
+ vfpclasspdx $0xab, %xmm26, %k3
+
// CHECK: vfpclasspd $171, %xmm26, %k3 {%k5}
// CHECK: encoding: [0x62,0x93,0xfd,0x0d,0x66,0xda,0xab]
vfpclasspd $0xab, %xmm26, %k3 {%k5}
+// CHECK: vfpclasspd $171, %xmm26, %k3 {%k5}
+// CHECK: encoding: [0x62,0x93,0xfd,0x0d,0x66,0xda,0xab]
+ vfpclasspdx $0xab, %xmm26, %k3 {%k5}
+
// CHECK: vfpclasspd $123, %xmm26, %k3
// CHECK: encoding: [0x62,0x93,0xfd,0x08,0x66,0xda,0x7b]
vfpclasspd $0x7b, %xmm26, %k3
+// CHECK: vfpclasspd $123, %xmm26, %k3
+// CHECK: encoding: [0x62,0x93,0xfd,0x08,0x66,0xda,0x7b]
+ vfpclasspdx $0x7b, %xmm26, %k3
+
// CHECK: vfpclasspdx $123, (%rcx), %k3
// CHECK: encoding: [0x62,0xf3,0xfd,0x08,0x66,0x19,0x7b]
vfpclasspdx $0x7b,(%rcx), %k3
@@ -5676,6 +5816,10 @@
// CHECK: encoding: [0x62,0xf3,0xfd,0x18,0x66,0x19,0x7b]
vfpclasspd $0x7b,(%rcx){1to2}, %k3
+// CHECK: vfpclasspd $123, (%rcx){1to2}, %k3
+// CHECK: encoding: [0x62,0xf3,0xfd,0x18,0x66,0x19,0x7b]
+ vfpclasspdx $0x7b,(%rcx){1to2}, %k3
+
// CHECK: vfpclasspdx $123, 2032(%rdx), %k3
// CHECK: encoding: [0x62,0xf3,0xfd,0x08,0x66,0x5a,0x7f,0x7b]
vfpclasspdx $0x7b,2032(%rdx), %k3
@@ -5696,30 +5840,58 @@
// CHECK: encoding: [0x62,0xf3,0xfd,0x18,0x66,0x5a,0x7f,0x7b]
vfpclasspd $0x7b,1016(%rdx){1to2}, %k3
+// CHECK: vfpclasspd $123, 1016(%rdx){1to2}, %k3
+// CHECK: encoding: [0x62,0xf3,0xfd,0x18,0x66,0x5a,0x7f,0x7b]
+ vfpclasspdx $0x7b,1016(%rdx){1to2}, %k3
+
// CHECK: vfpclasspd $123, 1024(%rdx){1to2}, %k3
// CHECK: encoding: [0x62,0xf3,0xfd,0x18,0x66,0x9a,0x00,0x04,0x00,0x00,0x7b]
vfpclasspd $0x7b,1024(%rdx){1to2}, %k3
+// CHECK: vfpclasspd $123, 1024(%rdx){1to2}, %k3
+// CHECK: encoding: [0x62,0xf3,0xfd,0x18,0x66,0x9a,0x00,0x04,0x00,0x00,0x7b]
+ vfpclasspdx $0x7b,1024(%rdx){1to2}, %k3
+
// CHECK: vfpclasspd $123, -1024(%rdx){1to2}, %k3
// CHECK: encoding: [0x62,0xf3,0xfd,0x18,0x66,0x5a,0x80,0x7b]
vfpclasspd $0x7b,-1024(%rdx){1to2}, %k3
+// CHECK: vfpclasspd $123, -1024(%rdx){1to2}, %k3
+// CHECK: encoding: [0x62,0xf3,0xfd,0x18,0x66,0x5a,0x80,0x7b]
+ vfpclasspdx $0x7b,-1024(%rdx){1to2}, %k3
+
// CHECK: vfpclasspd $123, -1032(%rdx){1to2}, %k3
// CHECK: encoding: [0x62,0xf3,0xfd,0x18,0x66,0x9a,0xf8,0xfb,0xff,0xff,0x7b]
vfpclasspd $0x7b,-1032(%rdx){1to2}, %k3
+// CHECK: vfpclasspd $123, -1032(%rdx){1to2}, %k3
+// CHECK: encoding: [0x62,0xf3,0xfd,0x18,0x66,0x9a,0xf8,0xfb,0xff,0xff,0x7b]
+ vfpclasspdx $0x7b,-1032(%rdx){1to2}, %k3
+
// CHECK: vfpclasspd $171, %ymm26, %k2
// CHECK: encoding: [0x62,0x93,0xfd,0x28,0x66,0xd2,0xab]
vfpclasspd $0xab, %ymm26, %k2
+// CHECK: vfpclasspd $171, %ymm26, %k2
+// CHECK: encoding: [0x62,0x93,0xfd,0x28,0x66,0xd2,0xab]
+ vfpclasspdy $0xab, %ymm26, %k2
+
// CHECK: vfpclasspd $171, %ymm26, %k2 {%k6}
// CHECK: encoding: [0x62,0x93,0xfd,0x2e,0x66,0xd2,0xab]
vfpclasspd $0xab, %ymm26, %k2 {%k6}
+// CHECK: vfpclasspd $171, %ymm26, %k2 {%k6}
+// CHECK: encoding: [0x62,0x93,0xfd,0x2e,0x66,0xd2,0xab]
+ vfpclasspdy $0xab, %ymm26, %k2 {%k6}
+
// CHECK: vfpclasspd $123, %ymm26, %k2
// CHECK: encoding: [0x62,0x93,0xfd,0x28,0x66,0xd2,0x7b]
vfpclasspd $0x7b, %ymm26, %k2
+// CHECK: vfpclasspd $123, %ymm26, %k2
+// CHECK: encoding: [0x62,0x93,0xfd,0x28,0x66,0xd2,0x7b]
+ vfpclasspdy $0x7b, %ymm26, %k2
+
// CHECK: vfpclasspdy $123, (%rcx), %k2
// CHECK: encoding: [0x62,0xf3,0xfd,0x28,0x66,0x11,0x7b]
vfpclasspdy $0x7b,(%rcx), %k2
@@ -5732,6 +5904,10 @@
// CHECK: encoding: [0x62,0xf3,0xfd,0x38,0x66,0x11,0x7b]
vfpclasspd $0x7b,(%rcx){1to4}, %k2
+// CHECK: vfpclasspd $123, (%rcx){1to4}, %k2
+// CHECK: encoding: [0x62,0xf3,0xfd,0x38,0x66,0x11,0x7b]
+ vfpclasspdy $0x7b,(%rcx){1to4}, %k2
+
// CHECK: vfpclasspdy $123, 4064(%rdx), %k2
// CHECK: encoding: [0x62,0xf3,0xfd,0x28,0x66,0x52,0x7f,0x7b]
vfpclasspdy $0x7b,4064(%rdx), %k2
@@ -5752,30 +5928,58 @@
// CHECK: encoding: [0x62,0xf3,0xfd,0x38,0x66,0x52,0x7f,0x7b]
vfpclasspd $0x7b,1016(%rdx){1to4}, %k2
+// CHECK: vfpclasspd $123, 1016(%rdx){1to4}, %k2
+// CHECK: encoding: [0x62,0xf3,0xfd,0x38,0x66,0x52,0x7f,0x7b]
+ vfpclasspdy $0x7b,1016(%rdx){1to4}, %k2
+
// CHECK: vfpclasspd $123, 1024(%rdx){1to4}, %k2
// CHECK: encoding: [0x62,0xf3,0xfd,0x38,0x66,0x92,0x00,0x04,0x00,0x00,0x7b]
vfpclasspd $0x7b,1024(%rdx){1to4}, %k2
+// CHECK: vfpclasspd $123, 1024(%rdx){1to4}, %k2
+// CHECK: encoding: [0x62,0xf3,0xfd,0x38,0x66,0x92,0x00,0x04,0x00,0x00,0x7b]
+ vfpclasspdy $0x7b,1024(%rdx){1to4}, %k2
+
// CHECK: vfpclasspd $123, -1024(%rdx){1to4}, %k2
// CHECK: encoding: [0x62,0xf3,0xfd,0x38,0x66,0x52,0x80,0x7b]
vfpclasspd $0x7b,-1024(%rdx){1to4}, %k2
+// CHECK: vfpclasspd $123, -1024(%rdx){1to4}, %k2
+// CHECK: encoding: [0x62,0xf3,0xfd,0x38,0x66,0x52,0x80,0x7b]
+ vfpclasspdy $0x7b,-1024(%rdx){1to4}, %k2
+
// CHECK: vfpclasspd $123, -1032(%rdx){1to4}, %k2
// CHECK: encoding: [0x62,0xf3,0xfd,0x38,0x66,0x92,0xf8,0xfb,0xff,0xff,0x7b]
vfpclasspd $0x7b,-1032(%rdx){1to4}, %k2
+// CHECK: vfpclasspd $123, -1032(%rdx){1to4}, %k2
+// CHECK: encoding: [0x62,0xf3,0xfd,0x38,0x66,0x92,0xf8,0xfb,0xff,0xff,0x7b]
+ vfpclasspdy $0x7b,-1032(%rdx){1to4}, %k2
+
// CHECK: vfpclassps $171, %xmm29, %k3
// CHECK: encoding: [0x62,0x93,0x7d,0x08,0x66,0xdd,0xab]
vfpclassps $0xab, %xmm29, %k3
-// CHECK: vfpclassps $171, %xmm29, %k3 {%k6}
-// CHECK: encoding: [0x62,0x93,0x7d,0x0e,0x66,0xdd,0xab]
+// CHECK: vfpclassps $171, %xmm29, %k3
+// CHECK: encoding: [0x62,0x93,0x7d,0x08,0x66,0xdd,0xab]
+ vfpclasspsx $0xab, %xmm29, %k3
+
+// check: vfpclassps $171, %xmm29, %k3 {%k6}
+// check: encoding: [0x62,0x93,0x7d,0x0e,0x66,0xdd,0xab]
vfpclassps $0xab, %xmm29, %k3 {%k6}
+// CHECK: vfpclassps $171, %xmm29, %k3
+// CHECK: encoding: [0x62,0x93,0x7d,0x08,0x66,0xdd,0xab]
+ vfpclasspsx $0xab, %xmm29, %k3
+
// CHECK: vfpclassps $123, %xmm29, %k3
// CHECK: encoding: [0x62,0x93,0x7d,0x08,0x66,0xdd,0x7b]
vfpclassps $0x7b, %xmm29, %k3
+// CHECK: vfpclassps $123, %xmm29, %k3
+// CHECK: encoding: [0x62,0x93,0x7d,0x08,0x66,0xdd,0x7b]
+ vfpclasspsx $0x7b, %xmm29, %k3
+
// CHECK: vfpclasspsx $123, (%rcx), %k3
// CHECK: encoding: [0x62,0xf3,0x7d,0x08,0x66,0x19,0x7b]
vfpclasspsx $0x7b,(%rcx), %k3
@@ -5788,6 +5992,10 @@
// CHECK: encoding: [0x62,0xf3,0x7d,0x18,0x66,0x19,0x7b]
vfpclassps $0x7b,(%rcx){1to4}, %k3
+// CHECK: vfpclassps $123, (%rcx){1to4}, %k3
+// CHECK: encoding: [0x62,0xf3,0x7d,0x18,0x66,0x19,0x7b]
+ vfpclasspsx $0x7b,(%rcx){1to4}, %k3
+
// CHECK: vfpclasspsx $123, 2032(%rdx), %k3
// CHECK: encoding: [0x62,0xf3,0x7d,0x08,0x66,0x5a,0x7f,0x7b]
vfpclasspsx $0x7b,2032(%rdx), %k3
@@ -5808,30 +6016,58 @@
// CHECK: encoding: [0x62,0xf3,0x7d,0x18,0x66,0x5a,0x7f,0x7b]
vfpclassps $0x7b,508(%rdx){1to4}, %k3
+// CHECK: vfpclassps $123, 508(%rdx){1to4}, %k3
+// CHECK: encoding: [0x62,0xf3,0x7d,0x18,0x66,0x5a,0x7f,0x7b]
+ vfpclasspsx $0x7b,508(%rdx){1to4}, %k3
+
// CHECK: vfpclassps $123, 512(%rdx){1to4}, %k3
// CHECK: encoding: [0x62,0xf3,0x7d,0x18,0x66,0x9a,0x00,0x02,0x00,0x00,0x7b]
vfpclassps $0x7b,512(%rdx){1to4}, %k3
+// CHECK: vfpclassps $123, 512(%rdx){1to4}, %k3
+// CHECK: encoding: [0x62,0xf3,0x7d,0x18,0x66,0x9a,0x00,0x02,0x00,0x00,0x7b]
+ vfpclasspsx $0x7b,512(%rdx){1to4}, %k3
+
// CHECK: vfpclassps $123, -512(%rdx){1to4}, %k3
// CHECK: encoding: [0x62,0xf3,0x7d,0x18,0x66,0x5a,0x80,0x7b]
vfpclassps $0x7b,-512(%rdx){1to4}, %k3
+// CHECK: vfpclassps $123, -512(%rdx){1to4}, %k3
+// CHECK: encoding: [0x62,0xf3,0x7d,0x18,0x66,0x5a,0x80,0x7b]
+ vfpclasspsx $0x7b,-512(%rdx){1to4}, %k3
+
// CHECK: vfpclassps $123, -516(%rdx){1to4}, %k3
// CHECK: encoding: [0x62,0xf3,0x7d,0x18,0x66,0x9a,0xfc,0xfd,0xff,0xff,0x7b]
vfpclassps $0x7b,-516(%rdx){1to4}, %k3
+// CHECK: vfpclassps $123, -516(%rdx){1to4}, %k3
+// CHECK: encoding: [0x62,0xf3,0x7d,0x18,0x66,0x9a,0xfc,0xfd,0xff,0xff,0x7b]
+ vfpclasspsx $0x7b,-516(%rdx){1to4}, %k3
+
// CHECK: vfpclassps $171, %ymm19, %k3
// CHECK: encoding: [0x62,0xb3,0x7d,0x28,0x66,0xdb,0xab]
vfpclassps $0xab, %ymm19, %k3
+// CHECK: vfpclassps $171, %ymm19, %k3
+// CHECK: encoding: [0x62,0xb3,0x7d,0x28,0x66,0xdb,0xab]
+ vfpclasspsy $0xab, %ymm19, %k3
+
// CHECK: vfpclassps $171, %ymm19, %k3 {%k3}
// CHECK: encoding: [0x62,0xb3,0x7d,0x2b,0x66,0xdb,0xab]
vfpclassps $0xab, %ymm19, %k3 {%k3}
+// CHECK: vfpclassps $171, %ymm19, %k3 {%k3}
+// CHECK: encoding: [0x62,0xb3,0x7d,0x2b,0x66,0xdb,0xab]
+ vfpclasspsy $0xab, %ymm19, %k3 {%k3}
+
// CHECK: vfpclassps $123, %ymm19, %k3
// CHECK: encoding: [0x62,0xb3,0x7d,0x28,0x66,0xdb,0x7b]
vfpclassps $0x7b, %ymm19, %k3
+// CHECK: vfpclassps $123, %ymm19, %k3
+// CHECK: encoding: [0x62,0xb3,0x7d,0x28,0x66,0xdb,0x7b]
+ vfpclasspsy $0x7b, %ymm19, %k3
+
// CHECK: vfpclasspsy $123, (%rcx), %k3
// CHECK: encoding: [0x62,0xf3,0x7d,0x28,0x66,0x19,0x7b]
vfpclasspsy $0x7b,(%rcx), %k3
@@ -5844,6 +6080,10 @@
// CHECK: encoding: [0x62,0xf3,0x7d,0x38,0x66,0x19,0x7b]
vfpclassps $0x7b,(%rcx){1to8}, %k3
+// CHECK: vfpclassps $123, (%rcx){1to8}, %k3
+// CHECK: encoding: [0x62,0xf3,0x7d,0x38,0x66,0x19,0x7b]
+ vfpclasspsy $0x7b,(%rcx){1to8}, %k3
+
// CHECK: vfpclasspsy $123, 4064(%rdx), %k3
// CHECK: encoding: [0x62,0xf3,0x7d,0x28,0x66,0x5a,0x7f,0x7b]
vfpclasspsy $0x7b,4064(%rdx), %k3
@@ -5864,18 +6104,34 @@
// CHECK: encoding: [0x62,0xf3,0x7d,0x38,0x66,0x5a,0x7f,0x7b]
vfpclassps $0x7b,508(%rdx){1to8}, %k3
+// CHECK: vfpclassps $123, 508(%rdx){1to8}, %k3
+// CHECK: encoding: [0x62,0xf3,0x7d,0x38,0x66,0x5a,0x7f,0x7b]
+ vfpclasspsy $0x7b,508(%rdx){1to8}, %k3
+
// CHECK: vfpclassps $123, 512(%rdx){1to8}, %k3
// CHECK: encoding: [0x62,0xf3,0x7d,0x38,0x66,0x9a,0x00,0x02,0x00,0x00,0x7b]
vfpclassps $0x7b,512(%rdx){1to8}, %k3
+// CHECK: vfpclassps $123, 512(%rdx){1to8}, %k3
+// CHECK: encoding: [0x62,0xf3,0x7d,0x38,0x66,0x9a,0x00,0x02,0x00,0x00,0x7b]
+ vfpclasspsy $0x7b,512(%rdx){1to8}, %k3
+
// CHECK: vfpclassps $123, -512(%rdx){1to8}, %k3
// CHECK: encoding: [0x62,0xf3,0x7d,0x38,0x66,0x5a,0x80,0x7b]
vfpclassps $0x7b,-512(%rdx){1to8}, %k3
+// CHECK: vfpclassps $123, -512(%rdx){1to8}, %k3
+// CHECK: encoding: [0x62,0xf3,0x7d,0x38,0x66,0x5a,0x80,0x7b]
+ vfpclasspsy $0x7b,-512(%rdx){1to8}, %k3
+
// CHECK: vfpclassps $123, -516(%rdx){1to8}, %k3
// CHECK: encoding: [0x62,0xf3,0x7d,0x38,0x66,0x9a,0xfc,0xfd,0xff,0xff,0x7b]
vfpclassps $0x7b,-516(%rdx){1to8}, %k3
+// CHECK: vfpclassps $123, -516(%rdx){1to8}, %k3
+// CHECK: encoding: [0x62,0xf3,0x7d,0x38,0x66,0x9a,0xfc,0xfd,0xff,0xff,0x7b]
+ vfpclasspsy $0x7b,-516(%rdx){1to8}, %k3
+
// CHECK: vbroadcasti32x2 %xmm30, %xmm30
// CHECK: encoding: [0x62,0x02,0x7d,0x08,0x59,0xf6]
vbroadcasti32x2 %xmm30, %xmm30
More information about the llvm-commits
mailing list