From a8f3840c62a7c0fde28e9a3f1a32e30ba5579121 Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Fri, 3 May 2019 16:15:15 +0000 Subject: [PATCH] [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. llvm-svn: 359903 --- llvm/lib/Target/X86/X86InstrAVX512.td | 31 ++- llvm/test/MC/X86/intel-syntax-x86-avx512dq_vl.s | 96 +++++++++ llvm/test/MC/X86/x86-64-avx512dq.s | 123 +++++++++++ llvm/test/MC/X86/x86-64-avx512dq_vl.s | 260 +++++++++++++++++++++++- 4 files changed, 503 insertions(+), 7 deletions(-) diff --git a/llvm/lib/Target/X86/X86InstrAVX512.td b/llvm/lib/Target/X86/X86InstrAVX512.td index b397ccd..d857b8e 100644 --- a/llvm/lib/Target/X86/X86InstrAVX512.td +++ b/llvm/lib/Target/X86/X86InstrAVX512.td @@ -2669,7 +2669,7 @@ multiclass avx512_vector_fpclass opc, string OpcodeStr, EVEX_K, Sched<[sched]>; def rm : AVX512 opc, string OpcodeStr, Sched<[sched.Folded, sched.ReadAfterFold]>; def rmk : AVX512 opc, string OpcodeStr, (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(NAME#"rr") + _.KRC:$dst, _.RC:$src1, i32u8imm:$src2), 0, "att">; + def : InstAlias(NAME#"rrk") + _.KRC:$dst, _.KRCWM:$mask, _.RC:$src1, i32u8imm:$src2), 0, "att">; + def : InstAlias(NAME#"rmb") + _.KRC:$dst, _.ScalarMemOp:$src1, i32u8imm:$src2), 0, "att">; + def : InstAlias(NAME#"rmbk") + _.KRC:$dst, _.KRCWM:$mask, _.ScalarMemOp:$src1, i32u8imm:$src2), 0, "att">; } multiclass avx512_vector_fpclass_all{ let Predicates = [prd] in { defm Z : avx512_vector_fpclass, EVEX_V512; + _.info512, "z">, EVEX_V512; } let Predicates = [prd, HasVLX] in { defm Z128 : avx512_vector_fpclass, EVEX_V128; + _.info128, "x">, EVEX_V128; defm Z256 : avx512_vector_fpclass, EVEX_V256; + _.info256, "y">, EVEX_V256; } } diff --git a/llvm/test/MC/X86/intel-syntax-x86-avx512dq_vl.s b/llvm/test/MC/X86/intel-syntax-x86-avx512dq_vl.s index 7693cab..e2d6850 100644 --- a/llvm/test/MC/X86/intel-syntax-x86-avx512dq_vl.s +++ b/llvm/test/MC/X86/intel-syntax-x86-avx512dq_vl.s @@ -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 diff --git a/llvm/test/MC/X86/x86-64-avx512dq.s b/llvm/test/MC/X86/x86-64-avx512dq.s index 1e41905..4510352 100644 --- a/llvm/test/MC/X86/x86-64-avx512dq.s +++ b/llvm/test/MC/X86/x86-64-avx512dq.s @@ -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] diff --git a/llvm/test/MC/X86/x86-64-avx512dq_vl.s b/llvm/test/MC/X86/x86-64-avx512dq_vl.s index 6a048b1..3a8f82b 100644 --- a/llvm/test/MC/X86/x86-64-avx512dq_vl.s +++ b/llvm/test/MC/X86/x86-64-avx512dq_vl.s @@ -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 -- 2.7.4