@@ -3878,7 +3878,7 @@ bool SelectionDAGLegalize::ExpandNode(SDNode *Node) {
38783878 RTLIB::Libcall LC = RTLIB::getLDEXP (VT);
38793879 // Use the LibCall instead, it is very likely faster
38803880 // FIXME: Use separate LibCall action.
3881- if (TLI.getLibcallName (LC))
3881+ if (TLI.getLibcallImpl (LC) != RTLIB::Unsupported )
38823882 break ;
38833883
38843884 if (SDValue Expanded = expandLdexp (Node)) {
@@ -3893,7 +3893,7 @@ bool SelectionDAGLegalize::ExpandNode(SDNode *Node) {
38933893 RTLIB::Libcall LC = RTLIB::getFREXP (Node->getValueType (0 ));
38943894 // Use the LibCall instead, it is very likely faster
38953895 // FIXME: Use separate LibCall action.
3896- if (TLI.getLibcallName (LC))
3896+ if (TLI.getLibcallImpl (LC) != RTLIB::Unsupported )
38973897 break ;
38983898
38993899 if (SDValue Expanded = expandFrexp (Node)) {
@@ -4695,7 +4695,7 @@ void SelectionDAGLegalize::ConvertNodeToLibcall(SDNode *Node) {
46954695 RTLIB::Libcall LC = RTLIB::getOUTLINE_ATOMIC (Opc, Order, VT);
46964696 EVT RetVT = Node->getValueType (0 );
46974697 SmallVector<SDValue, 4 > Ops;
4698- if (TLI.getLibcallName (LC)) {
4698+ if (TLI.getLibcallImpl (LC) != RTLIB::Unsupported ) {
46994699 // If outline atomic available, prepare its arguments and expand.
47004700 Ops.append (Node->op_begin () + 2 , Node->op_end ());
47014701 Ops.push_back (Node->getOperand (1 ));
@@ -4961,7 +4961,7 @@ void SelectionDAGLegalize::ConvertNodeToLibcall(SDNode *Node) {
49614961 case ISD::STRICT_FPOWI: {
49624962 RTLIB::Libcall LC = RTLIB::getPOWI (Node->getSimpleValueType (0 ));
49634963 assert (LC != RTLIB::UNKNOWN_LIBCALL && " Unexpected fpowi." );
4964- if (! TLI.getLibcallName (LC)) {
4964+ if (TLI.getLibcallImpl (LC) == RTLIB::Unsupported ) {
49654965 // Some targets don't have a powi libcall; use pow instead.
49664966 if (Node->isStrictFPOpcode ()) {
49674967 SDValue Exponent =
0 commit comments