Index: llvm/lib/Target/X86/X86ISelLowering.cpp =================================================================== --- llvm/lib/Target/X86/X86ISelLowering.cpp +++ llvm/lib/Target/X86/X86ISelLowering.cpp @@ -2167,6 +2167,32 @@ setOperationAction(ISD::FSINCOS, MVT::f32, Custom); } + // The -l suffixed libm calls operate on 80-bit long doubles, emit calls to + // the 128-bit capable ones. + setLibcallName(RTLIB::LOG_F128, "logf128"); + setLibcallName(RTLIB::LOG2_F128, "log2f128"); + setLibcallName(RTLIB::LOG10_F128, "log10f128"); + setLibcallName(RTLIB::EXP_F128, "expf128"); + setLibcallName(RTLIB::EXP2_F128, "exp2f128"); + setLibcallName(RTLIB::SIN_F128, "sinf128"); + setLibcallName(RTLIB::COS_F128, "cosf128"); + setLibcallName(RTLIB::POW_F128, "powf128"); + setLibcallName(RTLIB::FMIN_F128, "fminf128"); + setLibcallName(RTLIB::FMAX_F128, "fmaxf128"); + setLibcallName(RTLIB::REM_F128, "fmodf128"); + setLibcallName(RTLIB::SQRT_F128, "sqrtf128"); + setLibcallName(RTLIB::CEIL_F128, "ceilf128"); + setLibcallName(RTLIB::FLOOR_F128, "floorf128"); + setLibcallName(RTLIB::TRUNC_F128, "truncf128"); + setLibcallName(RTLIB::ROUND_F128, "roundf128"); + setLibcallName(RTLIB::LROUND_F128, "lroundf128"); + setLibcallName(RTLIB::LLROUND_F128, "llroundf128"); + setLibcallName(RTLIB::RINT_F128, "rintf128"); + setLibcallName(RTLIB::LRINT_F128, "lrintf128"); + setLibcallName(RTLIB::LLRINT_F128, "llrintf128"); + setLibcallName(RTLIB::NEARBYINT_F128, "nearbyintf128"); + setLibcallName(RTLIB::FMA_F128, "fmaf128"); + if (Subtarget.isTargetWin64()) { setOperationAction(ISD::SDIV, MVT::i128, Custom); setOperationAction(ISD::UDIV, MVT::i128, Custom); Index: llvm/test/CodeGen/X86/fp128-libcalls-strict.ll =================================================================== --- llvm/test/CodeGen/X86/fp128-libcalls-strict.ll +++ llvm/test/CodeGen/X86/fp128-libcalls-strict.ll @@ -195,7 +195,7 @@ ; CHECK-LABEL: fma: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: pushq %rax -; CHECK-NEXT: callq fmal@PLT +; CHECK-NEXT: callq fmaf128@PLT ; CHECK-NEXT: popq %rax ; CHECK-NEXT: retq ; @@ -220,7 +220,7 @@ ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl %eax -; X86-NEXT: calll fmal +; X86-NEXT: calll fmaf128 ; X86-NEXT: addl $60, %esp ; X86-NEXT: movl (%esp), %eax ; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx @@ -244,7 +244,7 @@ ; CHECK-LABEL: frem: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: pushq %rax -; CHECK-NEXT: callq fmodl@PLT +; CHECK-NEXT: callq fmodf128@PLT ; CHECK-NEXT: popq %rax ; CHECK-NEXT: retq ; @@ -265,7 +265,7 @@ ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl %eax -; X86-NEXT: calll fmodl +; X86-NEXT: calll fmodf128 ; X86-NEXT: addl $44, %esp ; X86-NEXT: movl (%esp), %eax ; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx @@ -289,7 +289,7 @@ ; CHECK-LABEL: ceil: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: pushq %rax -; CHECK-NEXT: callq ceill@PLT +; CHECK-NEXT: callq ceilf128@PLT ; CHECK-NEXT: popq %rax ; CHECK-NEXT: retq ; @@ -306,7 +306,7 @@ ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl %eax -; X86-NEXT: calll ceill +; X86-NEXT: calll ceilf128 ; X86-NEXT: addl $28, %esp ; X86-NEXT: movl (%esp), %eax ; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx @@ -330,7 +330,7 @@ ; CHECK-LABEL: cos: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: pushq %rax -; CHECK-NEXT: callq cosl@PLT +; CHECK-NEXT: callq cosf128@PLT ; CHECK-NEXT: popq %rax ; CHECK-NEXT: retq ; @@ -347,7 +347,7 @@ ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl %eax -; X86-NEXT: calll cosl +; X86-NEXT: calll cosf128 ; X86-NEXT: addl $28, %esp ; X86-NEXT: movl (%esp), %eax ; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx @@ -371,7 +371,7 @@ ; CHECK-LABEL: exp: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: pushq %rax -; CHECK-NEXT: callq expl@PLT +; CHECK-NEXT: callq expf128@PLT ; CHECK-NEXT: popq %rax ; CHECK-NEXT: retq ; @@ -388,7 +388,7 @@ ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl %eax -; X86-NEXT: calll expl +; X86-NEXT: calll expf128 ; X86-NEXT: addl $28, %esp ; X86-NEXT: movl (%esp), %eax ; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx @@ -412,7 +412,7 @@ ; CHECK-LABEL: exp2: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: pushq %rax -; CHECK-NEXT: callq exp2l@PLT +; CHECK-NEXT: callq exp2f128@PLT ; CHECK-NEXT: popq %rax ; CHECK-NEXT: retq ; @@ -429,7 +429,7 @@ ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl %eax -; X86-NEXT: calll exp2l +; X86-NEXT: calll exp2f128 ; X86-NEXT: addl $28, %esp ; X86-NEXT: movl (%esp), %eax ; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx @@ -453,7 +453,7 @@ ; CHECK-LABEL: floor: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: pushq %rax -; CHECK-NEXT: callq floorl@PLT +; CHECK-NEXT: callq floorf128@PLT ; CHECK-NEXT: popq %rax ; CHECK-NEXT: retq ; @@ -470,7 +470,7 @@ ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl %eax -; X86-NEXT: calll floorl +; X86-NEXT: calll floorf128 ; X86-NEXT: addl $28, %esp ; X86-NEXT: movl (%esp), %eax ; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx @@ -494,7 +494,7 @@ ; CHECK-LABEL: log: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: pushq %rax -; CHECK-NEXT: callq logl@PLT +; CHECK-NEXT: callq logf128@PLT ; CHECK-NEXT: popq %rax ; CHECK-NEXT: retq ; @@ -511,7 +511,7 @@ ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl %eax -; X86-NEXT: calll logl +; X86-NEXT: calll logf128 ; X86-NEXT: addl $28, %esp ; X86-NEXT: movl (%esp), %eax ; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx @@ -535,7 +535,7 @@ ; CHECK-LABEL: log10: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: pushq %rax -; CHECK-NEXT: callq log10l@PLT +; CHECK-NEXT: callq log10f128@PLT ; CHECK-NEXT: popq %rax ; CHECK-NEXT: retq ; @@ -552,7 +552,7 @@ ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl %eax -; X86-NEXT: calll log10l +; X86-NEXT: calll log10f128 ; X86-NEXT: addl $28, %esp ; X86-NEXT: movl (%esp), %eax ; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx @@ -576,7 +576,7 @@ ; CHECK-LABEL: log2: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: pushq %rax -; CHECK-NEXT: callq log2l@PLT +; CHECK-NEXT: callq log2f128@PLT ; CHECK-NEXT: popq %rax ; CHECK-NEXT: retq ; @@ -593,7 +593,7 @@ ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl %eax -; X86-NEXT: calll log2l +; X86-NEXT: calll log2f128 ; X86-NEXT: addl $28, %esp ; X86-NEXT: movl (%esp), %eax ; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx @@ -617,7 +617,7 @@ ; CHECK-LABEL: maxnum: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: pushq %rax -; CHECK-NEXT: callq fmaxl@PLT +; CHECK-NEXT: callq fmaxf128@PLT ; CHECK-NEXT: popq %rax ; CHECK-NEXT: retq ; @@ -638,7 +638,7 @@ ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl %eax -; X86-NEXT: calll fmaxl +; X86-NEXT: calll fmaxf128 ; X86-NEXT: addl $44, %esp ; X86-NEXT: movl (%esp), %eax ; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx @@ -662,7 +662,7 @@ ; CHECK-LABEL: minnum: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: pushq %rax -; CHECK-NEXT: callq fminl@PLT +; CHECK-NEXT: callq fminf128@PLT ; CHECK-NEXT: popq %rax ; CHECK-NEXT: retq ; @@ -683,7 +683,7 @@ ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl %eax -; X86-NEXT: calll fminl +; X86-NEXT: calll fminf128 ; X86-NEXT: addl $44, %esp ; X86-NEXT: movl (%esp), %eax ; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx @@ -707,7 +707,7 @@ ; CHECK-LABEL: nearbyint: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: pushq %rax -; CHECK-NEXT: callq nearbyintl@PLT +; CHECK-NEXT: callq nearbyintf128@PLT ; CHECK-NEXT: popq %rax ; CHECK-NEXT: retq ; @@ -724,7 +724,7 @@ ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl %eax -; X86-NEXT: calll nearbyintl +; X86-NEXT: calll nearbyintf128 ; X86-NEXT: addl $28, %esp ; X86-NEXT: movl (%esp), %eax ; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx @@ -748,7 +748,7 @@ ; CHECK-LABEL: pow: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: pushq %rax -; CHECK-NEXT: callq powl@PLT +; CHECK-NEXT: callq powf128@PLT ; CHECK-NEXT: popq %rax ; CHECK-NEXT: retq ; @@ -769,7 +769,7 @@ ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl %eax -; X86-NEXT: calll powl +; X86-NEXT: calll powf128 ; X86-NEXT: addl $44, %esp ; X86-NEXT: movl (%esp), %eax ; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx @@ -835,7 +835,7 @@ ; CHECK-LABEL: rint: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: pushq %rax -; CHECK-NEXT: callq rintl@PLT +; CHECK-NEXT: callq rintf128@PLT ; CHECK-NEXT: popq %rax ; CHECK-NEXT: retq ; @@ -852,7 +852,7 @@ ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl %eax -; X86-NEXT: calll rintl +; X86-NEXT: calll rintf128 ; X86-NEXT: addl $28, %esp ; X86-NEXT: movl (%esp), %eax ; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx @@ -876,7 +876,7 @@ ; CHECK-LABEL: round: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: pushq %rax -; CHECK-NEXT: callq roundl@PLT +; CHECK-NEXT: callq roundf128@PLT ; CHECK-NEXT: popq %rax ; CHECK-NEXT: retq ; @@ -893,7 +893,7 @@ ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl %eax -; X86-NEXT: calll roundl +; X86-NEXT: calll roundf128 ; X86-NEXT: addl $28, %esp ; X86-NEXT: movl (%esp), %eax ; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx @@ -958,7 +958,7 @@ ; CHECK-LABEL: sin: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: pushq %rax -; CHECK-NEXT: callq sinl@PLT +; CHECK-NEXT: callq sinf128@PLT ; CHECK-NEXT: popq %rax ; CHECK-NEXT: retq ; @@ -975,7 +975,7 @@ ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl %eax -; X86-NEXT: calll sinl +; X86-NEXT: calll sinf128 ; X86-NEXT: addl $28, %esp ; X86-NEXT: movl (%esp), %eax ; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx @@ -999,7 +999,7 @@ ; CHECK-LABEL: sqrt: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: pushq %rax -; CHECK-NEXT: callq sqrtl@PLT +; CHECK-NEXT: callq sqrtf128@PLT ; CHECK-NEXT: popq %rax ; CHECK-NEXT: retq ; @@ -1016,7 +1016,7 @@ ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl %eax -; X86-NEXT: calll sqrtl +; X86-NEXT: calll sqrtf128 ; X86-NEXT: addl $28, %esp ; X86-NEXT: movl (%esp), %eax ; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx @@ -1040,7 +1040,7 @@ ; CHECK-LABEL: trunc: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: pushq %rax -; CHECK-NEXT: callq truncl@PLT +; CHECK-NEXT: callq truncf128@PLT ; CHECK-NEXT: popq %rax ; CHECK-NEXT: retq ; @@ -1057,7 +1057,7 @@ ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl %eax -; X86-NEXT: calll truncl +; X86-NEXT: calll truncf128 ; X86-NEXT: addl $28, %esp ; X86-NEXT: movl (%esp), %eax ; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx @@ -1081,7 +1081,7 @@ ; CHECK-LABEL: lrint: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: pushq %rax -; CHECK-NEXT: callq lrintl@PLT +; CHECK-NEXT: callq lrintf128@PLT ; CHECK-NEXT: popq %rcx ; CHECK-NEXT: retq ; @@ -1092,7 +1092,7 @@ ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl {{[0-9]+}}(%esp) -; X86-NEXT: calll lrintl +; X86-NEXT: calll lrintf128 ; X86-NEXT: addl $28, %esp ; X86-NEXT: retl entry: @@ -1104,7 +1104,7 @@ ; CHECK-LABEL: llrint: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: pushq %rax -; CHECK-NEXT: callq llrintl@PLT +; CHECK-NEXT: callq llrintf128@PLT ; CHECK-NEXT: popq %rcx ; CHECK-NEXT: retq ; @@ -1115,7 +1115,7 @@ ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl {{[0-9]+}}(%esp) -; X86-NEXT: calll llrintl +; X86-NEXT: calll llrintf128 ; X86-NEXT: addl $28, %esp ; X86-NEXT: retl entry: @@ -1127,7 +1127,7 @@ ; CHECK-LABEL: lround: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: pushq %rax -; CHECK-NEXT: callq lroundl@PLT +; CHECK-NEXT: callq lroundf128@PLT ; CHECK-NEXT: popq %rcx ; CHECK-NEXT: retq ; @@ -1138,7 +1138,7 @@ ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl {{[0-9]+}}(%esp) -; X86-NEXT: calll lroundl +; X86-NEXT: calll lroundf128 ; X86-NEXT: addl $28, %esp ; X86-NEXT: retl entry: @@ -1150,7 +1150,7 @@ ; CHECK-LABEL: llround: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: pushq %rax -; CHECK-NEXT: callq llroundl@PLT +; CHECK-NEXT: callq llroundf128@PLT ; CHECK-NEXT: popq %rcx ; CHECK-NEXT: retq ; @@ -1161,7 +1161,7 @@ ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl {{[0-9]+}}(%esp) -; X86-NEXT: calll llroundl +; X86-NEXT: calll llroundf128 ; X86-NEXT: addl $28, %esp ; X86-NEXT: retl entry: Index: llvm/test/CodeGen/X86/fp128-libcalls.ll =================================================================== --- llvm/test/CodeGen/X86/fp128-libcalls.ll +++ llvm/test/CodeGen/X86/fp128-libcalls.ll @@ -363,7 +363,7 @@ ; CHECK-LABEL: Test128Rem: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: pushq %rax -; CHECK-NEXT: callq fmodl@PLT +; CHECK-NEXT: callq fmodf128@PLT ; CHECK-NEXT: movaps %xmm0, vf128(%rip) ; CHECK-NEXT: popq %rax ; CHECK-NEXT: retq @@ -382,7 +382,7 @@ ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl %eax -; X86-NEXT: calll fmodl +; X86-NEXT: calll fmodf128 ; X86-NEXT: addl $44, %esp ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax ; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx @@ -407,7 +407,7 @@ ; CHECK-NEXT: pushq %rax ; CHECK-NEXT: movaps %xmm0, %xmm1 ; CHECK-NEXT: movaps vf128(%rip), %xmm0 -; CHECK-NEXT: callq fmodl@PLT +; CHECK-NEXT: callq fmodf128@PLT ; CHECK-NEXT: movaps %xmm0, vf128(%rip) ; CHECK-NEXT: popq %rax ; CHECK-NEXT: retq @@ -426,7 +426,7 @@ ; X86-NEXT: pushl vf128+4 ; X86-NEXT: pushl vf128 ; X86-NEXT: pushl %eax -; X86-NEXT: calll fmodl +; X86-NEXT: calll fmodf128 ; X86-NEXT: addl $44, %esp ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax ; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx @@ -450,7 +450,7 @@ ; CHECK-LABEL: Test128Sqrt: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: pushq %rax -; CHECK-NEXT: callq sqrtl@PLT +; CHECK-NEXT: callq sqrtf128@PLT ; CHECK-NEXT: movaps %xmm0, vf128(%rip) ; CHECK-NEXT: popq %rax ; CHECK-NEXT: retq @@ -465,7 +465,7 @@ ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl %eax -; X86-NEXT: calll sqrtl +; X86-NEXT: calll sqrtf128 ; X86-NEXT: addl $28, %esp ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax ; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx @@ -489,7 +489,7 @@ ; CHECK-LABEL: Test128Sin: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: pushq %rax -; CHECK-NEXT: callq sinl@PLT +; CHECK-NEXT: callq sinf128@PLT ; CHECK-NEXT: movaps %xmm0, vf128(%rip) ; CHECK-NEXT: popq %rax ; CHECK-NEXT: retq @@ -504,7 +504,7 @@ ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl %eax -; X86-NEXT: calll sinl +; X86-NEXT: calll sinf128 ; X86-NEXT: addl $28, %esp ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax ; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx @@ -528,7 +528,7 @@ ; CHECK-LABEL: Test128Cos: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: pushq %rax -; CHECK-NEXT: callq cosl@PLT +; CHECK-NEXT: callq cosf128@PLT ; CHECK-NEXT: movaps %xmm0, vf128(%rip) ; CHECK-NEXT: popq %rax ; CHECK-NEXT: retq @@ -543,7 +543,7 @@ ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl %eax -; X86-NEXT: calll cosl +; X86-NEXT: calll cosf128 ; X86-NEXT: addl $28, %esp ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax ; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx @@ -567,7 +567,7 @@ ; CHECK-LABEL: Test128Ceil: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: pushq %rax -; CHECK-NEXT: callq ceill@PLT +; CHECK-NEXT: callq ceilf128@PLT ; CHECK-NEXT: movaps %xmm0, vf128(%rip) ; CHECK-NEXT: popq %rax ; CHECK-NEXT: retq @@ -582,7 +582,7 @@ ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl %eax -; X86-NEXT: calll ceill +; X86-NEXT: calll ceilf128 ; X86-NEXT: addl $28, %esp ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax ; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx @@ -606,7 +606,7 @@ ; CHECK-LABEL: Test128Floor: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: pushq %rax -; CHECK-NEXT: callq floorl@PLT +; CHECK-NEXT: callq floorf128@PLT ; CHECK-NEXT: movaps %xmm0, vf128(%rip) ; CHECK-NEXT: popq %rax ; CHECK-NEXT: retq @@ -621,7 +621,7 @@ ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl %eax -; X86-NEXT: calll floorl +; X86-NEXT: calll floorf128 ; X86-NEXT: addl $28, %esp ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax ; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx @@ -645,7 +645,7 @@ ; CHECK-LABEL: Test128Trunc: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: pushq %rax -; CHECK-NEXT: callq truncl@PLT +; CHECK-NEXT: callq truncf128@PLT ; CHECK-NEXT: movaps %xmm0, vf128(%rip) ; CHECK-NEXT: popq %rax ; CHECK-NEXT: retq @@ -660,7 +660,7 @@ ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl %eax -; X86-NEXT: calll truncl +; X86-NEXT: calll truncf128 ; X86-NEXT: addl $28, %esp ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax ; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx @@ -684,7 +684,7 @@ ; CHECK-LABEL: Test128Nearbyint: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: pushq %rax -; CHECK-NEXT: callq nearbyintl@PLT +; CHECK-NEXT: callq nearbyintf128@PLT ; CHECK-NEXT: movaps %xmm0, vf128(%rip) ; CHECK-NEXT: popq %rax ; CHECK-NEXT: retq @@ -699,7 +699,7 @@ ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl %eax -; X86-NEXT: calll nearbyintl +; X86-NEXT: calll nearbyintf128 ; X86-NEXT: addl $28, %esp ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax ; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx @@ -723,7 +723,7 @@ ; CHECK-LABEL: Test128Rint: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: pushq %rax -; CHECK-NEXT: callq rintl@PLT +; CHECK-NEXT: callq rintf128@PLT ; CHECK-NEXT: movaps %xmm0, vf128(%rip) ; CHECK-NEXT: popq %rax ; CHECK-NEXT: retq @@ -738,7 +738,7 @@ ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl %eax -; X86-NEXT: calll rintl +; X86-NEXT: calll rintf128 ; X86-NEXT: addl $28, %esp ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax ; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx @@ -762,7 +762,7 @@ ; CHECK-LABEL: Test128Round: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: pushq %rax -; CHECK-NEXT: callq roundl@PLT +; CHECK-NEXT: callq roundf128@PLT ; CHECK-NEXT: movaps %xmm0, vf128(%rip) ; CHECK-NEXT: popq %rax ; CHECK-NEXT: retq @@ -777,7 +777,7 @@ ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl %eax -; X86-NEXT: calll roundl +; X86-NEXT: calll roundf128 ; X86-NEXT: addl $28, %esp ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax ; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx @@ -800,7 +800,7 @@ define fp128 @Test128FMA(fp128 %a, fp128 %b, fp128 %c) nounwind { ; CHECK-LABEL: Test128FMA: ; CHECK: # %bb.0: # %entry -; CHECK-NEXT: jmp fmal@PLT # TAILCALL +; CHECK-NEXT: jmp fmaf128@PLT # TAILCALL ; ; X86-LABEL: Test128FMA: ; X86: # %bb.0: # %entry @@ -823,7 +823,7 @@ ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl {{[0-9]+}}(%esp) ; X86-NEXT: pushl %eax -; X86-NEXT: calll fmal +; X86-NEXT: calll fmaf128 ; X86-NEXT: addl $60, %esp ; X86-NEXT: movl (%esp), %eax ; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx