diff options
-rw-r--r-- | llvm/lib/Target/X86/X86ISelLowering.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index 38f82c04296..4482b023e2c 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -814,7 +814,9 @@ X86TargetLowering::X86TargetLowering(const X86TargetMachine &TM, setOperationAction(ISD::LOAD, MVT::v2f32, Custom); setOperationAction(ISD::STORE, MVT::v2f32, Custom); - setOperationAction(ISD::STRICT_FP_ROUND, MVT::v4f32, Custom); + // FIXME: Currently mutated to non-strict form in X86ISelDAGToDAG::Select, + // but its sufficient to pretend their Legal since they will be someday. + setOperationAction(ISD::STRICT_FP_ROUND, MVT::v4f32, Legal); } if (!Subtarget.useSoftFloat() && Subtarget.hasSSE2()) { @@ -1104,7 +1106,9 @@ X86TargetLowering::X86TargetLowering(const X86TargetMachine &TM, setOperationAction(ISD::SINT_TO_FP, MVT::v8i32, Legal); - setOperationAction(ISD::STRICT_FP_ROUND, MVT::v8f32, Custom); + // FIXME: Currently mutated to non-strict form in X86ISelDAGToDAG::Select, + // but its sufficient to pretend their Legal since they will be someday. + setOperationAction(ISD::STRICT_FP_ROUND, MVT::v8f32, Legal); if (!Subtarget.hasAVX512()) setOperationAction(ISD::BITCAST, MVT::v32i1, Custom); @@ -1367,7 +1371,9 @@ X86TargetLowering::X86TargetLowering(const X86TargetMachine &TM, setOperationAction(ISD::SINT_TO_FP, MVT::v16i32, Legal); setOperationAction(ISD::UINT_TO_FP, MVT::v16i32, Legal); - setOperationAction(ISD::STRICT_FP_ROUND, MVT::v16f32, Custom); + // FIXME: Currently mutated to non-strict form in X86ISelDAGToDAG::Select, + // but its sufficient to pretend their Legal since they will be someday. + setOperationAction(ISD::STRICT_FP_ROUND, MVT::v16f32, Legal); setTruncStoreAction(MVT::v8i64, MVT::v8i8, Legal); setTruncStoreAction(MVT::v8i64, MVT::v8i16, Legal); |