mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-11-24 14:20:17 +00:00
[RISCV] Disable strict node mutation and use correct lowering action of strict_fsetcc(s).
The patch disables strict node mutation by setting IsStrictFPEnabled to true. It also fixes wrong lowering action of strict_fsetcc(s). Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D149320
This commit is contained in:
parent
78ceb39b01
commit
74e931849e
@ -635,6 +635,8 @@ RISCVTargetLowering::RISCVTargetLowering(const TargetMachine &TM,
|
||||
|
||||
setOperationAction(ISD::VECTOR_REVERSE, VT, Custom);
|
||||
|
||||
setOperationAction({ISD::STRICT_FSETCC, ISD::STRICT_FSETCCS}, VT, Legal);
|
||||
|
||||
setOperationPromotedToType(
|
||||
ISD::VECTOR_SPLICE, VT,
|
||||
MVT::getVectorVT(MVT::i8, VT.getVectorElementCount()));
|
||||
@ -894,8 +896,9 @@ RISCVTargetLowering::RISCVTargetLowering(const TargetMachine &TM,
|
||||
|
||||
setOperationAction(ISD::SETCC, VT, Custom);
|
||||
|
||||
setOperationAction({ISD::STRICT_FSETCC, ISD::STRICT_FSETCCS}, VT,
|
||||
Legal);
|
||||
if (VT.getVectorElementType() == MVT::i1)
|
||||
setOperationAction({ISD::STRICT_FSETCC, ISD::STRICT_FSETCCS}, VT,
|
||||
Legal);
|
||||
|
||||
setOperationAction(ISD::SELECT, VT, Custom);
|
||||
|
||||
@ -1147,6 +1150,9 @@ RISCVTargetLowering::RISCVTargetLowering(const TargetMachine &TM,
|
||||
|
||||
setLibcallName(RTLIB::FPEXT_F16_F32, "__extendhfsf2");
|
||||
setLibcallName(RTLIB::FPROUND_F32_F16, "__truncsfhf2");
|
||||
|
||||
// Disable strict node mutation.
|
||||
IsStrictFPEnabled = true;
|
||||
}
|
||||
|
||||
EVT RISCVTargetLowering::getSetCCResultType(const DataLayout &DL,
|
||||
|
Loading…
Reference in New Issue
Block a user