Index: lib/Target/X86/X86InstrAVX512.td =================================================================== --- lib/Target/X86/X86InstrAVX512.td +++ lib/Target/X86/X86InstrAVX512.td @@ -1414,7 +1414,7 @@ let mayLoad = 1 in defm rm_Int : AVX512_maskable_cmp<0xC2, MRMSrcMem, _, (outs _.KRC:$dst), - (ins _.RC:$src1, _.MemOp:$src2, AVXCC:$cc), + (ins _.RC:$src1, _.ScalarMemOp:$src2, AVXCC:$cc), "vcmp${cc}"#_.Suffix, "$src2, $src1", "$src1, $src2", (OpNode (_.VT _.RC:$src1), @@ -1439,7 +1439,7 @@ "$cc, $src2, $src1", "$src1, $src2, $cc">, EVEX_4V; defm rmi_alt : AVX512_maskable_cmp_alt<0xC2, MRMSrcMem, _, (outs _.KRC:$dst), - (ins _.RC:$src1, _.MemOp:$src2, u8imm:$cc), + (ins _.RC:$src1, _.ScalarMemOp:$src2, u8imm:$cc), "vcmp"#_.Suffix, "$cc, $src2, $src1", "$src1, $src2, $cc">, EVEX_4V, EVEX_CD8<_.EltSize, CD8VT1>; @@ -3616,7 +3616,7 @@ itins.rr, IsCommutable>; defm rm_Int : AVX512_maskable_scalar; let mayLoad = 1 in { defm rm: AVX512_maskable_scalar; + (OpNode _.RC:$src1, + (_.VT (scalar_to_vector (_.ScalarLdFrag addr:$src2))), + (i32 FROUND_CURRENT))>; }//let mayLoad = 1 } @@ -4691,7 +4693,7 @@ let mayLoad = 1 in defm m_Int: AVX512_maskable_3src_scalar, AVX512FMA3Base; defm rb_Int: AVX512_maskable_3src_scalar, EVEX, EVEX_B; - def rm : SI, EVEX; @@ -5109,7 +5111,7 @@ (_Src.VT _Src.RC:$src2)))>, EVEX_4V, VEX_LIG, Sched<[WriteCvtF2F]>; defm rm : AVX512_maskable_scalar, EVEX; defm rmb : AVX512_maskable { defm rb : AVX512_maskable<0x1D, MRMDestReg, _dest ,(outs _dest.RC:$dst), (ins _src.RC:$src1, i32u8imm:$src2), - "vcvtps2ph", "$src2, {sae}, $src1", "$src1, $src2, {sae}", + "vcvtps2ph", "$src2, {sae}, $src1", "$src1, {sae}, $src2", (X86cvtps2ph (_src.VT _src.RC:$src1), (i32 imm:$src2), (i32 FROUND_NO_EXC))>, EVEX_B, AVX512AIi8Base; @@ -5739,7 +5741,7 @@ (OpNode (_.VT _.RC:$src1), (_.VT _.RC:$src2))>, EVEX_4V; let mayLoad = 1 in { defm rm : AVX512_maskable_scalar, EVEX_4V; @@ -5819,7 +5821,7 @@ (i32 FROUND_NO_EXC))>, EVEX_B; defm m : AVX512_maskable_scalar; defm mb : AVX512_maskable; let mayLoad = 1 in defm m_Int : AVX512_maskable_scalar{ defm rri : AVX512_maskable; @@ -7536,7 +7539,7 @@ let Constraints = "$src1 = $dst" in { defm rri : AVX512_maskable_3src