Skip to content

Commit 7b9d10d

Browse files
authored
PowerPC: Fix using long double libm functions for f128 intrinsics (#144382)
This wasn't setting the correct libcall names, which default to the l suffixed libm names.
1 parent af49a65 commit 7b9d10d

File tree

2 files changed

+91
-100
lines changed

2 files changed

+91
-100
lines changed

llvm/lib/IR/RuntimeLibcalls.cpp

Lines changed: 67 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,69 @@ void RuntimeLibcallsInfo::initSoftFloatCmpLibcallPredicates() {
281281
SoftFloatCompareLibcallPredicates[RTLIB::UO_PPCF128] = CmpInst::ICMP_NE;
282282
}
283283

284+
static void setLongDoubleIsF128Libm(RuntimeLibcallsInfo &Info,
285+
bool FiniteOnlyFuncs = false) {
286+
Info.setLibcallName(RTLIB::REM_F128, "fmodf128");
287+
Info.setLibcallName(RTLIB::FMA_F128, "fmaf128");
288+
Info.setLibcallName(RTLIB::SQRT_F128, "sqrtf128");
289+
Info.setLibcallName(RTLIB::CBRT_F128, "cbrtf128");
290+
Info.setLibcallName(RTLIB::LOG_F128, "logf128");
291+
Info.setLibcallName(RTLIB::LOG2_F128, "log2f128");
292+
Info.setLibcallName(RTLIB::LOG10_F128, "log10f128");
293+
Info.setLibcallName(RTLIB::EXP_F128, "expf128");
294+
Info.setLibcallName(RTLIB::EXP2_F128, "exp2f128");
295+
Info.setLibcallName(RTLIB::EXP10_F128, "exp10f128");
296+
Info.setLibcallName(RTLIB::SIN_F128, "sinf128");
297+
Info.setLibcallName(RTLIB::COS_F128, "cosf128");
298+
Info.setLibcallName(RTLIB::TAN_F128, "tanf128");
299+
Info.setLibcallName(RTLIB::SINCOS_F128, "sincosf128");
300+
Info.setLibcallName(RTLIB::ASIN_F128, "asinf128");
301+
Info.setLibcallName(RTLIB::ACOS_F128, "acosf128");
302+
Info.setLibcallName(RTLIB::ATAN_F128, "atanf128");
303+
Info.setLibcallName(RTLIB::ATAN2_F128, "atan2f128");
304+
Info.setLibcallName(RTLIB::SINH_F128, "sinhf128");
305+
Info.setLibcallName(RTLIB::COSH_F128, "coshf128");
306+
Info.setLibcallName(RTLIB::TANH_F128, "tanhf128");
307+
Info.setLibcallName(RTLIB::POW_F128, "powf128");
308+
Info.setLibcallName(RTLIB::CEIL_F128, "ceilf128");
309+
Info.setLibcallName(RTLIB::TRUNC_F128, "truncf128");
310+
Info.setLibcallName(RTLIB::RINT_F128, "rintf128");
311+
Info.setLibcallName(RTLIB::NEARBYINT_F128, "nearbyintf128");
312+
Info.setLibcallName(RTLIB::ROUND_F128, "roundf128");
313+
Info.setLibcallName(RTLIB::ROUNDEVEN_F128, "roundevenf128");
314+
Info.setLibcallName(RTLIB::FLOOR_F128, "floorf128");
315+
Info.setLibcallName(RTLIB::COPYSIGN_F128, "copysignf128");
316+
Info.setLibcallName(RTLIB::FMIN_F128, "fminf128");
317+
Info.setLibcallName(RTLIB::FMAX_F128, "fmaxf128");
318+
Info.setLibcallName(RTLIB::FMINIMUM_F128, "fminimumf128");
319+
Info.setLibcallName(RTLIB::FMAXIMUM_F128, "fmaximumf128");
320+
Info.setLibcallName(RTLIB::FMINIMUM_NUM_F128, "fminimum_numf128");
321+
Info.setLibcallName(RTLIB::FMAXIMUM_NUM_F128, "fmaximum_numf128");
322+
Info.setLibcallName(RTLIB::LROUND_F128, "lroundf128");
323+
Info.setLibcallName(RTLIB::LLROUND_F128, "llroundf128");
324+
Info.setLibcallName(RTLIB::LRINT_F128, "lrintf128");
325+
Info.setLibcallName(RTLIB::LLRINT_F128, "llrintf128");
326+
Info.setLibcallName(RTLIB::LDEXP_F128, "ldexpf128");
327+
Info.setLibcallName(RTLIB::FREXP_F128, "frexpf128");
328+
Info.setLibcallName(RTLIB::MODF_F128, "modff128");
329+
330+
if (FiniteOnlyFuncs) {
331+
Info.setLibcallName(RTLIB::LOG_FINITE_F128, "__logf128_finite");
332+
Info.setLibcallName(RTLIB::LOG2_FINITE_F128, "__log2f128_finite");
333+
Info.setLibcallName(RTLIB::LOG10_FINITE_F128, "__log10f128_finite");
334+
Info.setLibcallName(RTLIB::EXP_FINITE_F128, "__expf128_finite");
335+
Info.setLibcallName(RTLIB::EXP2_FINITE_F128, "__exp2f128_finite");
336+
Info.setLibcallName(RTLIB::POW_FINITE_F128, "__powf128_finite");
337+
} else {
338+
Info.setLibcallName(RTLIB::LOG_FINITE_F128, nullptr);
339+
Info.setLibcallName(RTLIB::LOG2_FINITE_F128, nullptr);
340+
Info.setLibcallName(RTLIB::LOG10_FINITE_F128, nullptr);
341+
Info.setLibcallName(RTLIB::EXP_FINITE_F128, nullptr);
342+
Info.setLibcallName(RTLIB::EXP2_FINITE_F128, nullptr);
343+
Info.setLibcallName(RTLIB::POW_FINITE_F128, nullptr);
344+
}
345+
}
346+
284347
/// Set default libcall names. If a target wants to opt-out of a libcall it
285348
/// should be placed here.
286349
void RuntimeLibcallsInfo::initLibcalls(const Triple &TT) {
@@ -295,57 +358,8 @@ void RuntimeLibcallsInfo::initLibcalls(const Triple &TT) {
295358
#undef LIBCALL_NO_NAME
296359

297360
// Use the f128 variants of math functions on x86
298-
if (TT.isX86() && TT.isGNUEnvironment()) {
299-
setLibcallName(RTLIB::REM_F128, "fmodf128");
300-
setLibcallName(RTLIB::FMA_F128, "fmaf128");
301-
setLibcallName(RTLIB::SQRT_F128, "sqrtf128");
302-
setLibcallName(RTLIB::CBRT_F128, "cbrtf128");
303-
setLibcallName(RTLIB::LOG_F128, "logf128");
304-
setLibcallName(RTLIB::LOG_FINITE_F128, "__logf128_finite");
305-
setLibcallName(RTLIB::LOG2_F128, "log2f128");
306-
setLibcallName(RTLIB::LOG2_FINITE_F128, "__log2f128_finite");
307-
setLibcallName(RTLIB::LOG10_F128, "log10f128");
308-
setLibcallName(RTLIB::LOG10_FINITE_F128, "__log10f128_finite");
309-
setLibcallName(RTLIB::EXP_F128, "expf128");
310-
setLibcallName(RTLIB::EXP_FINITE_F128, "__expf128_finite");
311-
setLibcallName(RTLIB::EXP2_F128, "exp2f128");
312-
setLibcallName(RTLIB::EXP2_FINITE_F128, "__exp2f128_finite");
313-
setLibcallName(RTLIB::EXP10_F128, "exp10f128");
314-
setLibcallName(RTLIB::SIN_F128, "sinf128");
315-
setLibcallName(RTLIB::COS_F128, "cosf128");
316-
setLibcallName(RTLIB::TAN_F128, "tanf128");
317-
setLibcallName(RTLIB::SINCOS_F128, "sincosf128");
318-
setLibcallName(RTLIB::ASIN_F128, "asinf128");
319-
setLibcallName(RTLIB::ACOS_F128, "acosf128");
320-
setLibcallName(RTLIB::ATAN_F128, "atanf128");
321-
setLibcallName(RTLIB::ATAN2_F128, "atan2f128");
322-
setLibcallName(RTLIB::SINH_F128, "sinhf128");
323-
setLibcallName(RTLIB::COSH_F128, "coshf128");
324-
setLibcallName(RTLIB::TANH_F128, "tanhf128");
325-
setLibcallName(RTLIB::POW_F128, "powf128");
326-
setLibcallName(RTLIB::POW_FINITE_F128, "__powf128_finite");
327-
setLibcallName(RTLIB::CEIL_F128, "ceilf128");
328-
setLibcallName(RTLIB::TRUNC_F128, "truncf128");
329-
setLibcallName(RTLIB::RINT_F128, "rintf128");
330-
setLibcallName(RTLIB::NEARBYINT_F128, "nearbyintf128");
331-
setLibcallName(RTLIB::ROUND_F128, "roundf128");
332-
setLibcallName(RTLIB::ROUNDEVEN_F128, "roundevenf128");
333-
setLibcallName(RTLIB::FLOOR_F128, "floorf128");
334-
setLibcallName(RTLIB::COPYSIGN_F128, "copysignf128");
335-
setLibcallName(RTLIB::FMIN_F128, "fminf128");
336-
setLibcallName(RTLIB::FMAX_F128, "fmaxf128");
337-
setLibcallName(RTLIB::FMINIMUM_F128, "fminimumf128");
338-
setLibcallName(RTLIB::FMAXIMUM_F128, "fmaximumf128");
339-
setLibcallName(RTLIB::FMINIMUM_NUM_F128, "fminimum_numf128");
340-
setLibcallName(RTLIB::FMAXIMUM_NUM_F128, "fmaximum_numf128");
341-
setLibcallName(RTLIB::LROUND_F128, "lroundf128");
342-
setLibcallName(RTLIB::LLROUND_F128, "llroundf128");
343-
setLibcallName(RTLIB::LRINT_F128, "lrintf128");
344-
setLibcallName(RTLIB::LLRINT_F128, "llrintf128");
345-
setLibcallName(RTLIB::LDEXP_F128, "ldexpf128");
346-
setLibcallName(RTLIB::FREXP_F128, "frexpf128");
347-
setLibcallName(RTLIB::MODF_F128, "modff128");
348-
}
361+
if (TT.isX86() && TT.isGNUEnvironment())
362+
setLongDoubleIsF128Libm(*this, /*FiniteOnlyFuncs=*/true);
349363

350364
// For IEEE quad-precision libcall names, PPC uses "kf" instead of "tf".
351365
if (TT.isPPC()) {
@@ -379,31 +393,8 @@ void RuntimeLibcallsInfo::initLibcalls(const Triple &TT) {
379393
setLibcallName(RTLIB::OGT_F128, "__gtkf2");
380394
setLibcallName(RTLIB::UO_F128, "__unordkf2");
381395

382-
setLibcallName(RTLIB::LOG_F128, "logf128");
383-
setLibcallName(RTLIB::LOG2_F128, "log2f128");
384-
setLibcallName(RTLIB::LOG10_F128, "log10f128");
385-
setLibcallName(RTLIB::EXP_F128, "expf128");
386-
setLibcallName(RTLIB::EXP2_F128, "exp2f128");
387-
setLibcallName(RTLIB::SIN_F128, "sinf128");
388-
setLibcallName(RTLIB::COS_F128, "cosf128");
389-
setLibcallName(RTLIB::SINCOS_F128, "sincosf128");
390-
setLibcallName(RTLIB::POW_F128, "powf128");
391-
setLibcallName(RTLIB::FMIN_F128, "fminf128");
392-
setLibcallName(RTLIB::FMAX_F128, "fmaxf128");
393-
setLibcallName(RTLIB::REM_F128, "fmodf128");
394-
setLibcallName(RTLIB::SQRT_F128, "sqrtf128");
395-
setLibcallName(RTLIB::CEIL_F128, "ceilf128");
396-
setLibcallName(RTLIB::FLOOR_F128, "floorf128");
397-
setLibcallName(RTLIB::TRUNC_F128, "truncf128");
398-
setLibcallName(RTLIB::ROUND_F128, "roundf128");
399-
setLibcallName(RTLIB::LROUND_F128, "lroundf128");
400-
setLibcallName(RTLIB::LLROUND_F128, "llroundf128");
401-
setLibcallName(RTLIB::RINT_F128, "rintf128");
402-
setLibcallName(RTLIB::LRINT_F128, "lrintf128");
403-
setLibcallName(RTLIB::LLRINT_F128, "llrintf128");
404-
setLibcallName(RTLIB::NEARBYINT_F128, "nearbyintf128");
405-
setLibcallName(RTLIB::FMA_F128, "fmaf128");
406-
setLibcallName(RTLIB::FREXP_F128, "frexpf128");
396+
// TODO: Do the finite only functions exist?
397+
setLongDoubleIsF128Libm(*this, /*FiniteOnlyFuncs=*/false);
407398

408399
if (TT.isOSAIX()) {
409400
bool isPPC64 = TT.isPPC64();

llvm/test/CodeGen/PowerPC/f128-arith.ll

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1413,7 +1413,7 @@ define dso_local fp128 @acos_f128(fp128 %x) {
14131413
; CHECK-NEXT: std r0, 48(r1)
14141414
; CHECK-NEXT: .cfi_def_cfa_offset 32
14151415
; CHECK-NEXT: .cfi_offset lr, 16
1416-
; CHECK-NEXT: bl acosl
1416+
; CHECK-NEXT: bl acosf128
14171417
; CHECK-NEXT: nop
14181418
; CHECK-NEXT: addi r1, r1, 32
14191419
; CHECK-NEXT: ld r0, 16(r1)
@@ -1427,7 +1427,7 @@ define dso_local fp128 @acos_f128(fp128 %x) {
14271427
; CHECK-P8-NEXT: std r0, 48(r1)
14281428
; CHECK-P8-NEXT: .cfi_def_cfa_offset 32
14291429
; CHECK-P8-NEXT: .cfi_offset lr, 16
1430-
; CHECK-P8-NEXT: bl acosl
1430+
; CHECK-P8-NEXT: bl acosf128
14311431
; CHECK-P8-NEXT: nop
14321432
; CHECK-P8-NEXT: addi r1, r1, 32
14331433
; CHECK-P8-NEXT: ld r0, 16(r1)
@@ -1445,7 +1445,7 @@ define dso_local fp128 @asin_f128(fp128 %x) {
14451445
; CHECK-NEXT: std r0, 48(r1)
14461446
; CHECK-NEXT: .cfi_def_cfa_offset 32
14471447
; CHECK-NEXT: .cfi_offset lr, 16
1448-
; CHECK-NEXT: bl asinl
1448+
; CHECK-NEXT: bl asinf128
14491449
; CHECK-NEXT: nop
14501450
; CHECK-NEXT: addi r1, r1, 32
14511451
; CHECK-NEXT: ld r0, 16(r1)
@@ -1459,7 +1459,7 @@ define dso_local fp128 @asin_f128(fp128 %x) {
14591459
; CHECK-P8-NEXT: std r0, 48(r1)
14601460
; CHECK-P8-NEXT: .cfi_def_cfa_offset 32
14611461
; CHECK-P8-NEXT: .cfi_offset lr, 16
1462-
; CHECK-P8-NEXT: bl asinl
1462+
; CHECK-P8-NEXT: bl asinf128
14631463
; CHECK-P8-NEXT: nop
14641464
; CHECK-P8-NEXT: addi r1, r1, 32
14651465
; CHECK-P8-NEXT: ld r0, 16(r1)
@@ -1477,7 +1477,7 @@ define dso_local fp128 @atan_f128(fp128 %x) {
14771477
; CHECK-NEXT: std r0, 48(r1)
14781478
; CHECK-NEXT: .cfi_def_cfa_offset 32
14791479
; CHECK-NEXT: .cfi_offset lr, 16
1480-
; CHECK-NEXT: bl atanl
1480+
; CHECK-NEXT: bl atanf128
14811481
; CHECK-NEXT: nop
14821482
; CHECK-NEXT: addi r1, r1, 32
14831483
; CHECK-NEXT: ld r0, 16(r1)
@@ -1491,7 +1491,7 @@ define dso_local fp128 @atan_f128(fp128 %x) {
14911491
; CHECK-P8-NEXT: std r0, 48(r1)
14921492
; CHECK-P8-NEXT: .cfi_def_cfa_offset 32
14931493
; CHECK-P8-NEXT: .cfi_offset lr, 16
1494-
; CHECK-P8-NEXT: bl atanl
1494+
; CHECK-P8-NEXT: bl atanf128
14951495
; CHECK-P8-NEXT: nop
14961496
; CHECK-P8-NEXT: addi r1, r1, 32
14971497
; CHECK-P8-NEXT: ld r0, 16(r1)
@@ -1509,7 +1509,7 @@ define dso_local fp128 @atan2_f128(fp128 %x, fp128 %y) {
15091509
; CHECK-NEXT: std r0, 48(r1)
15101510
; CHECK-NEXT: .cfi_def_cfa_offset 32
15111511
; CHECK-NEXT: .cfi_offset lr, 16
1512-
; CHECK-NEXT: bl atan2l
1512+
; CHECK-NEXT: bl atan2f128
15131513
; CHECK-NEXT: nop
15141514
; CHECK-NEXT: addi r1, r1, 32
15151515
; CHECK-NEXT: ld r0, 16(r1)
@@ -1523,7 +1523,7 @@ define dso_local fp128 @atan2_f128(fp128 %x, fp128 %y) {
15231523
; CHECK-P8-NEXT: std r0, 48(r1)
15241524
; CHECK-P8-NEXT: .cfi_def_cfa_offset 32
15251525
; CHECK-P8-NEXT: .cfi_offset lr, 16
1526-
; CHECK-P8-NEXT: bl atan2l
1526+
; CHECK-P8-NEXT: bl atan2f128
15271527
; CHECK-P8-NEXT: nop
15281528
; CHECK-P8-NEXT: addi r1, r1, 32
15291529
; CHECK-P8-NEXT: ld r0, 16(r1)
@@ -1566,7 +1566,7 @@ define dso_local fp128 @cosh_f128(fp128 %x) {
15661566
; CHECK-NEXT: std r0, 48(r1)
15671567
; CHECK-NEXT: .cfi_def_cfa_offset 32
15681568
; CHECK-NEXT: .cfi_offset lr, 16
1569-
; CHECK-NEXT: bl coshl
1569+
; CHECK-NEXT: bl coshf128
15701570
; CHECK-NEXT: nop
15711571
; CHECK-NEXT: addi r1, r1, 32
15721572
; CHECK-NEXT: ld r0, 16(r1)
@@ -1580,7 +1580,7 @@ define dso_local fp128 @cosh_f128(fp128 %x) {
15801580
; CHECK-P8-NEXT: std r0, 48(r1)
15811581
; CHECK-P8-NEXT: .cfi_def_cfa_offset 32
15821582
; CHECK-P8-NEXT: .cfi_offset lr, 16
1583-
; CHECK-P8-NEXT: bl coshl
1583+
; CHECK-P8-NEXT: bl coshf128
15841584
; CHECK-P8-NEXT: nop
15851585
; CHECK-P8-NEXT: addi r1, r1, 32
15861586
; CHECK-P8-NEXT: ld r0, 16(r1)
@@ -1598,7 +1598,7 @@ define dso_local fp128 @exp10_f128(fp128 %x) {
15981598
; CHECK-NEXT: std r0, 48(r1)
15991599
; CHECK-NEXT: .cfi_def_cfa_offset 32
16001600
; CHECK-NEXT: .cfi_offset lr, 16
1601-
; CHECK-NEXT: bl exp10l
1601+
; CHECK-NEXT: bl exp10f128
16021602
; CHECK-NEXT: nop
16031603
; CHECK-NEXT: addi r1, r1, 32
16041604
; CHECK-NEXT: ld r0, 16(r1)
@@ -1612,7 +1612,7 @@ define dso_local fp128 @exp10_f128(fp128 %x) {
16121612
; CHECK-P8-NEXT: std r0, 48(r1)
16131613
; CHECK-P8-NEXT: .cfi_def_cfa_offset 32
16141614
; CHECK-P8-NEXT: .cfi_offset lr, 16
1615-
; CHECK-P8-NEXT: bl exp10l
1615+
; CHECK-P8-NEXT: bl exp10f128
16161616
; CHECK-P8-NEXT: nop
16171617
; CHECK-P8-NEXT: addi r1, r1, 32
16181618
; CHECK-P8-NEXT: ld r0, 16(r1)
@@ -1655,7 +1655,7 @@ define dso_local fp128 @ldexp_f128(fp128 %x, i32 %y) {
16551655
; CHECK-NEXT: .cfi_def_cfa_offset 32
16561656
; CHECK-NEXT: .cfi_offset lr, 16
16571657
; CHECK-NEXT: extsw r5, r5
1658-
; CHECK-NEXT: bl ldexpl
1658+
; CHECK-NEXT: bl ldexpf128
16591659
; CHECK-NEXT: nop
16601660
; CHECK-NEXT: addi r1, r1, 32
16611661
; CHECK-NEXT: ld r0, 16(r1)
@@ -1670,7 +1670,7 @@ define dso_local fp128 @ldexp_f128(fp128 %x, i32 %y) {
16701670
; CHECK-P8-NEXT: .cfi_def_cfa_offset 32
16711671
; CHECK-P8-NEXT: .cfi_offset lr, 16
16721672
; CHECK-P8-NEXT: extsw r5, r5
1673-
; CHECK-P8-NEXT: bl ldexpl
1673+
; CHECK-P8-NEXT: bl ldexpf128
16741674
; CHECK-P8-NEXT: nop
16751675
; CHECK-P8-NEXT: addi r1, r1, 32
16761676
; CHECK-P8-NEXT: ld r0, 16(r1)
@@ -1689,7 +1689,7 @@ define dso_local { fp128, fp128 } @modf_f128(fp128 %x) {
16891689
; CHECK-NEXT: .cfi_def_cfa_offset 48
16901690
; CHECK-NEXT: .cfi_offset lr, 16
16911691
; CHECK-NEXT: addi r5, r1, 32
1692-
; CHECK-NEXT: bl modfl
1692+
; CHECK-NEXT: bl modff128
16931693
; CHECK-NEXT: nop
16941694
; CHECK-NEXT: lxv v3, 32(r1)
16951695
; CHECK-NEXT: addi r1, r1, 48
@@ -1708,7 +1708,7 @@ define dso_local { fp128, fp128 } @modf_f128(fp128 %x) {
17081708
; CHECK-P8-NEXT: addi r30, r1, 32
17091709
; CHECK-P8-NEXT: std r0, 80(r1)
17101710
; CHECK-P8-NEXT: mr r5, r30
1711-
; CHECK-P8-NEXT: bl modfl
1711+
; CHECK-P8-NEXT: bl modff128
17121712
; CHECK-P8-NEXT: nop
17131713
; CHECK-P8-NEXT: lxvd2x vs0, 0, r30
17141714
; CHECK-P8-NEXT: xxswapd v3, vs0
@@ -1729,7 +1729,7 @@ define dso_local fp128 @roundeven_f128(fp128 %x) {
17291729
; CHECK-NEXT: std r0, 48(r1)
17301730
; CHECK-NEXT: .cfi_def_cfa_offset 32
17311731
; CHECK-NEXT: .cfi_offset lr, 16
1732-
; CHECK-NEXT: bl roundevenl
1732+
; CHECK-NEXT: bl roundevenf128
17331733
; CHECK-NEXT: nop
17341734
; CHECK-NEXT: addi r1, r1, 32
17351735
; CHECK-NEXT: ld r0, 16(r1)
@@ -1743,7 +1743,7 @@ define dso_local fp128 @roundeven_f128(fp128 %x) {
17431743
; CHECK-P8-NEXT: std r0, 48(r1)
17441744
; CHECK-P8-NEXT: .cfi_def_cfa_offset 32
17451745
; CHECK-P8-NEXT: .cfi_offset lr, 16
1746-
; CHECK-P8-NEXT: bl roundevenl
1746+
; CHECK-P8-NEXT: bl roundevenf128
17471747
; CHECK-P8-NEXT: nop
17481748
; CHECK-P8-NEXT: addi r1, r1, 32
17491749
; CHECK-P8-NEXT: ld r0, 16(r1)
@@ -1761,7 +1761,7 @@ define dso_local fp128 @sinh_f128(fp128 %x) {
17611761
; CHECK-NEXT: std r0, 48(r1)
17621762
; CHECK-NEXT: .cfi_def_cfa_offset 32
17631763
; CHECK-NEXT: .cfi_offset lr, 16
1764-
; CHECK-NEXT: bl sinhl
1764+
; CHECK-NEXT: bl sinhf128
17651765
; CHECK-NEXT: nop
17661766
; CHECK-NEXT: addi r1, r1, 32
17671767
; CHECK-NEXT: ld r0, 16(r1)
@@ -1775,7 +1775,7 @@ define dso_local fp128 @sinh_f128(fp128 %x) {
17751775
; CHECK-P8-NEXT: std r0, 48(r1)
17761776
; CHECK-P8-NEXT: .cfi_def_cfa_offset 32
17771777
; CHECK-P8-NEXT: .cfi_offset lr, 16
1778-
; CHECK-P8-NEXT: bl sinhl
1778+
; CHECK-P8-NEXT: bl sinhf128
17791779
; CHECK-P8-NEXT: nop
17801780
; CHECK-P8-NEXT: addi r1, r1, 32
17811781
; CHECK-P8-NEXT: ld r0, 16(r1)
@@ -1793,7 +1793,7 @@ define dso_local fp128 @tanh_f128(fp128 %x) {
17931793
; CHECK-NEXT: std r0, 48(r1)
17941794
; CHECK-NEXT: .cfi_def_cfa_offset 32
17951795
; CHECK-NEXT: .cfi_offset lr, 16
1796-
; CHECK-NEXT: bl tanhl
1796+
; CHECK-NEXT: bl tanhf128
17971797
; CHECK-NEXT: nop
17981798
; CHECK-NEXT: addi r1, r1, 32
17991799
; CHECK-NEXT: ld r0, 16(r1)
@@ -1807,7 +1807,7 @@ define dso_local fp128 @tanh_f128(fp128 %x) {
18071807
; CHECK-P8-NEXT: std r0, 48(r1)
18081808
; CHECK-P8-NEXT: .cfi_def_cfa_offset 32
18091809
; CHECK-P8-NEXT: .cfi_offset lr, 16
1810-
; CHECK-P8-NEXT: bl tanhl
1810+
; CHECK-P8-NEXT: bl tanhf128
18111811
; CHECK-P8-NEXT: nop
18121812
; CHECK-P8-NEXT: addi r1, r1, 32
18131813
; CHECK-P8-NEXT: ld r0, 16(r1)
@@ -1825,7 +1825,7 @@ define dso_local fp128 @tan_f128(fp128 %x) {
18251825
; CHECK-NEXT: std r0, 48(r1)
18261826
; CHECK-NEXT: .cfi_def_cfa_offset 32
18271827
; CHECK-NEXT: .cfi_offset lr, 16
1828-
; CHECK-NEXT: bl tanl
1828+
; CHECK-NEXT: bl tanf128
18291829
; CHECK-NEXT: nop
18301830
; CHECK-NEXT: addi r1, r1, 32
18311831
; CHECK-NEXT: ld r0, 16(r1)
@@ -1839,7 +1839,7 @@ define dso_local fp128 @tan_f128(fp128 %x) {
18391839
; CHECK-P8-NEXT: std r0, 48(r1)
18401840
; CHECK-P8-NEXT: .cfi_def_cfa_offset 32
18411841
; CHECK-P8-NEXT: .cfi_offset lr, 16
1842-
; CHECK-P8-NEXT: bl tanl
1842+
; CHECK-P8-NEXT: bl tanf128
18431843
; CHECK-P8-NEXT: nop
18441844
; CHECK-P8-NEXT: addi r1, r1, 32
18451845
; CHECK-P8-NEXT: ld r0, 16(r1)

0 commit comments

Comments
 (0)