Index: llvm/lib/Target/ARM/ARMISelLowering.cpp =================================================================== --- llvm/lib/Target/ARM/ARMISelLowering.cpp +++ llvm/lib/Target/ARM/ARMISelLowering.cpp @@ -598,7 +598,7 @@ // Conversions between floating types. // RTABI chapter 4.1.2, Table 7 { RTLIB::FPROUND_F64_F32, "__aeabi_d2f", CallingConv::ARM_AAPCS, ISD::SETCC_INVALID }, - { RTLIB::FPROUND_F64_F16, "__aeabi_d2h", CallingConv::ARM_AAPCS, ISD::SETCC_INVALID }, + { RTLIB::FPROUND_F64_F16, "__gnu_d2h_ieee", CallingConv::ARM_AAPCS, ISD::SETCC_INVALID }, { RTLIB::FPEXT_F32_F64, "__aeabi_f2d", CallingConv::ARM_AAPCS, ISD::SETCC_INVALID }, // Integer to floating-point conversions. Index: llvm/test/CodeGen/ARM/fp16.ll =================================================================== --- llvm/test/CodeGen/ARM/fp16.ll +++ llvm/test/CodeGen/ARM/fp16.ll @@ -82,7 +82,7 @@ %val = call i16 @llvm.convert.to.fp16.f64(double %in) ; CHECK-HARDFLOAT-EABI: bl __aeabi_d2h -; CHECK-HARDFLOAT-GNU: bl __aeabi_d2h +; CHECK-HARDFLOAT-GNU: bl __gnu_d2h_ieee ; CHECK-FP16-SAFE: bl __aeabi_d2h @@ -94,7 +94,7 @@ ; CHECK-SOFTFLOAT-EABI: bl __aeabi_d2h -; CHECK-SOFTFLOAT-GNU: bl __aeabi_d2h +; CHECK-SOFTFLOAT-GNU: bl __gnu_d2h_ieee ret i16 %val }