From: Craig Topper Date: Sat, 25 Feb 2017 18:43:42 +0000 (+0000) Subject: [AVX-512] Remove unnecessary masked versions of VCVTSS2SD and VCVTSD2SS using the... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d63ab8f4ea74cc88bf3c7dbde056552571017b46;p=llvm [AVX-512] Remove unnecessary masked versions of VCVTSS2SD and VCVTSD2SS using the scalar register class. We only have patterns for the masked intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@296264 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/X86/X86InstrAVX512.td b/lib/Target/X86/X86InstrAVX512.td index 69eb1536b06..1de8e2b25d1 100644 --- a/lib/Target/X86/X86InstrAVX512.td +++ b/lib/Target/X86/X86InstrAVX512.td @@ -308,18 +308,6 @@ multiclass AVX512_maskable_scalar O, Format F, X86VectorVTInfo _, (X86selects _.KRCWM:$mask, RHS, _.RC:$src0), X86selects, "$src0 = $dst", itin, IsCommutable>; -// Similar to AVX512_maskable_scalar, but with scalar types. -multiclass AVX512_maskable_fp_scalar O, Format F, X86VectorVTInfo _, - dag Outs, dag Ins, string OpcodeStr, - string AttSrcAsm, string IntelSrcAsm, - InstrItinClass itin = NoItinerary, - bit IsCommutable = 0> : - AVX512_maskable_fp_common; - // Similar to AVX512_maskable but in this case one of the source operands // ($src1) is already tied to $dst so we just use that for the preserved // vector elements. NOTE that the NonTiedIns (the ins dag) should exclude @@ -6059,7 +6047,6 @@ let Predicates = [HasAVX512] in { //===----------------------------------------------------------------------===// multiclass avx512_cvt_fp_scalar opc, string OpcodeStr, X86VectorVTInfo _, X86VectorVTInfo _Src, SDNode OpNode> { - let isCodeGenOnly = 1 in { defm rr_Int : AVX512_maskable_scalar opc, string OpcodeStr, X86VectorVTInfo _ (_Src.ScalarLdFrag addr:$src2))), (i32 FROUND_CURRENT)))>, EVEX_4V, VEX_LIG, Sched<[WriteCvtF2FLd, ReadAfterLd]>; - } - defm rr : AVX512_maskable_fp_scalar, - EVEX_4V, VEX_LIG, Sched<[WriteCvtF2F]>; - let mayLoad = 1 in - defm rm : AVX512_maskable_fp_scalar, - EVEX_4V, VEX_LIG, Sched<[WriteCvtF2FLd, ReadAfterLd]>; - + let isCodeGenOnly = 1, hasSideEffects = 0 in { + def rr : I, + EVEX_4V, VEX_LIG, Sched<[WriteCvtF2F]>; + let mayLoad = 1 in + def rm : I, + EVEX_4V, VEX_LIG, Sched<[WriteCvtF2FLd, ReadAfterLd]>; + } } // Scalar Coversion with SAE - suppress all exceptions