[X86] Set the execution domain for vptest instruction to the integer domain.
authorCraig Topper <craig.topper@intel.com>
Sat, 11 Nov 2017 06:19:12 +0000 (06:19 +0000)
committerCraig Topper <craig.topper@intel.com>
Sat, 11 Nov 2017 06:19:12 +0000 (06:19 +0000)
llvm-svn: 317973

llvm/lib/Target/X86/X86InstrAVX512.td
llvm/test/CodeGen/X86/setcc-lowering.ll

index e106084..a432ca1 100644 (file)
@@ -4982,6 +4982,7 @@ defm VSCALEF : avx512_fp_scalef_all<0x2C, 0x2D, "vscalef", X86scalef, X86scalefs
 
 multiclass avx512_vptest<bits<8> opc, string OpcodeStr, SDNode OpNode,
                             X86VectorVTInfo _> {
+  let ExeDomain = _.ExeDomain in {
   let isCommutable = 1 in
   defm rr : AVX512_maskable_cmp<opc, MRMSrcReg, _, (outs _.KRC:$dst),
                    (ins _.RC:$src1, _.RC:$src2), OpcodeStr,
@@ -4995,10 +4996,12 @@ multiclass avx512_vptest<bits<8> opc, string OpcodeStr, SDNode OpNode,
                     (_.VT (bitconvert (_.LdFrag addr:$src2))))>,
                     EVEX_4V,
                    EVEX_CD8<_.EltSize, CD8VF>;
+  }
 }
 
 multiclass avx512_vptest_mb<bits<8> opc, string OpcodeStr, SDNode OpNode,
                             X86VectorVTInfo _> {
+  let ExeDomain = _.ExeDomain in
   defm rmb : AVX512_maskable_cmp<opc, MRMSrcMem, _, (outs _.KRC:$dst),
                     (ins _.RC:$src1, _.ScalarMemOp:$src2), OpcodeStr,
                     "${src2}"##_.BroadcastStr##", $src1",
index 359b8d6..a4db6b4 100644 (file)
@@ -24,7 +24,7 @@ define <8 x i16> @pr25080(<8 x i32> %a) {
 ; KNL-32-LABEL: pr25080:
 ; KNL-32:       # BB#0: # %entry
 ; KNL-32-NEXT:    # kill: %YMM0<def> %YMM0<kill> %ZMM0<def>
-; KNL-32-NEXT:    vbroadcastss {{.*#+}} ymm1 = [8388607,8388607,8388607,8388607,8388607,8388607,8388607,8388607]
+; KNL-32-NEXT:    vpbroadcastd {{.*#+}} ymm1 = [8388607,8388607,8388607,8388607,8388607,8388607,8388607,8388607]
 ; KNL-32-NEXT:    vptestnmd %zmm1, %zmm0, %k0
 ; KNL-32-NEXT:    movb $15, %al
 ; KNL-32-NEXT:    kmovw %eax, %k1