[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