[llvm] RuntimeLibcalls: Remove table of soft float compare cond codes (PR #146082)
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Tue Jul 8 04:58:44 PDT 2025
================
@@ -601,37 +601,80 @@ RTLIB::Libcall RTLIB::getMEMSET_ELEMENT_UNORDERED_ATOMIC(uint64_t ElementSize) {
}
}
-void RTLIB::initCmpLibcallCCs(ISD::CondCode *CmpLibcallCCs) {
- std::fill(CmpLibcallCCs, CmpLibcallCCs + RTLIB::UNKNOWN_LIBCALL,
- ISD::SETCC_INVALID);
- CmpLibcallCCs[RTLIB::OEQ_F32] = ISD::SETEQ;
- CmpLibcallCCs[RTLIB::OEQ_F64] = ISD::SETEQ;
- CmpLibcallCCs[RTLIB::OEQ_F128] = ISD::SETEQ;
- CmpLibcallCCs[RTLIB::OEQ_PPCF128] = ISD::SETEQ;
- CmpLibcallCCs[RTLIB::UNE_F32] = ISD::SETNE;
- CmpLibcallCCs[RTLIB::UNE_F64] = ISD::SETNE;
- CmpLibcallCCs[RTLIB::UNE_F128] = ISD::SETNE;
- CmpLibcallCCs[RTLIB::UNE_PPCF128] = ISD::SETNE;
- CmpLibcallCCs[RTLIB::OGE_F32] = ISD::SETGE;
- CmpLibcallCCs[RTLIB::OGE_F64] = ISD::SETGE;
- CmpLibcallCCs[RTLIB::OGE_F128] = ISD::SETGE;
- CmpLibcallCCs[RTLIB::OGE_PPCF128] = ISD::SETGE;
- CmpLibcallCCs[RTLIB::OLT_F32] = ISD::SETLT;
- CmpLibcallCCs[RTLIB::OLT_F64] = ISD::SETLT;
- CmpLibcallCCs[RTLIB::OLT_F128] = ISD::SETLT;
- CmpLibcallCCs[RTLIB::OLT_PPCF128] = ISD::SETLT;
- CmpLibcallCCs[RTLIB::OLE_F32] = ISD::SETLE;
- CmpLibcallCCs[RTLIB::OLE_F64] = ISD::SETLE;
- CmpLibcallCCs[RTLIB::OLE_F128] = ISD::SETLE;
- CmpLibcallCCs[RTLIB::OLE_PPCF128] = ISD::SETLE;
- CmpLibcallCCs[RTLIB::OGT_F32] = ISD::SETGT;
- CmpLibcallCCs[RTLIB::OGT_F64] = ISD::SETGT;
- CmpLibcallCCs[RTLIB::OGT_F128] = ISD::SETGT;
- CmpLibcallCCs[RTLIB::OGT_PPCF128] = ISD::SETGT;
- CmpLibcallCCs[RTLIB::UO_F32] = ISD::SETNE;
- CmpLibcallCCs[RTLIB::UO_F64] = ISD::SETNE;
- CmpLibcallCCs[RTLIB::UO_F128] = ISD::SETNE;
- CmpLibcallCCs[RTLIB::UO_PPCF128] = ISD::SETNE;
+ISD::CondCode TargetLoweringBase::getSoftFloatCmpLibcallPredicate(
+ RTLIB::LibcallImpl Impl) const {
+ switch (Impl) {
+ case RTLIB::__aeabi_dcmpeq__ne:
+ return ISD::SETNE;
+ case RTLIB::__aeabi_dcmpeq__eq:
+ return ISD::SETEQ;
+ case RTLIB::__aeabi_dcmplt:
+ return ISD::SETNE;
+ case RTLIB::__aeabi_dcmple:
+ return ISD::SETNE;
+ case RTLIB::__aeabi_dcmpge:
+ return ISD::SETNE;
+ case RTLIB::__aeabi_dcmpgt:
+ return ISD::SETNE;
+ case RTLIB::__aeabi_dcmpun:
+ return ISD::SETNE;
+ case RTLIB::__aeabi_fcmpeq__ne:
+ return ISD::SETNE;
+ case RTLIB::__aeabi_fcmpeq__eq:
+ return ISD::SETEQ;
+ case RTLIB::__aeabi_fcmplt:
+ return ISD::SETNE;
+ case RTLIB::__aeabi_fcmple:
+ return ISD::SETNE;
+ case RTLIB::__aeabi_fcmpge:
+ return ISD::SETNE;
+ case RTLIB::__aeabi_fcmpgt:
+ return ISD::SETNE;
+ default:
----------------
RKSimon wrote:
OK, maybe a comment describing this as the mapping makes very little sense by itself.
https://github.com/llvm/llvm-project/pull/146082
More information about the llvm-commits
mailing list