[PATCH] D149320: [RISCV] Disable mutating strict-fp to fp and use correct lowering action of strict_fsetcc(s).
Yeting Kuo via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Apr 27 00:53:10 PDT 2023
fakepaper56 created this revision.
Herald added subscribers: jobnoorman, luke, VincentWu, vkmr, frasercrmck, evandro, luismarques, apazos, sameer.abuasal, s.egerton, Jim, benna, psnobl, jocewei, PkmX, the_o, brucehoult, MartinMosbeck, rogfer01, edward-jones, zzheng, jrtc27, shiva0217, kito-cheng, niosHD, sabuasal, simoncook, johnrusso, rbar, asb, hiraditya, arichardson.
Herald added a project: All.
fakepaper56 requested review of this revision.
Herald added subscribers: llvm-commits, pcwang-thead, eopXD, MaskRay.
Herald added a project: LLVM.
The patch disables mutating strict-fp to fp by setting IsStrictFPEnabled to true.
It also fixes wrong lowering action of strict_fsetcc(s).
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D149320
Files:
llvm/lib/Target/RISCV/RISCVISelLowering.cpp
Index: llvm/lib/Target/RISCV/RISCVISelLowering.cpp
===================================================================
--- llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+++ llvm/lib/Target/RISCV/RISCVISelLowering.cpp
@@ -635,6 +635,8 @@
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 @@
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 @@
setLibcallName(RTLIB::FPEXT_F16_F32, "__extendhfsf2");
setLibcallName(RTLIB::FPROUND_F32_F16, "__truncsfhf2");
+
+ // Disable mutating strict-fp to fp.
+ IsStrictFPEnabled = true;
}
EVT RISCVTargetLowering::getSetCCResultType(const DataLayout &DL,
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D149320.517469.patch
Type: text/x-patch
Size: 1215 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230427/c4d7ac6a/attachment.bin>
More information about the llvm-commits
mailing list