mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 19:52:54 +01:00
[X86] Mark vector STRICT_FP_ROUND as Legal instead of Custom.
The Custom handler doesn't do anything for these nodes anyway. SelectionDAGISel won't mutate them if they are Legal or Custom. X86 has custom code for mutating them due to missing isel patterns. When the isel patterns are added Legal will be the right answer. So go ahead a change it now since that's where we'll end up.
This commit is contained in:
parent
75e10dcf71
commit
079091fb71
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user