diff --git a/lld/test/wasm/lto/Inputs/libcall-return-addr.ll b/lld/test/wasm/lto/Inputs/libcall-return-addr.ll new file mode 100644 index 0000000000000..271bdae11e49d --- /dev/null +++ b/lld/test/wasm/lto/Inputs/libcall-return-addr.ll @@ -0,0 +1,6 @@ +target datalayout = "e-m:e-p:32:32-p10:8:8-p20:8:8-i64:64-i128:128-f128:64-n32:64-S128-ni:1:10:20" +target triple = "wasm32-unknown-emscripten" + +define ptr @emscripten_return_address() { + ret ptr null +} diff --git a/lld/test/wasm/lto/Inputs/libcall-truncsfhf2.ll b/lld/test/wasm/lto/Inputs/libcall-truncsfhf2.ll deleted file mode 100644 index 1439d7f8b4cb4..0000000000000 --- a/lld/test/wasm/lto/Inputs/libcall-truncsfhf2.ll +++ /dev/null @@ -1,6 +0,0 @@ -target datalayout = "e-m:e-p:32:32-p10:8:8-p20:8:8-i64:64-n32:64-S128-ni:1:10:20" -target triple = "wasm32-unknown-unknown" - -define half @__truncsfhf2(float) { - ret half 0.0 -} diff --git a/lld/test/wasm/lto/libcall-return-addr.ll b/lld/test/wasm/lto/libcall-return-addr.ll new file mode 100644 index 0000000000000..74eba74f97018 --- /dev/null +++ b/lld/test/wasm/lto/libcall-return-addr.ll @@ -0,0 +1,18 @@ +; RUN: llvm-as %s -o %t.o +; RUN: llvm-as %p/Inputs/libcall-return-addr.ll -o %t.return-addr.o +; RUN: rm -f %t.a +; RUN: llvm-ar rcs %t.a %t.return-addr.o +; RUN: not wasm-ld --export-all %t.o %t.a -o %t.wasm 2>&1 | FileCheck %s + +target datalayout = "e-m:e-p:32:32-p10:8:8-p20:8:8-i64:64-i128:128-f128:64-n32:64-S128-ni:1:10:20" +target triple = "wasm32-unknown-emscripten" + +@g_ptr = global ptr null + +define void @_start() { + %addr = call ptr @llvm.returnaddress(i32 1) + store ptr %addr, ptr @g_ptr + ret void +} + +; CHECK: wasm-ld: error: {{.*}}return-addr.o): attempt to add bitcode file after LTO (emscripten_return_address) diff --git a/lld/test/wasm/lto/libcall-truncsfhf2.ll b/lld/test/wasm/lto/libcall-truncsfhf2.ll deleted file mode 100644 index fd07bb53890f6..0000000000000 --- a/lld/test/wasm/lto/libcall-truncsfhf2.ll +++ /dev/null @@ -1,20 +0,0 @@ -; RUN: llvm-as %s -o %t.o -; RUN: llvm-as %p/Inputs/libcall-truncsfhf2.ll -o %t.truncsfhf2.o -; RUN: rm -f %t.a -; RUN: llvm-ar rcs %t.a %t.truncsfhf2.o -; RUN: not wasm-ld --export-all %t.o %t.a -o %t.wasm 2>&1 | FileCheck %s - -target datalayout = "e-m:e-p:32:32-p10:8:8-p20:8:8-i64:64-n32:64-S128-ni:1:10:20" -target triple = "wasm32-unknown-unknown" - -@g_float = global float 0.0 -@g_half = global half 0.0 - -define void @_start() { - %val1 = load float, ptr @g_float - %v0 = fptrunc float %val1 to half - store half %v0, ptr @g_half - ret void -} - -; CHECK: wasm-ld: error: {{.*}}truncsfhf2.o): attempt to add bitcode file after LTO (__truncsfhf2) diff --git a/llvm/include/llvm/IR/RuntimeLibcalls.def b/llvm/include/llvm/IR/RuntimeLibcalls.def index a7963543c4350..c6ac341d71a20 100644 --- a/llvm/include/llvm/IR/RuntimeLibcalls.def +++ b/llvm/include/llvm/IR/RuntimeLibcalls.def @@ -384,8 +384,8 @@ HANDLE_LIBCALL(FPEXT_F16_F128, "__extendhftf2") HANDLE_LIBCALL(FPEXT_F16_F80, "__extendhfxf2") HANDLE_LIBCALL(FPEXT_F32_F64, "__extendsfdf2") HANDLE_LIBCALL(FPEXT_F16_F64, "__extendhfdf2") -HANDLE_LIBCALL(FPEXT_F16_F32, "__gnu_h2f_ieee") -HANDLE_LIBCALL(FPROUND_F32_F16, "__gnu_f2h_ieee") +HANDLE_LIBCALL(FPEXT_F16_F32, "__extendhfsf2") +HANDLE_LIBCALL(FPROUND_F32_F16, "__truncsfhf2") HANDLE_LIBCALL(FPROUND_F64_F16, "__truncdfhf2") HANDLE_LIBCALL(FPROUND_F80_F16, "__truncxfhf2") HANDLE_LIBCALL(FPROUND_F128_F16, "__trunctfhf2") diff --git a/llvm/lib/IR/RuntimeLibcalls.cpp b/llvm/lib/IR/RuntimeLibcalls.cpp index e38fce764b640..1f94400f7c088 100644 --- a/llvm/lib/IR/RuntimeLibcalls.cpp +++ b/llvm/lib/IR/RuntimeLibcalls.cpp @@ -170,9 +170,6 @@ void RuntimeLibcallsInfo::initLibcalls(const Triple &TT) { // TODO: BridgeOS should be included in isOSDarwin. setLibcallName(RTLIB::EXP10_F32, "__exp10f"); setLibcallName(RTLIB::EXP10_F64, "__exp10"); - } else { - setLibcallName(RTLIB::FPEXT_F16_F32, "__gnu_h2f_ieee"); - setLibcallName(RTLIB::FPROUND_F32_F16, "__gnu_f2h_ieee"); } if (TT.isGNUEnvironment() || TT.isOSFuchsia() || diff --git a/llvm/lib/Target/ARM/ARMISelLowering.cpp b/llvm/lib/Target/ARM/ARMISelLowering.cpp index 2bac1d0086041..3ce552ae0e798 100644 --- a/llvm/lib/Target/ARM/ARMISelLowering.cpp +++ b/llvm/lib/Target/ARM/ARMISelLowering.cpp @@ -767,6 +767,9 @@ ARMTargetLowering::ARMTargetLowering(const TargetMachine &TM, setLibcallName(LC.Op, LC.Name); setLibcallCallingConv(LC.Op, LC.CC); } + } else if (!Subtarget->isTargetMachO()) { + setLibcallName(RTLIB::FPROUND_F32_F16, "__gnu_f2h_ieee"); + setLibcallName(RTLIB::FPEXT_F16_F32, "__gnu_h2f_ieee"); } if (Subtarget->isThumb1Only()) diff --git a/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp b/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp index 1a7667fe42fbc..be1960db41479 100644 --- a/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp +++ b/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp @@ -1886,11 +1886,6 @@ HexagonTargetLowering::HexagonTargetLowering(const TargetMachine &TM, setLibcallName(RTLIB::SQRT_F32, "__hexagon_fast2_sqrtf"); else setLibcallName(RTLIB::SQRT_F32, "__hexagon_sqrtf"); - - // Routines to handle fp16 storage type. - setLibcallName(RTLIB::FPROUND_F32_F16, "__truncsfhf2"); - setLibcallName(RTLIB::FPROUND_F64_F16, "__truncdfhf2"); - setLibcallName(RTLIB::FPEXT_F16_F32, "__extendhfsf2"); } const char* HexagonTargetLowering::getTargetNodeName(unsigned Opcode) const { diff --git a/llvm/lib/Target/RISCV/RISCVISelLowering.cpp b/llvm/lib/Target/RISCV/RISCVISelLowering.cpp index c40ab0d09bdf6..0fb1763a9a4a5 100644 --- a/llvm/lib/Target/RISCV/RISCVISelLowering.cpp +++ b/llvm/lib/Target/RISCV/RISCVISelLowering.cpp @@ -1549,9 +1549,6 @@ RISCVTargetLowering::RISCVTargetLowering(const TargetMachine &TM, if (Subtarget.useRVVForFixedLengthVectors()) setTargetDAGCombine(ISD::BITCAST); - setLibcallName(RTLIB::FPEXT_F16_F32, "__extendhfsf2"); - setLibcallName(RTLIB::FPROUND_F32_F16, "__truncsfhf2"); - // Disable strict node mutation. IsStrictFPEnabled = true; EnableExtLdPromotion = true; diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp b/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp index fedad25c775e2..3c918e8b675f0 100644 --- a/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp +++ b/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp @@ -377,11 +377,6 @@ WebAssemblyTargetLowering::WebAssemblyTargetLowering( setMaxAtomicSizeInBitsSupported(64); - // Override the __gnu_f2h_ieee/__gnu_h2f_ieee names so that the f32 name is - // consistent with the f64 and f128 names. - setLibcallName(RTLIB::FPEXT_F16_F32, "__extendhfsf2"); - setLibcallName(RTLIB::FPROUND_F32_F16, "__truncsfhf2"); - // Define the emscripten name for return address helper. // TODO: when implementing other Wasm backends, make this generic or only do // this on emscripten depending on what they end up doing. diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.cpp b/llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.cpp index b20a06b238c88..1fe0b1f2e0591 100644 --- a/llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.cpp +++ b/llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.cpp @@ -537,10 +537,6 @@ struct StaticLibcallNameMap { Map[NameLibcall.first] = NameLibcall.second; } } - // Override the __gnu_f2h_ieee/__gnu_h2f_ieee names so that the f32 name is - // consistent with the f64 and f128 names. - Map["__extendhfsf2"] = RTLIB::FPEXT_F16_F32; - Map["__truncsfhf2"] = RTLIB::FPROUND_F32_F16; Map["emscripten_return_address"] = RTLIB::RETURN_ADDRESS; } diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index 21b08a4a93fc7..2a42b46e56d93 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -736,9 +736,6 @@ X86TargetLowering::X86TargetLowering(const X86TargetMachine &TM, setOperationAction(ISD::STRICT_FP_EXTEND, MVT::f32, Custom); setOperationAction(ISD::STRICT_FP_EXTEND, MVT::f64, Custom); - setLibcallName(RTLIB::FPROUND_F32_F16, "__truncsfhf2"); - setLibcallName(RTLIB::FPEXT_F16_F32, "__extendhfsf2"); - // Lower this to MOVMSK plus an AND. setOperationAction(ISD::FGETSIGN, MVT::i64, Custom); setOperationAction(ISD::FGETSIGN, MVT::i32, Custom); diff --git a/llvm/test/CodeGen/AArch64/16bit-float-promotion-with-nofp.ll b/llvm/test/CodeGen/AArch64/16bit-float-promotion-with-nofp.ll index bfe9ab8424bb0..0bd7c1b10b123 100644 --- a/llvm/test/CodeGen/AArch64/16bit-float-promotion-with-nofp.ll +++ b/llvm/test/CodeGen/AArch64/16bit-float-promotion-with-nofp.ll @@ -7,7 +7,7 @@ define half @f2h(float %a) { ; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: .cfi_def_cfa_offset 16 ; CHECK-NEXT: .cfi_offset w30, -16 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret entry: diff --git a/llvm/test/CodeGen/AArch64/atomicrmw-fadd.ll b/llvm/test/CodeGen/AArch64/atomicrmw-fadd.ll index 0c3a40d93d640..21729b9dfd101 100644 --- a/llvm/test/CodeGen/AArch64/atomicrmw-fadd.ll +++ b/llvm/test/CodeGen/AArch64/atomicrmw-fadd.ll @@ -60,13 +60,13 @@ define half @test_atomicrmw_fadd_f16_seq_cst_align2(ptr %ptr, half %value) #0 { ; SOFTFP-NOLSE-NEXT: // Child Loop BB0_3 Depth 2 ; SOFTFP-NOLSE-NEXT: mov w22, w0 ; SOFTFP-NOLSE-NEXT: and w0, w20, #0xffff -; SOFTFP-NOLSE-NEXT: bl __gnu_h2f_ieee +; SOFTFP-NOLSE-NEXT: bl __extendhfsf2 ; SOFTFP-NOLSE-NEXT: mov w21, w0 ; SOFTFP-NOLSE-NEXT: and w0, w22, #0xffff -; SOFTFP-NOLSE-NEXT: bl __gnu_h2f_ieee +; SOFTFP-NOLSE-NEXT: bl __extendhfsf2 ; SOFTFP-NOLSE-NEXT: mov w1, w21 ; SOFTFP-NOLSE-NEXT: bl __addsf3 -; SOFTFP-NOLSE-NEXT: bl __gnu_f2h_ieee +; SOFTFP-NOLSE-NEXT: bl __truncsfhf2 ; SOFTFP-NOLSE-NEXT: mov w8, w0 ; SOFTFP-NOLSE-NEXT: .LBB0_3: // %cmpxchg.start ; SOFTFP-NOLSE-NEXT: // Parent Loop BB0_2 Depth=1 @@ -148,13 +148,13 @@ define half @test_atomicrmw_fadd_f16_seq_cst_align4(ptr %ptr, half %value) #0 { ; SOFTFP-NOLSE-NEXT: // Child Loop BB1_3 Depth 2 ; SOFTFP-NOLSE-NEXT: mov w22, w0 ; SOFTFP-NOLSE-NEXT: and w0, w20, #0xffff -; SOFTFP-NOLSE-NEXT: bl __gnu_h2f_ieee +; SOFTFP-NOLSE-NEXT: bl __extendhfsf2 ; SOFTFP-NOLSE-NEXT: mov w21, w0 ; SOFTFP-NOLSE-NEXT: and w0, w22, #0xffff -; SOFTFP-NOLSE-NEXT: bl __gnu_h2f_ieee +; SOFTFP-NOLSE-NEXT: bl __extendhfsf2 ; SOFTFP-NOLSE-NEXT: mov w1, w21 ; SOFTFP-NOLSE-NEXT: bl __addsf3 -; SOFTFP-NOLSE-NEXT: bl __gnu_f2h_ieee +; SOFTFP-NOLSE-NEXT: bl __truncsfhf2 ; SOFTFP-NOLSE-NEXT: mov w8, w0 ; SOFTFP-NOLSE-NEXT: .LBB1_3: // %cmpxchg.start ; SOFTFP-NOLSE-NEXT: // Parent Loop BB1_2 Depth=1 @@ -712,22 +712,22 @@ define <2 x half> @test_atomicrmw_fadd_v2f16_seq_cst_align4(ptr %ptr, <2 x half> ; SOFTFP-NOLSE-NEXT: // =>This Loop Header: Depth=1 ; SOFTFP-NOLSE-NEXT: // Child Loop BB7_3 Depth 2 ; SOFTFP-NOLSE-NEXT: and w0, w19, #0xffff -; SOFTFP-NOLSE-NEXT: bl __gnu_h2f_ieee +; SOFTFP-NOLSE-NEXT: bl __extendhfsf2 ; SOFTFP-NOLSE-NEXT: mov w24, w0 ; SOFTFP-NOLSE-NEXT: and w0, w23, #0xffff -; SOFTFP-NOLSE-NEXT: bl __gnu_h2f_ieee +; SOFTFP-NOLSE-NEXT: bl __extendhfsf2 ; SOFTFP-NOLSE-NEXT: mov w1, w24 ; SOFTFP-NOLSE-NEXT: bl __addsf3 -; SOFTFP-NOLSE-NEXT: bl __gnu_f2h_ieee +; SOFTFP-NOLSE-NEXT: bl __truncsfhf2 ; SOFTFP-NOLSE-NEXT: mov w24, w0 ; SOFTFP-NOLSE-NEXT: and w0, w21, #0xffff -; SOFTFP-NOLSE-NEXT: bl __gnu_h2f_ieee +; SOFTFP-NOLSE-NEXT: bl __extendhfsf2 ; SOFTFP-NOLSE-NEXT: mov w25, w0 ; SOFTFP-NOLSE-NEXT: and w0, w22, #0xffff -; SOFTFP-NOLSE-NEXT: bl __gnu_h2f_ieee +; SOFTFP-NOLSE-NEXT: bl __extendhfsf2 ; SOFTFP-NOLSE-NEXT: mov w1, w25 ; SOFTFP-NOLSE-NEXT: bl __addsf3 -; SOFTFP-NOLSE-NEXT: bl __gnu_f2h_ieee +; SOFTFP-NOLSE-NEXT: bl __truncsfhf2 ; SOFTFP-NOLSE-NEXT: mov w8, w22 ; SOFTFP-NOLSE-NEXT: bfi w0, w24, #16, #16 ; SOFTFP-NOLSE-NEXT: bfi w8, w23, #16, #16 diff --git a/llvm/test/CodeGen/AArch64/atomicrmw-fmax.ll b/llvm/test/CodeGen/AArch64/atomicrmw-fmax.ll index 24088998f36d1..9b5e48d2b4217 100644 --- a/llvm/test/CodeGen/AArch64/atomicrmw-fmax.ll +++ b/llvm/test/CodeGen/AArch64/atomicrmw-fmax.ll @@ -62,13 +62,13 @@ define half @test_atomicrmw_fmax_f16_seq_cst_align2(ptr %ptr, half %value) #0 { ; SOFTFP-NOLSE-NEXT: // Child Loop BB0_3 Depth 2 ; SOFTFP-NOLSE-NEXT: mov w22, w0 ; SOFTFP-NOLSE-NEXT: and w0, w20, #0xffff -; SOFTFP-NOLSE-NEXT: bl __gnu_h2f_ieee +; SOFTFP-NOLSE-NEXT: bl __extendhfsf2 ; SOFTFP-NOLSE-NEXT: mov w21, w0 ; SOFTFP-NOLSE-NEXT: and w0, w22, #0xffff -; SOFTFP-NOLSE-NEXT: bl __gnu_h2f_ieee +; SOFTFP-NOLSE-NEXT: bl __extendhfsf2 ; SOFTFP-NOLSE-NEXT: mov w1, w21 ; SOFTFP-NOLSE-NEXT: bl fmaxf -; SOFTFP-NOLSE-NEXT: bl __gnu_f2h_ieee +; SOFTFP-NOLSE-NEXT: bl __truncsfhf2 ; SOFTFP-NOLSE-NEXT: mov w8, w0 ; SOFTFP-NOLSE-NEXT: .LBB0_3: // %cmpxchg.start ; SOFTFP-NOLSE-NEXT: // Parent Loop BB0_2 Depth=1 @@ -150,13 +150,13 @@ define half @test_atomicrmw_fmax_f16_seq_cst_align4(ptr %ptr, half %value) #0 { ; SOFTFP-NOLSE-NEXT: // Child Loop BB1_3 Depth 2 ; SOFTFP-NOLSE-NEXT: mov w22, w0 ; SOFTFP-NOLSE-NEXT: and w0, w20, #0xffff -; SOFTFP-NOLSE-NEXT: bl __gnu_h2f_ieee +; SOFTFP-NOLSE-NEXT: bl __extendhfsf2 ; SOFTFP-NOLSE-NEXT: mov w21, w0 ; SOFTFP-NOLSE-NEXT: and w0, w22, #0xffff -; SOFTFP-NOLSE-NEXT: bl __gnu_h2f_ieee +; SOFTFP-NOLSE-NEXT: bl __extendhfsf2 ; SOFTFP-NOLSE-NEXT: mov w1, w21 ; SOFTFP-NOLSE-NEXT: bl fmaxf -; SOFTFP-NOLSE-NEXT: bl __gnu_f2h_ieee +; SOFTFP-NOLSE-NEXT: bl __truncsfhf2 ; SOFTFP-NOLSE-NEXT: mov w8, w0 ; SOFTFP-NOLSE-NEXT: .LBB1_3: // %cmpxchg.start ; SOFTFP-NOLSE-NEXT: // Parent Loop BB1_2 Depth=1 @@ -592,22 +592,22 @@ define <2 x half> @test_atomicrmw_fmax_v2f16_seq_cst_align4(ptr %ptr, <2 x half> ; SOFTFP-NOLSE-NEXT: // =>This Loop Header: Depth=1 ; SOFTFP-NOLSE-NEXT: // Child Loop BB6_3 Depth 2 ; SOFTFP-NOLSE-NEXT: and w0, w19, #0xffff -; SOFTFP-NOLSE-NEXT: bl __gnu_h2f_ieee +; SOFTFP-NOLSE-NEXT: bl __extendhfsf2 ; SOFTFP-NOLSE-NEXT: mov w24, w0 ; SOFTFP-NOLSE-NEXT: and w0, w23, #0xffff -; SOFTFP-NOLSE-NEXT: bl __gnu_h2f_ieee +; SOFTFP-NOLSE-NEXT: bl __extendhfsf2 ; SOFTFP-NOLSE-NEXT: mov w1, w24 ; SOFTFP-NOLSE-NEXT: bl fmaxf -; SOFTFP-NOLSE-NEXT: bl __gnu_f2h_ieee +; SOFTFP-NOLSE-NEXT: bl __truncsfhf2 ; SOFTFP-NOLSE-NEXT: mov w24, w0 ; SOFTFP-NOLSE-NEXT: and w0, w21, #0xffff -; SOFTFP-NOLSE-NEXT: bl __gnu_h2f_ieee +; SOFTFP-NOLSE-NEXT: bl __extendhfsf2 ; SOFTFP-NOLSE-NEXT: mov w25, w0 ; SOFTFP-NOLSE-NEXT: and w0, w22, #0xffff -; SOFTFP-NOLSE-NEXT: bl __gnu_h2f_ieee +; SOFTFP-NOLSE-NEXT: bl __extendhfsf2 ; SOFTFP-NOLSE-NEXT: mov w1, w25 ; SOFTFP-NOLSE-NEXT: bl fmaxf -; SOFTFP-NOLSE-NEXT: bl __gnu_f2h_ieee +; SOFTFP-NOLSE-NEXT: bl __truncsfhf2 ; SOFTFP-NOLSE-NEXT: mov w8, w22 ; SOFTFP-NOLSE-NEXT: bfi w0, w24, #16, #16 ; SOFTFP-NOLSE-NEXT: bfi w8, w23, #16, #16 diff --git a/llvm/test/CodeGen/AArch64/atomicrmw-fmin.ll b/llvm/test/CodeGen/AArch64/atomicrmw-fmin.ll index 65f1f4863c173..f6c542fe7d407 100644 --- a/llvm/test/CodeGen/AArch64/atomicrmw-fmin.ll +++ b/llvm/test/CodeGen/AArch64/atomicrmw-fmin.ll @@ -62,13 +62,13 @@ define half @test_atomicrmw_fmin_f16_seq_cst_align2(ptr %ptr, half %value) #0 { ; SOFTFP-NOLSE-NEXT: // Child Loop BB0_3 Depth 2 ; SOFTFP-NOLSE-NEXT: mov w22, w0 ; SOFTFP-NOLSE-NEXT: and w0, w20, #0xffff -; SOFTFP-NOLSE-NEXT: bl __gnu_h2f_ieee +; SOFTFP-NOLSE-NEXT: bl __extendhfsf2 ; SOFTFP-NOLSE-NEXT: mov w21, w0 ; SOFTFP-NOLSE-NEXT: and w0, w22, #0xffff -; SOFTFP-NOLSE-NEXT: bl __gnu_h2f_ieee +; SOFTFP-NOLSE-NEXT: bl __extendhfsf2 ; SOFTFP-NOLSE-NEXT: mov w1, w21 ; SOFTFP-NOLSE-NEXT: bl fminf -; SOFTFP-NOLSE-NEXT: bl __gnu_f2h_ieee +; SOFTFP-NOLSE-NEXT: bl __truncsfhf2 ; SOFTFP-NOLSE-NEXT: mov w8, w0 ; SOFTFP-NOLSE-NEXT: .LBB0_3: // %cmpxchg.start ; SOFTFP-NOLSE-NEXT: // Parent Loop BB0_2 Depth=1 @@ -150,13 +150,13 @@ define half @test_atomicrmw_fmin_f16_seq_cst_align4(ptr %ptr, half %value) #0 { ; SOFTFP-NOLSE-NEXT: // Child Loop BB1_3 Depth 2 ; SOFTFP-NOLSE-NEXT: mov w22, w0 ; SOFTFP-NOLSE-NEXT: and w0, w20, #0xffff -; SOFTFP-NOLSE-NEXT: bl __gnu_h2f_ieee +; SOFTFP-NOLSE-NEXT: bl __extendhfsf2 ; SOFTFP-NOLSE-NEXT: mov w21, w0 ; SOFTFP-NOLSE-NEXT: and w0, w22, #0xffff -; SOFTFP-NOLSE-NEXT: bl __gnu_h2f_ieee +; SOFTFP-NOLSE-NEXT: bl __extendhfsf2 ; SOFTFP-NOLSE-NEXT: mov w1, w21 ; SOFTFP-NOLSE-NEXT: bl fminf -; SOFTFP-NOLSE-NEXT: bl __gnu_f2h_ieee +; SOFTFP-NOLSE-NEXT: bl __truncsfhf2 ; SOFTFP-NOLSE-NEXT: mov w8, w0 ; SOFTFP-NOLSE-NEXT: .LBB1_3: // %cmpxchg.start ; SOFTFP-NOLSE-NEXT: // Parent Loop BB1_2 Depth=1 @@ -592,22 +592,22 @@ define <2 x half> @test_atomicrmw_fmin_v2f16_seq_cst_align4(ptr %ptr, <2 x half> ; SOFTFP-NOLSE-NEXT: // =>This Loop Header: Depth=1 ; SOFTFP-NOLSE-NEXT: // Child Loop BB6_3 Depth 2 ; SOFTFP-NOLSE-NEXT: and w0, w19, #0xffff -; SOFTFP-NOLSE-NEXT: bl __gnu_h2f_ieee +; SOFTFP-NOLSE-NEXT: bl __extendhfsf2 ; SOFTFP-NOLSE-NEXT: mov w24, w0 ; SOFTFP-NOLSE-NEXT: and w0, w23, #0xffff -; SOFTFP-NOLSE-NEXT: bl __gnu_h2f_ieee +; SOFTFP-NOLSE-NEXT: bl __extendhfsf2 ; SOFTFP-NOLSE-NEXT: mov w1, w24 ; SOFTFP-NOLSE-NEXT: bl fminf -; SOFTFP-NOLSE-NEXT: bl __gnu_f2h_ieee +; SOFTFP-NOLSE-NEXT: bl __truncsfhf2 ; SOFTFP-NOLSE-NEXT: mov w24, w0 ; SOFTFP-NOLSE-NEXT: and w0, w21, #0xffff -; SOFTFP-NOLSE-NEXT: bl __gnu_h2f_ieee +; SOFTFP-NOLSE-NEXT: bl __extendhfsf2 ; SOFTFP-NOLSE-NEXT: mov w25, w0 ; SOFTFP-NOLSE-NEXT: and w0, w22, #0xffff -; SOFTFP-NOLSE-NEXT: bl __gnu_h2f_ieee +; SOFTFP-NOLSE-NEXT: bl __extendhfsf2 ; SOFTFP-NOLSE-NEXT: mov w1, w25 ; SOFTFP-NOLSE-NEXT: bl fminf -; SOFTFP-NOLSE-NEXT: bl __gnu_f2h_ieee +; SOFTFP-NOLSE-NEXT: bl __truncsfhf2 ; SOFTFP-NOLSE-NEXT: mov w8, w22 ; SOFTFP-NOLSE-NEXT: bfi w0, w24, #16, #16 ; SOFTFP-NOLSE-NEXT: bfi w8, w23, #16, #16 diff --git a/llvm/test/CodeGen/AArch64/atomicrmw-fsub.ll b/llvm/test/CodeGen/AArch64/atomicrmw-fsub.ll index 0f1a2f03c98c3..82e0f14e68e26 100644 --- a/llvm/test/CodeGen/AArch64/atomicrmw-fsub.ll +++ b/llvm/test/CodeGen/AArch64/atomicrmw-fsub.ll @@ -60,13 +60,13 @@ define half @test_atomicrmw_fsub_f16_seq_cst_align2(ptr %ptr, half %value) #0 { ; SOFTFP-NOLSE-NEXT: // Child Loop BB0_3 Depth 2 ; SOFTFP-NOLSE-NEXT: mov w22, w0 ; SOFTFP-NOLSE-NEXT: and w0, w20, #0xffff -; SOFTFP-NOLSE-NEXT: bl __gnu_h2f_ieee +; SOFTFP-NOLSE-NEXT: bl __extendhfsf2 ; SOFTFP-NOLSE-NEXT: mov w21, w0 ; SOFTFP-NOLSE-NEXT: and w0, w22, #0xffff -; SOFTFP-NOLSE-NEXT: bl __gnu_h2f_ieee +; SOFTFP-NOLSE-NEXT: bl __extendhfsf2 ; SOFTFP-NOLSE-NEXT: mov w1, w21 ; SOFTFP-NOLSE-NEXT: bl __subsf3 -; SOFTFP-NOLSE-NEXT: bl __gnu_f2h_ieee +; SOFTFP-NOLSE-NEXT: bl __truncsfhf2 ; SOFTFP-NOLSE-NEXT: mov w8, w0 ; SOFTFP-NOLSE-NEXT: .LBB0_3: // %cmpxchg.start ; SOFTFP-NOLSE-NEXT: // Parent Loop BB0_2 Depth=1 @@ -148,13 +148,13 @@ define half @test_atomicrmw_fsub_f16_seq_cst_align4(ptr %ptr, half %value) #0 { ; SOFTFP-NOLSE-NEXT: // Child Loop BB1_3 Depth 2 ; SOFTFP-NOLSE-NEXT: mov w22, w0 ; SOFTFP-NOLSE-NEXT: and w0, w20, #0xffff -; SOFTFP-NOLSE-NEXT: bl __gnu_h2f_ieee +; SOFTFP-NOLSE-NEXT: bl __extendhfsf2 ; SOFTFP-NOLSE-NEXT: mov w21, w0 ; SOFTFP-NOLSE-NEXT: and w0, w22, #0xffff -; SOFTFP-NOLSE-NEXT: bl __gnu_h2f_ieee +; SOFTFP-NOLSE-NEXT: bl __extendhfsf2 ; SOFTFP-NOLSE-NEXT: mov w1, w21 ; SOFTFP-NOLSE-NEXT: bl __subsf3 -; SOFTFP-NOLSE-NEXT: bl __gnu_f2h_ieee +; SOFTFP-NOLSE-NEXT: bl __truncsfhf2 ; SOFTFP-NOLSE-NEXT: mov w8, w0 ; SOFTFP-NOLSE-NEXT: .LBB1_3: // %cmpxchg.start ; SOFTFP-NOLSE-NEXT: // Parent Loop BB1_2 Depth=1 @@ -712,22 +712,22 @@ define <2 x half> @test_atomicrmw_fsub_v2f16_seq_cst_align4(ptr %ptr, <2 x half> ; SOFTFP-NOLSE-NEXT: // =>This Loop Header: Depth=1 ; SOFTFP-NOLSE-NEXT: // Child Loop BB7_3 Depth 2 ; SOFTFP-NOLSE-NEXT: and w0, w19, #0xffff -; SOFTFP-NOLSE-NEXT: bl __gnu_h2f_ieee +; SOFTFP-NOLSE-NEXT: bl __extendhfsf2 ; SOFTFP-NOLSE-NEXT: mov w24, w0 ; SOFTFP-NOLSE-NEXT: and w0, w23, #0xffff -; SOFTFP-NOLSE-NEXT: bl __gnu_h2f_ieee +; SOFTFP-NOLSE-NEXT: bl __extendhfsf2 ; SOFTFP-NOLSE-NEXT: mov w1, w24 ; SOFTFP-NOLSE-NEXT: bl __subsf3 -; SOFTFP-NOLSE-NEXT: bl __gnu_f2h_ieee +; SOFTFP-NOLSE-NEXT: bl __truncsfhf2 ; SOFTFP-NOLSE-NEXT: mov w24, w0 ; SOFTFP-NOLSE-NEXT: and w0, w21, #0xffff -; SOFTFP-NOLSE-NEXT: bl __gnu_h2f_ieee +; SOFTFP-NOLSE-NEXT: bl __extendhfsf2 ; SOFTFP-NOLSE-NEXT: mov w25, w0 ; SOFTFP-NOLSE-NEXT: and w0, w22, #0xffff -; SOFTFP-NOLSE-NEXT: bl __gnu_h2f_ieee +; SOFTFP-NOLSE-NEXT: bl __extendhfsf2 ; SOFTFP-NOLSE-NEXT: mov w1, w25 ; SOFTFP-NOLSE-NEXT: bl __subsf3 -; SOFTFP-NOLSE-NEXT: bl __gnu_f2h_ieee +; SOFTFP-NOLSE-NEXT: bl __truncsfhf2 ; SOFTFP-NOLSE-NEXT: mov w8, w22 ; SOFTFP-NOLSE-NEXT: bfi w0, w24, #16, #16 ; SOFTFP-NOLSE-NEXT: bfi w8, w23, #16, #16 diff --git a/llvm/test/CodeGen/AArch64/strictfp_f16_abi_promote.ll b/llvm/test/CodeGen/AArch64/strictfp_f16_abi_promote.ll index 3db802a2bc355..63b8a1cee27ae 100644 --- a/llvm/test/CodeGen/AArch64/strictfp_f16_abi_promote.ll +++ b/llvm/test/CodeGen/AArch64/strictfp_f16_abi_promote.ll @@ -22,7 +22,7 @@ define void @f16_arg(half %arg, ptr %ptr) #0 { ; NOFP16-NEXT: .cfi_offset w30, -16 ; NOFP16-NEXT: and w0, w0, #0xffff ; NOFP16-NEXT: mov x19, x1 -; NOFP16-NEXT: bl __gnu_h2f_ieee +; NOFP16-NEXT: bl __extendhfsf2 ; NOFP16-NEXT: str w0, [x19] ; NOFP16-NEXT: ldp x30, x19, [sp], #16 // 16-byte Folded Reload ; NOFP16-NEXT: ret @@ -44,10 +44,10 @@ define void @v2f16_arg(<2 x half> %arg, ptr %ptr) #0 { ; NOFP16-NEXT: and w0, w0, #0xffff ; NOFP16-NEXT: mov x19, x2 ; NOFP16-NEXT: mov w20, w1 -; NOFP16-NEXT: bl __gnu_h2f_ieee +; NOFP16-NEXT: bl __extendhfsf2 ; NOFP16-NEXT: mov w21, w0 ; NOFP16-NEXT: and w0, w20, #0xffff -; NOFP16-NEXT: bl __gnu_h2f_ieee +; NOFP16-NEXT: bl __extendhfsf2 ; NOFP16-NEXT: stp w21, w0, [x19] ; NOFP16-NEXT: ldp x20, x19, [sp, #16] // 16-byte Folded Reload ; NOFP16-NEXT: ldp x30, x21, [sp], #32 // 16-byte Folded Reload @@ -73,14 +73,14 @@ define void @v3f16_arg(<3 x half> %arg, ptr %ptr) #0 { ; NOFP16-NEXT: and w0, w1, #0xffff ; NOFP16-NEXT: mov x19, x3 ; NOFP16-NEXT: mov w20, w2 -; NOFP16-NEXT: bl __gnu_h2f_ieee +; NOFP16-NEXT: bl __extendhfsf2 ; NOFP16-NEXT: mov w22, w0 ; NOFP16-NEXT: and w0, w21, #0xffff -; NOFP16-NEXT: bl __gnu_h2f_ieee +; NOFP16-NEXT: bl __extendhfsf2 ; NOFP16-NEXT: mov w8, w0 ; NOFP16-NEXT: and w0, w20, #0xffff ; NOFP16-NEXT: orr x21, x8, x22, lsl #32 -; NOFP16-NEXT: bl __gnu_h2f_ieee +; NOFP16-NEXT: bl __extendhfsf2 ; NOFP16-NEXT: str x21, [x19] ; NOFP16-NEXT: ldp x22, x21, [sp, #16] // 16-byte Folded Reload ; NOFP16-NEXT: str w0, [x19, #8] @@ -110,16 +110,16 @@ define void @v4f16_arg(<4 x half> %arg, ptr %ptr) #0 { ; NOFP16-NEXT: mov w20, w3 ; NOFP16-NEXT: mov w21, w2 ; NOFP16-NEXT: mov w22, w1 -; NOFP16-NEXT: bl __gnu_h2f_ieee +; NOFP16-NEXT: bl __extendhfsf2 ; NOFP16-NEXT: mov w23, w0 ; NOFP16-NEXT: and w0, w22, #0xffff -; NOFP16-NEXT: bl __gnu_h2f_ieee +; NOFP16-NEXT: bl __extendhfsf2 ; NOFP16-NEXT: mov w22, w0 ; NOFP16-NEXT: and w0, w21, #0xffff -; NOFP16-NEXT: bl __gnu_h2f_ieee +; NOFP16-NEXT: bl __extendhfsf2 ; NOFP16-NEXT: mov w21, w0 ; NOFP16-NEXT: and w0, w20, #0xffff -; NOFP16-NEXT: bl __gnu_h2f_ieee +; NOFP16-NEXT: bl __extendhfsf2 ; NOFP16-NEXT: stp w21, w0, [x19, #8] ; NOFP16-NEXT: stp w23, w22, [x19] ; NOFP16-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload @@ -137,7 +137,7 @@ define void @v4f16_arg(<4 x half> %arg, ptr %ptr) #0 { ; NOFP16-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill ; NOFP16-NEXT: .cfi_def_cfa_offset 16 ; NOFP16-NEXT: .cfi_offset w30, -16 -; NOFP16-NEXT: bl __gnu_f2h_ieee +; NOFP16-NEXT: bl __truncsfhf2 ; NOFP16-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload ; NOFP16-NEXT: ret %fptrunc = call half @llvm.experimental.constrained.fptrunc.f16.f32(float %arg, metadata !"round.tonearest", metadata !"fpexcept.strict") @@ -155,10 +155,10 @@ define void @v4f16_arg(<4 x half> %arg, ptr %ptr) #0 { ; NOFP16-NEXT: .cfi_offset w30, -32 ; NOFP16-NEXT: mov w19, w0 ; NOFP16-NEXT: mov w0, w1 -; NOFP16-NEXT: bl __gnu_f2h_ieee +; NOFP16-NEXT: bl __truncsfhf2 ; NOFP16-NEXT: mov w20, w0 ; NOFP16-NEXT: mov w0, w19 -; NOFP16-NEXT: bl __gnu_f2h_ieee +; NOFP16-NEXT: bl __truncsfhf2 ; NOFP16-NEXT: mov w1, w20 ; NOFP16-NEXT: ldp x20, x19, [sp, #16] // 16-byte Folded Reload ; NOFP16-NEXT: ldr x30, [sp], #32 // 8-byte Folded Reload @@ -180,13 +180,13 @@ define void @v4f16_arg(<4 x half> %arg, ptr %ptr) #0 { ; NOFP16-NEXT: mov w20, w0 ; NOFP16-NEXT: mov w0, w2 ; NOFP16-NEXT: mov w19, w1 -; NOFP16-NEXT: bl __gnu_f2h_ieee +; NOFP16-NEXT: bl __truncsfhf2 ; NOFP16-NEXT: mov w21, w0 ; NOFP16-NEXT: mov w0, w19 -; NOFP16-NEXT: bl __gnu_f2h_ieee +; NOFP16-NEXT: bl __truncsfhf2 ; NOFP16-NEXT: mov w19, w0 ; NOFP16-NEXT: mov w0, w20 -; NOFP16-NEXT: bl __gnu_f2h_ieee +; NOFP16-NEXT: bl __truncsfhf2 ; NOFP16-NEXT: mov w1, w19 ; NOFP16-NEXT: ldp x20, x19, [sp, #16] // 16-byte Folded Reload ; NOFP16-NEXT: mov w2, w21 @@ -212,16 +212,16 @@ define void @v4f16_arg(<4 x half> %arg, ptr %ptr) #0 { ; NOFP16-NEXT: mov w0, w3 ; NOFP16-NEXT: mov w19, w2 ; NOFP16-NEXT: mov w20, w1 -; NOFP16-NEXT: bl __gnu_f2h_ieee +; NOFP16-NEXT: bl __truncsfhf2 ; NOFP16-NEXT: mov w22, w0 ; NOFP16-NEXT: mov w0, w19 -; NOFP16-NEXT: bl __gnu_f2h_ieee +; NOFP16-NEXT: bl __truncsfhf2 ; NOFP16-NEXT: mov w19, w0 ; NOFP16-NEXT: mov w0, w20 -; NOFP16-NEXT: bl __gnu_f2h_ieee +; NOFP16-NEXT: bl __truncsfhf2 ; NOFP16-NEXT: mov w20, w0 ; NOFP16-NEXT: mov w0, w21 -; NOFP16-NEXT: bl __gnu_f2h_ieee +; NOFP16-NEXT: bl __truncsfhf2 ; NOFP16-NEXT: mov w1, w20 ; NOFP16-NEXT: mov w2, w19 ; NOFP16-NEXT: mov w3, w22 diff --git a/llvm/test/CodeGen/LoongArch/fp16-promote.ll b/llvm/test/CodeGen/LoongArch/fp16-promote.ll index c5a27a7011278..3701f0df1d2b2 100644 --- a/llvm/test/CodeGen/LoongArch/fp16-promote.ll +++ b/llvm/test/CodeGen/LoongArch/fp16-promote.ll @@ -23,12 +23,12 @@ define float @test_fpextend_float(ptr %p) nounwind { ; LA32-LABEL: test_fpextend_float: ; LA32: # %bb.0: ; LA32-NEXT: ld.hu $a0, $a0, 0 -; LA32-NEXT: b %plt(__gnu_h2f_ieee) +; LA32-NEXT: b %plt(__extendhfsf2) ; ; LA64-LABEL: test_fpextend_float: ; LA64: # %bb.0: ; LA64-NEXT: ld.hu $a0, $a0, 0 -; LA64-NEXT: b %plt(__gnu_h2f_ieee) +; LA64-NEXT: b %plt(__extendhfsf2) %a = load half, ptr %p %r = fpext half %a to float ret float %r @@ -40,7 +40,7 @@ define double @test_fpextend_double(ptr %p) nounwind { ; LA32-NEXT: addi.w $sp, $sp, -16 ; LA32-NEXT: st.w $ra, $sp, 12 # 4-byte Folded Spill ; LA32-NEXT: ld.hu $a0, $a0, 0 -; LA32-NEXT: bl %plt(__gnu_h2f_ieee) +; LA32-NEXT: bl %plt(__extendhfsf2) ; LA32-NEXT: fcvt.d.s $fa0, $fa0 ; LA32-NEXT: ld.w $ra, $sp, 12 # 4-byte Folded Reload ; LA32-NEXT: addi.w $sp, $sp, 16 @@ -51,7 +51,7 @@ define double @test_fpextend_double(ptr %p) nounwind { ; LA64-NEXT: addi.d $sp, $sp, -16 ; LA64-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill ; LA64-NEXT: ld.hu $a0, $a0, 0 -; LA64-NEXT: bl %plt(__gnu_h2f_ieee) +; LA64-NEXT: bl %plt(__extendhfsf2) ; LA64-NEXT: fcvt.d.s $fa0, $fa0 ; LA64-NEXT: ld.d $ra, $sp, 8 # 8-byte Folded Reload ; LA64-NEXT: addi.d $sp, $sp, 16 @@ -68,7 +68,7 @@ define void @test_fptrunc_float(float %f, ptr %p) nounwind { ; LA32-NEXT: st.w $ra, $sp, 12 # 4-byte Folded Spill ; LA32-NEXT: st.w $fp, $sp, 8 # 4-byte Folded Spill ; LA32-NEXT: move $fp, $a0 -; LA32-NEXT: bl %plt(__gnu_f2h_ieee) +; LA32-NEXT: bl %plt(__truncsfhf2) ; LA32-NEXT: st.h $a0, $fp, 0 ; LA32-NEXT: ld.w $fp, $sp, 8 # 4-byte Folded Reload ; LA32-NEXT: ld.w $ra, $sp, 12 # 4-byte Folded Reload @@ -81,7 +81,7 @@ define void @test_fptrunc_float(float %f, ptr %p) nounwind { ; LA64-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill ; LA64-NEXT: st.d $fp, $sp, 0 # 8-byte Folded Spill ; LA64-NEXT: move $fp, $a0 -; LA64-NEXT: bl %plt(__gnu_f2h_ieee) +; LA64-NEXT: bl %plt(__truncsfhf2) ; LA64-NEXT: st.h $a0, $fp, 0 ; LA64-NEXT: ld.d $fp, $sp, 0 # 8-byte Folded Reload ; LA64-NEXT: ld.d $ra, $sp, 8 # 8-byte Folded Reload @@ -132,12 +132,12 @@ define half @test_fadd_reg(half %a, half %b) nounwind { ; LA32-NEXT: fst.d $fs0, $sp, 0 # 8-byte Folded Spill ; LA32-NEXT: move $fp, $a0 ; LA32-NEXT: move $a0, $a1 -; LA32-NEXT: bl %plt(__gnu_h2f_ieee) +; LA32-NEXT: bl %plt(__extendhfsf2) ; LA32-NEXT: fmov.s $fs0, $fa0 ; LA32-NEXT: move $a0, $fp -; LA32-NEXT: bl %plt(__gnu_h2f_ieee) +; LA32-NEXT: bl %plt(__extendhfsf2) ; LA32-NEXT: fadd.s $fa0, $fa0, $fs0 -; LA32-NEXT: bl %plt(__gnu_f2h_ieee) +; LA32-NEXT: bl %plt(__truncsfhf2) ; LA32-NEXT: fld.d $fs0, $sp, 0 # 8-byte Folded Reload ; LA32-NEXT: ld.w $fp, $sp, 8 # 4-byte Folded Reload ; LA32-NEXT: ld.w $ra, $sp, 12 # 4-byte Folded Reload @@ -152,12 +152,12 @@ define half @test_fadd_reg(half %a, half %b) nounwind { ; LA64-NEXT: fst.d $fs0, $sp, 8 # 8-byte Folded Spill ; LA64-NEXT: move $fp, $a0 ; LA64-NEXT: move $a0, $a1 -; LA64-NEXT: bl %plt(__gnu_h2f_ieee) +; LA64-NEXT: bl %plt(__extendhfsf2) ; LA64-NEXT: fmov.s $fs0, $fa0 ; LA64-NEXT: move $a0, $fp -; LA64-NEXT: bl %plt(__gnu_h2f_ieee) +; LA64-NEXT: bl %plt(__extendhfsf2) ; LA64-NEXT: fadd.s $fa0, $fa0, $fs0 -; LA64-NEXT: bl %plt(__gnu_f2h_ieee) +; LA64-NEXT: bl %plt(__truncsfhf2) ; LA64-NEXT: fld.d $fs0, $sp, 8 # 8-byte Folded Reload ; LA64-NEXT: ld.d $fp, $sp, 16 # 8-byte Folded Reload ; LA64-NEXT: ld.d $ra, $sp, 24 # 8-byte Folded Reload @@ -178,12 +178,12 @@ define void @test_fadd_mem(ptr %p, ptr %q) nounwind { ; LA32-NEXT: move $fp, $a0 ; LA32-NEXT: ld.hu $s0, $a0, 0 ; LA32-NEXT: ld.hu $a0, $a1, 0 -; LA32-NEXT: bl %plt(__gnu_h2f_ieee) +; LA32-NEXT: bl %plt(__extendhfsf2) ; LA32-NEXT: fmov.s $fs0, $fa0 ; LA32-NEXT: move $a0, $s0 -; LA32-NEXT: bl %plt(__gnu_h2f_ieee) +; LA32-NEXT: bl %plt(__extendhfsf2) ; LA32-NEXT: fadd.s $fa0, $fa0, $fs0 -; LA32-NEXT: bl %plt(__gnu_f2h_ieee) +; LA32-NEXT: bl %plt(__truncsfhf2) ; LA32-NEXT: st.h $a0, $fp, 0 ; LA32-NEXT: fld.d $fs0, $sp, 8 # 8-byte Folded Reload ; LA32-NEXT: ld.w $s0, $sp, 20 # 4-byte Folded Reload @@ -202,12 +202,12 @@ define void @test_fadd_mem(ptr %p, ptr %q) nounwind { ; LA64-NEXT: move $fp, $a0 ; LA64-NEXT: ld.hu $s0, $a0, 0 ; LA64-NEXT: ld.hu $a0, $a1, 0 -; LA64-NEXT: bl %plt(__gnu_h2f_ieee) +; LA64-NEXT: bl %plt(__extendhfsf2) ; LA64-NEXT: fmov.s $fs0, $fa0 ; LA64-NEXT: move $a0, $s0 -; LA64-NEXT: bl %plt(__gnu_h2f_ieee) +; LA64-NEXT: bl %plt(__extendhfsf2) ; LA64-NEXT: fadd.s $fa0, $fa0, $fs0 -; LA64-NEXT: bl %plt(__gnu_f2h_ieee) +; LA64-NEXT: bl %plt(__truncsfhf2) ; LA64-NEXT: st.h $a0, $fp, 0 ; LA64-NEXT: fld.d $fs0, $sp, 0 # 8-byte Folded Reload ; LA64-NEXT: ld.d $s0, $sp, 8 # 8-byte Folded Reload @@ -231,12 +231,12 @@ define half @test_fmul_reg(half %a, half %b) nounwind { ; LA32-NEXT: fst.d $fs0, $sp, 0 # 8-byte Folded Spill ; LA32-NEXT: move $fp, $a0 ; LA32-NEXT: move $a0, $a1 -; LA32-NEXT: bl %plt(__gnu_h2f_ieee) +; LA32-NEXT: bl %plt(__extendhfsf2) ; LA32-NEXT: fmov.s $fs0, $fa0 ; LA32-NEXT: move $a0, $fp -; LA32-NEXT: bl %plt(__gnu_h2f_ieee) +; LA32-NEXT: bl %plt(__extendhfsf2) ; LA32-NEXT: fmul.s $fa0, $fa0, $fs0 -; LA32-NEXT: bl %plt(__gnu_f2h_ieee) +; LA32-NEXT: bl %plt(__truncsfhf2) ; LA32-NEXT: fld.d $fs0, $sp, 0 # 8-byte Folded Reload ; LA32-NEXT: ld.w $fp, $sp, 8 # 4-byte Folded Reload ; LA32-NEXT: ld.w $ra, $sp, 12 # 4-byte Folded Reload @@ -251,12 +251,12 @@ define half @test_fmul_reg(half %a, half %b) nounwind { ; LA64-NEXT: fst.d $fs0, $sp, 8 # 8-byte Folded Spill ; LA64-NEXT: move $fp, $a0 ; LA64-NEXT: move $a0, $a1 -; LA64-NEXT: bl %plt(__gnu_h2f_ieee) +; LA64-NEXT: bl %plt(__extendhfsf2) ; LA64-NEXT: fmov.s $fs0, $fa0 ; LA64-NEXT: move $a0, $fp -; LA64-NEXT: bl %plt(__gnu_h2f_ieee) +; LA64-NEXT: bl %plt(__extendhfsf2) ; LA64-NEXT: fmul.s $fa0, $fa0, $fs0 -; LA64-NEXT: bl %plt(__gnu_f2h_ieee) +; LA64-NEXT: bl %plt(__truncsfhf2) ; LA64-NEXT: fld.d $fs0, $sp, 8 # 8-byte Folded Reload ; LA64-NEXT: ld.d $fp, $sp, 16 # 8-byte Folded Reload ; LA64-NEXT: ld.d $ra, $sp, 24 # 8-byte Folded Reload @@ -277,12 +277,12 @@ define void @test_fmul_mem(ptr %p, ptr %q) nounwind { ; LA32-NEXT: move $fp, $a0 ; LA32-NEXT: ld.hu $s0, $a0, 0 ; LA32-NEXT: ld.hu $a0, $a1, 0 -; LA32-NEXT: bl %plt(__gnu_h2f_ieee) +; LA32-NEXT: bl %plt(__extendhfsf2) ; LA32-NEXT: fmov.s $fs0, $fa0 ; LA32-NEXT: move $a0, $s0 -; LA32-NEXT: bl %plt(__gnu_h2f_ieee) +; LA32-NEXT: bl %plt(__extendhfsf2) ; LA32-NEXT: fmul.s $fa0, $fa0, $fs0 -; LA32-NEXT: bl %plt(__gnu_f2h_ieee) +; LA32-NEXT: bl %plt(__truncsfhf2) ; LA32-NEXT: st.h $a0, $fp, 0 ; LA32-NEXT: fld.d $fs0, $sp, 8 # 8-byte Folded Reload ; LA32-NEXT: ld.w $s0, $sp, 20 # 4-byte Folded Reload @@ -301,12 +301,12 @@ define void @test_fmul_mem(ptr %p, ptr %q) nounwind { ; LA64-NEXT: move $fp, $a0 ; LA64-NEXT: ld.hu $s0, $a0, 0 ; LA64-NEXT: ld.hu $a0, $a1, 0 -; LA64-NEXT: bl %plt(__gnu_h2f_ieee) +; LA64-NEXT: bl %plt(__extendhfsf2) ; LA64-NEXT: fmov.s $fs0, $fa0 ; LA64-NEXT: move $a0, $s0 -; LA64-NEXT: bl %plt(__gnu_h2f_ieee) +; LA64-NEXT: bl %plt(__extendhfsf2) ; LA64-NEXT: fmul.s $fa0, $fa0, $fs0 -; LA64-NEXT: bl %plt(__gnu_f2h_ieee) +; LA64-NEXT: bl %plt(__truncsfhf2) ; LA64-NEXT: st.h $a0, $fp, 0 ; LA64-NEXT: fld.d $fs0, $sp, 0 # 8-byte Folded Reload ; LA64-NEXT: ld.d $s0, $sp, 8 # 8-byte Folded Reload @@ -327,10 +327,10 @@ define half @freeze_half_undef() nounwind { ; LA32-NEXT: addi.w $sp, $sp, -16 ; LA32-NEXT: st.w $ra, $sp, 12 # 4-byte Folded Spill ; LA32-NEXT: movgr2fr.w $fa0, $zero -; LA32-NEXT: bl %plt(__gnu_f2h_ieee) -; LA32-NEXT: bl %plt(__gnu_h2f_ieee) +; LA32-NEXT: bl %plt(__truncsfhf2) +; LA32-NEXT: bl %plt(__extendhfsf2) ; LA32-NEXT: fadd.s $fa0, $fa0, $fa0 -; LA32-NEXT: bl %plt(__gnu_f2h_ieee) +; LA32-NEXT: bl %plt(__truncsfhf2) ; LA32-NEXT: ld.w $ra, $sp, 12 # 4-byte Folded Reload ; LA32-NEXT: addi.w $sp, $sp, 16 ; LA32-NEXT: ret @@ -340,10 +340,10 @@ define half @freeze_half_undef() nounwind { ; LA64-NEXT: addi.d $sp, $sp, -16 ; LA64-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill ; LA64-NEXT: movgr2fr.w $fa0, $zero -; LA64-NEXT: bl %plt(__gnu_f2h_ieee) -; LA64-NEXT: bl %plt(__gnu_h2f_ieee) +; LA64-NEXT: bl %plt(__truncsfhf2) +; LA64-NEXT: bl %plt(__extendhfsf2) ; LA64-NEXT: fadd.s $fa0, $fa0, $fa0 -; LA64-NEXT: bl %plt(__gnu_f2h_ieee) +; LA64-NEXT: bl %plt(__truncsfhf2) ; LA64-NEXT: ld.d $ra, $sp, 8 # 8-byte Folded Reload ; LA64-NEXT: addi.d $sp, $sp, 16 ; LA64-NEXT: ret @@ -357,9 +357,9 @@ define half @freeze_half_poison(half %maybe.poison) nounwind { ; LA32: # %bb.0: ; LA32-NEXT: addi.w $sp, $sp, -16 ; LA32-NEXT: st.w $ra, $sp, 12 # 4-byte Folded Spill -; LA32-NEXT: bl %plt(__gnu_h2f_ieee) +; LA32-NEXT: bl %plt(__extendhfsf2) ; LA32-NEXT: fadd.s $fa0, $fa0, $fa0 -; LA32-NEXT: bl %plt(__gnu_f2h_ieee) +; LA32-NEXT: bl %plt(__truncsfhf2) ; LA32-NEXT: ld.w $ra, $sp, 12 # 4-byte Folded Reload ; LA32-NEXT: addi.w $sp, $sp, 16 ; LA32-NEXT: ret @@ -368,9 +368,9 @@ define half @freeze_half_poison(half %maybe.poison) nounwind { ; LA64: # %bb.0: ; LA64-NEXT: addi.d $sp, $sp, -16 ; LA64-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill -; LA64-NEXT: bl %plt(__gnu_h2f_ieee) +; LA64-NEXT: bl %plt(__extendhfsf2) ; LA64-NEXT: fadd.s $fa0, $fa0, $fa0 -; LA64-NEXT: bl %plt(__gnu_f2h_ieee) +; LA64-NEXT: bl %plt(__truncsfhf2) ; LA64-NEXT: ld.d $ra, $sp, 8 # 8-byte Folded Reload ; LA64-NEXT: addi.d $sp, $sp, 16 ; LA64-NEXT: ret @@ -384,7 +384,7 @@ define signext i32 @test_half_to_s32(half %a) nounwind { ; LA32: # %bb.0: # %entry ; LA32-NEXT: addi.w $sp, $sp, -16 ; LA32-NEXT: st.w $ra, $sp, 12 # 4-byte Folded Spill -; LA32-NEXT: bl %plt(__gnu_h2f_ieee) +; LA32-NEXT: bl %plt(__extendhfsf2) ; LA32-NEXT: ftintrz.w.s $fa0, $fa0 ; LA32-NEXT: movfr2gr.s $a0, $fa0 ; LA32-NEXT: ld.w $ra, $sp, 12 # 4-byte Folded Reload @@ -395,7 +395,7 @@ define signext i32 @test_half_to_s32(half %a) nounwind { ; LA64: # %bb.0: # %entry ; LA64-NEXT: addi.d $sp, $sp, -16 ; LA64-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill -; LA64-NEXT: bl %plt(__gnu_h2f_ieee) +; LA64-NEXT: bl %plt(__extendhfsf2) ; LA64-NEXT: ftintrz.w.s $fa0, $fa0 ; LA64-NEXT: movfr2gr.s $a0, $fa0 ; LA64-NEXT: ld.d $ra, $sp, 8 # 8-byte Folded Reload @@ -411,7 +411,7 @@ define zeroext i32 @test_half_to_s32_u32(half %a) nounwind { ; LA32: # %bb.0: # %entry ; LA32-NEXT: addi.w $sp, $sp, -16 ; LA32-NEXT: st.w $ra, $sp, 12 # 4-byte Folded Spill -; LA32-NEXT: bl %plt(__gnu_h2f_ieee) +; LA32-NEXT: bl %plt(__extendhfsf2) ; LA32-NEXT: ftintrz.w.s $fa0, $fa0 ; LA32-NEXT: movfr2gr.s $a0, $fa0 ; LA32-NEXT: ld.w $ra, $sp, 12 # 4-byte Folded Reload @@ -422,7 +422,7 @@ define zeroext i32 @test_half_to_s32_u32(half %a) nounwind { ; LA64: # %bb.0: # %entry ; LA64-NEXT: addi.d $sp, $sp, -16 ; LA64-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill -; LA64-NEXT: bl %plt(__gnu_h2f_ieee) +; LA64-NEXT: bl %plt(__extendhfsf2) ; LA64-NEXT: ftintrz.w.s $fa0, $fa0 ; LA64-NEXT: movfr2gr.s $a0, $fa0 ; LA64-NEXT: bstrpick.d $a0, $a0, 31, 0 @@ -439,7 +439,7 @@ define i64 @test_half_to_i64(half %a) nounwind { ; LA32: # %bb.0: # %entry ; LA32-NEXT: addi.w $sp, $sp, -16 ; LA32-NEXT: st.w $ra, $sp, 12 # 4-byte Folded Spill -; LA32-NEXT: bl %plt(__gnu_h2f_ieee) +; LA32-NEXT: bl %plt(__extendhfsf2) ; LA32-NEXT: bl %plt(__fixsfdi) ; LA32-NEXT: ld.w $ra, $sp, 12 # 4-byte Folded Reload ; LA32-NEXT: addi.w $sp, $sp, 16 @@ -449,7 +449,7 @@ define i64 @test_half_to_i64(half %a) nounwind { ; LA64: # %bb.0: # %entry ; LA64-NEXT: addi.d $sp, $sp, -16 ; LA64-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill -; LA64-NEXT: bl %plt(__gnu_h2f_ieee) +; LA64-NEXT: bl %plt(__extendhfsf2) ; LA64-NEXT: ftintrz.l.s $fa0, $fa0 ; LA64-NEXT: movfr2gr.d $a0, $fa0 ; LA64-NEXT: ld.d $ra, $sp, 8 # 8-byte Folded Reload diff --git a/llvm/test/CodeGen/Mips/fp16-promote.ll b/llvm/test/CodeGen/Mips/fp16-promote.ll index 47bace9f5c03f..c03ca3a6d78dd 100644 --- a/llvm/test/CodeGen/Mips/fp16-promote.ll +++ b/llvm/test/CodeGen/Mips/fp16-promote.ll @@ -11,12 +11,12 @@ define void @test_fadd(ptr %p, ptr %q) nounwind { ; MIPS32-NEXT: sw $16, 16($sp) # 4-byte Folded Spill ; MIPS32-NEXT: move $16, $4 ; MIPS32-NEXT: lhu $4, 0($5) -; MIPS32-NEXT: jal __gnu_h2f_ieee +; MIPS32-NEXT: jal __extendhfsf2 ; MIPS32-NEXT: nop ; MIPS32-NEXT: lhu $4, 0($16) -; MIPS32-NEXT: jal __gnu_h2f_ieee +; MIPS32-NEXT: jal __extendhfsf2 ; MIPS32-NEXT: mov.s $f20, $f0 -; MIPS32-NEXT: jal __gnu_f2h_ieee +; MIPS32-NEXT: jal __truncsfhf2 ; MIPS32-NEXT: add.s $f12, $f0, $f20 ; MIPS32-NEXT: sh $2, 0($16) ; MIPS32-NEXT: lw $16, 16($sp) # 4-byte Folded Reload @@ -33,12 +33,12 @@ define void @test_fadd(ptr %p, ptr %q) nounwind { ; MIPS64-NEXT: sd $16, 8($sp) # 8-byte Folded Spill ; MIPS64-NEXT: move $16, $4 ; MIPS64-NEXT: lhu $4, 0($5) -; MIPS64-NEXT: jal __gnu_h2f_ieee +; MIPS64-NEXT: jal __extendhfsf2 ; MIPS64-NEXT: nop ; MIPS64-NEXT: lhu $4, 0($16) -; MIPS64-NEXT: jal __gnu_h2f_ieee +; MIPS64-NEXT: jal __extendhfsf2 ; MIPS64-NEXT: mov.s $f24, $f0 -; MIPS64-NEXT: jal __gnu_f2h_ieee +; MIPS64-NEXT: jal __truncsfhf2 ; MIPS64-NEXT: add.s $f12, $f0, $f24 ; MIPS64-NEXT: sh $2, 0($16) ; MIPS64-NEXT: ld $16, 8($sp) # 8-byte Folded Reload @@ -59,7 +59,7 @@ define float @test_fpext_float(ptr %p) nounwind { ; MIPS32-NEXT: addiu $sp, $sp, -24 ; MIPS32-NEXT: sw $ra, 20($sp) # 4-byte Folded Spill ; MIPS32-NEXT: lhu $4, 0($4) -; MIPS32-NEXT: jal __gnu_h2f_ieee +; MIPS32-NEXT: jal __extendhfsf2 ; MIPS32-NEXT: nop ; MIPS32-NEXT: lw $ra, 20($sp) # 4-byte Folded Reload ; MIPS32-NEXT: jr $ra @@ -70,7 +70,7 @@ define float @test_fpext_float(ptr %p) nounwind { ; MIPS64-NEXT: daddiu $sp, $sp, -16 ; MIPS64-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; MIPS64-NEXT: lhu $4, 0($4) -; MIPS64-NEXT: jal __gnu_h2f_ieee +; MIPS64-NEXT: jal __extendhfsf2 ; MIPS64-NEXT: nop ; MIPS64-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; MIPS64-NEXT: jr $ra @@ -86,7 +86,7 @@ define double @test_fpext_double(ptr %p) nounwind { ; MIPS32-NEXT: addiu $sp, $sp, -24 ; MIPS32-NEXT: sw $ra, 20($sp) # 4-byte Folded Spill ; MIPS32-NEXT: lhu $4, 0($4) -; MIPS32-NEXT: jal __gnu_h2f_ieee +; MIPS32-NEXT: jal __extendhfsf2 ; MIPS32-NEXT: nop ; MIPS32-NEXT: cvt.d.s $f0, $f0 ; MIPS32-NEXT: lw $ra, 20($sp) # 4-byte Folded Reload @@ -98,7 +98,7 @@ define double @test_fpext_double(ptr %p) nounwind { ; MIPS64-NEXT: daddiu $sp, $sp, -16 ; MIPS64-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; MIPS64-NEXT: lhu $4, 0($4) -; MIPS64-NEXT: jal __gnu_h2f_ieee +; MIPS64-NEXT: jal __extendhfsf2 ; MIPS64-NEXT: nop ; MIPS64-NEXT: cvt.d.s $f0, $f0 ; MIPS64-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload @@ -115,7 +115,7 @@ define void @test_fptrunc_float(float %f, ptr %p) nounwind { ; MIPS32-NEXT: addiu $sp, $sp, -24 ; MIPS32-NEXT: sw $ra, 20($sp) # 4-byte Folded Spill ; MIPS32-NEXT: sw $16, 16($sp) # 4-byte Folded Spill -; MIPS32-NEXT: jal __gnu_f2h_ieee +; MIPS32-NEXT: jal __truncsfhf2 ; MIPS32-NEXT: move $16, $5 ; MIPS32-NEXT: sh $2, 0($16) ; MIPS32-NEXT: lw $16, 16($sp) # 4-byte Folded Reload @@ -128,7 +128,7 @@ define void @test_fptrunc_float(float %f, ptr %p) nounwind { ; MIPS64-NEXT: daddiu $sp, $sp, -16 ; MIPS64-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; MIPS64-NEXT: sd $16, 0($sp) # 8-byte Folded Spill -; MIPS64-NEXT: jal __gnu_f2h_ieee +; MIPS64-NEXT: jal __truncsfhf2 ; MIPS64-NEXT: move $16, $5 ; MIPS64-NEXT: sh $2, 0($16) ; MIPS64-NEXT: ld $16, 0($sp) # 8-byte Folded Reload @@ -180,18 +180,18 @@ define <4 x float> @test_vec_fpext_float(ptr %p) nounwind { ; MIPS32-NEXT: sw $16, 20($sp) # 4-byte Folded Spill ; MIPS32-NEXT: move $17, $4 ; MIPS32-NEXT: lhu $4, 6($5) -; MIPS32-NEXT: jal __gnu_h2f_ieee +; MIPS32-NEXT: jal __extendhfsf2 ; MIPS32-NEXT: move $16, $5 ; MIPS32-NEXT: lhu $4, 4($16) -; MIPS32-NEXT: jal __gnu_h2f_ieee +; MIPS32-NEXT: jal __extendhfsf2 ; MIPS32-NEXT: swc1 $f0, 12($17) ; MIPS32-NEXT: swc1 $f0, 8($17) ; MIPS32-NEXT: lhu $4, 2($16) -; MIPS32-NEXT: jal __gnu_h2f_ieee +; MIPS32-NEXT: jal __extendhfsf2 ; MIPS32-NEXT: nop ; MIPS32-NEXT: swc1 $f0, 4($17) ; MIPS32-NEXT: lhu $4, 0($16) -; MIPS32-NEXT: jal __gnu_h2f_ieee +; MIPS32-NEXT: jal __extendhfsf2 ; MIPS32-NEXT: nop ; MIPS32-NEXT: swc1 $f0, 0($17) ; MIPS32-NEXT: lw $16, 20($sp) # 4-byte Folded Reload @@ -209,21 +209,21 @@ define <4 x float> @test_vec_fpext_float(ptr %p) nounwind { ; MIPS64-NEXT: sd $16, 0($sp) # 8-byte Folded Spill ; MIPS64-NEXT: move $16, $4 ; MIPS64-NEXT: lhu $4, 2($4) -; MIPS64-NEXT: jal __gnu_h2f_ieee +; MIPS64-NEXT: jal __extendhfsf2 ; MIPS64-NEXT: nop ; MIPS64-NEXT: lhu $4, 6($16) -; MIPS64-NEXT: jal __gnu_h2f_ieee +; MIPS64-NEXT: jal __extendhfsf2 ; MIPS64-NEXT: mfc1 $17, $f0 ; MIPS64-NEXT: mfc1 $18, $f0 ; MIPS64-NEXT: lhu $4, 0($16) -; MIPS64-NEXT: jal __gnu_h2f_ieee +; MIPS64-NEXT: jal __extendhfsf2 ; MIPS64-NEXT: dsll $17, $17, 32 ; MIPS64-NEXT: mfc1 $1, $f0 ; MIPS64-NEXT: dsll $1, $1, 32 ; MIPS64-NEXT: dsrl $1, $1, 32 ; MIPS64-NEXT: or $17, $1, $17 ; MIPS64-NEXT: lhu $4, 4($16) -; MIPS64-NEXT: jal __gnu_h2f_ieee +; MIPS64-NEXT: jal __extendhfsf2 ; MIPS64-NEXT: dsll $18, $18, 32 ; MIPS64-NEXT: mfc1 $1, $f0 ; MIPS64-NEXT: dsll $1, $1, 32 @@ -251,21 +251,21 @@ define <4 x double> @test_vec_fpext_double(ptr %p) nounwind { ; MIPS32-NEXT: sw $16, 20($sp) # 4-byte Folded Spill ; MIPS32-NEXT: move $17, $4 ; MIPS32-NEXT: lhu $4, 6($5) -; MIPS32-NEXT: jal __gnu_h2f_ieee +; MIPS32-NEXT: jal __extendhfsf2 ; MIPS32-NEXT: move $16, $5 ; MIPS32-NEXT: lhu $4, 4($16) -; MIPS32-NEXT: jal __gnu_h2f_ieee +; MIPS32-NEXT: jal __extendhfsf2 ; MIPS32-NEXT: mov.s $f20, $f0 ; MIPS32-NEXT: lhu $4, 2($16) ; MIPS32-NEXT: cvt.d.s $f0, $f0 ; MIPS32-NEXT: cvt.d.s $f2, $f20 ; MIPS32-NEXT: sdc1 $f2, 24($17) -; MIPS32-NEXT: jal __gnu_h2f_ieee +; MIPS32-NEXT: jal __extendhfsf2 ; MIPS32-NEXT: sdc1 $f0, 16($17) ; MIPS32-NEXT: cvt.d.s $f0, $f0 ; MIPS32-NEXT: sdc1 $f0, 8($17) ; MIPS32-NEXT: lhu $4, 0($16) -; MIPS32-NEXT: jal __gnu_h2f_ieee +; MIPS32-NEXT: jal __extendhfsf2 ; MIPS32-NEXT: nop ; MIPS32-NEXT: cvt.d.s $f0, $f0 ; MIPS32-NEXT: sdc1 $f0, 0($17) @@ -285,21 +285,21 @@ define <4 x double> @test_vec_fpext_double(ptr %p) nounwind { ; MIPS64-NEXT: sd $16, 0($sp) # 8-byte Folded Spill ; MIPS64-NEXT: move $17, $4 ; MIPS64-NEXT: lhu $4, 6($5) -; MIPS64-NEXT: jal __gnu_h2f_ieee +; MIPS64-NEXT: jal __extendhfsf2 ; MIPS64-NEXT: move $16, $5 ; MIPS64-NEXT: lhu $4, 4($16) -; MIPS64-NEXT: jal __gnu_h2f_ieee +; MIPS64-NEXT: jal __extendhfsf2 ; MIPS64-NEXT: mov.s $f24, $f0 ; MIPS64-NEXT: lhu $4, 2($16) ; MIPS64-NEXT: cvt.d.s $f0, $f0 ; MIPS64-NEXT: cvt.d.s $f1, $f24 ; MIPS64-NEXT: sdc1 $f1, 24($17) -; MIPS64-NEXT: jal __gnu_h2f_ieee +; MIPS64-NEXT: jal __extendhfsf2 ; MIPS64-NEXT: sdc1 $f0, 16($17) ; MIPS64-NEXT: cvt.d.s $f0, $f0 ; MIPS64-NEXT: sdc1 $f0, 8($17) ; MIPS64-NEXT: lhu $4, 0($16) -; MIPS64-NEXT: jal __gnu_h2f_ieee +; MIPS64-NEXT: jal __extendhfsf2 ; MIPS64-NEXT: nop ; MIPS64-NEXT: cvt.d.s $f0, $f0 ; MIPS64-NEXT: sdc1 $f0, 0($17) @@ -326,18 +326,18 @@ define void @test_vec_fptrunc_float(<4 x float> %a, ptr %p) nounwind { ; MIPS32-NEXT: move $16, $7 ; MIPS32-NEXT: move $17, $5 ; MIPS32-NEXT: move $18, $4 -; MIPS32-NEXT: jal __gnu_f2h_ieee +; MIPS32-NEXT: jal __truncsfhf2 ; MIPS32-NEXT: mtc1 $6, $f12 ; MIPS32-NEXT: move $19, $2 -; MIPS32-NEXT: jal __gnu_f2h_ieee +; MIPS32-NEXT: jal __truncsfhf2 ; MIPS32-NEXT: mtc1 $16, $f12 ; MIPS32-NEXT: mtc1 $17, $f12 ; MIPS32-NEXT: lw $16, 56($sp) ; MIPS32-NEXT: sh $2, 6($16) -; MIPS32-NEXT: jal __gnu_f2h_ieee +; MIPS32-NEXT: jal __truncsfhf2 ; MIPS32-NEXT: sh $19, 4($16) ; MIPS32-NEXT: sh $2, 2($16) -; MIPS32-NEXT: jal __gnu_f2h_ieee +; MIPS32-NEXT: jal __truncsfhf2 ; MIPS32-NEXT: mtc1 $18, $f12 ; MIPS32-NEXT: sh $2, 0($16) ; MIPS32-NEXT: lw $16, 20($sp) # 4-byte Folded Reload @@ -360,22 +360,22 @@ define void @test_vec_fptrunc_float(<4 x float> %a, ptr %p) nounwind { ; MIPS64-NEXT: move $17, $5 ; MIPS64-NEXT: move $18, $4 ; MIPS64-NEXT: sll $1, $18, 0 -; MIPS64-NEXT: jal __gnu_f2h_ieee +; MIPS64-NEXT: jal __truncsfhf2 ; MIPS64-NEXT: mtc1 $1, $f12 ; MIPS64-NEXT: move $19, $2 ; MIPS64-NEXT: sll $1, $17, 0 -; MIPS64-NEXT: jal __gnu_f2h_ieee +; MIPS64-NEXT: jal __truncsfhf2 ; MIPS64-NEXT: mtc1 $1, $f12 ; MIPS64-NEXT: dsrl $1, $17, 32 ; MIPS64-NEXT: sll $1, $1, 0 ; MIPS64-NEXT: mtc1 $1, $f12 ; MIPS64-NEXT: sh $2, 4($16) -; MIPS64-NEXT: jal __gnu_f2h_ieee +; MIPS64-NEXT: jal __truncsfhf2 ; MIPS64-NEXT: sh $19, 0($16) ; MIPS64-NEXT: sh $2, 6($16) ; MIPS64-NEXT: dsrl $1, $18, 32 ; MIPS64-NEXT: sll $1, $1, 0 -; MIPS64-NEXT: jal __gnu_f2h_ieee +; MIPS64-NEXT: jal __truncsfhf2 ; MIPS64-NEXT: mtc1 $1, $f12 ; MIPS64-NEXT: sh $2, 2($16) ; MIPS64-NEXT: ld $16, 8($sp) # 8-byte Folded Reload @@ -484,19 +484,19 @@ define half @test_fadd_fadd(half %a, half %b, half %c) nounwind { ; MIPS32-NEXT: sw $16, 20($sp) # 4-byte Folded Spill ; MIPS32-NEXT: move $16, $6 ; MIPS32-NEXT: move $17, $4 -; MIPS32-NEXT: jal __gnu_h2f_ieee +; MIPS32-NEXT: jal __extendhfsf2 ; MIPS32-NEXT: move $4, $5 ; MIPS32-NEXT: mov.s $f20, $f0 -; MIPS32-NEXT: jal __gnu_h2f_ieee +; MIPS32-NEXT: jal __extendhfsf2 ; MIPS32-NEXT: move $4, $17 -; MIPS32-NEXT: jal __gnu_f2h_ieee +; MIPS32-NEXT: jal __truncsfhf2 ; MIPS32-NEXT: add.s $f12, $f0, $f20 -; MIPS32-NEXT: jal __gnu_h2f_ieee +; MIPS32-NEXT: jal __extendhfsf2 ; MIPS32-NEXT: move $4, $2 ; MIPS32-NEXT: mov.s $f20, $f0 -; MIPS32-NEXT: jal __gnu_h2f_ieee +; MIPS32-NEXT: jal __extendhfsf2 ; MIPS32-NEXT: move $4, $16 -; MIPS32-NEXT: jal __gnu_f2h_ieee +; MIPS32-NEXT: jal __truncsfhf2 ; MIPS32-NEXT: add.s $f12, $f20, $f0 ; MIPS32-NEXT: lw $16, 20($sp) # 4-byte Folded Reload ; MIPS32-NEXT: lw $17, 24($sp) # 4-byte Folded Reload @@ -514,19 +514,19 @@ define half @test_fadd_fadd(half %a, half %b, half %c) nounwind { ; MIPS64-NEXT: sd $16, 0($sp) # 8-byte Folded Spill ; MIPS64-NEXT: move $16, $6 ; MIPS64-NEXT: move $17, $4 -; MIPS64-NEXT: jal __gnu_h2f_ieee +; MIPS64-NEXT: jal __extendhfsf2 ; MIPS64-NEXT: sll $4, $5, 0 ; MIPS64-NEXT: mov.s $f24, $f0 -; MIPS64-NEXT: jal __gnu_h2f_ieee +; MIPS64-NEXT: jal __extendhfsf2 ; MIPS64-NEXT: sll $4, $17, 0 -; MIPS64-NEXT: jal __gnu_f2h_ieee +; MIPS64-NEXT: jal __truncsfhf2 ; MIPS64-NEXT: add.s $f12, $f0, $f24 -; MIPS64-NEXT: jal __gnu_h2f_ieee +; MIPS64-NEXT: jal __extendhfsf2 ; MIPS64-NEXT: sll $4, $2, 0 ; MIPS64-NEXT: mov.s $f24, $f0 -; MIPS64-NEXT: jal __gnu_h2f_ieee +; MIPS64-NEXT: jal __extendhfsf2 ; MIPS64-NEXT: sll $4, $16, 0 -; MIPS64-NEXT: jal __gnu_f2h_ieee +; MIPS64-NEXT: jal __truncsfhf2 ; MIPS64-NEXT: add.s $f12, $f24, $f0 ; MIPS64-NEXT: ld $16, 0($sp) # 8-byte Folded Reload ; MIPS64-NEXT: ld $17, 8($sp) # 8-byte Folded Reload diff --git a/llvm/test/CodeGen/Mips/ldexp.ll b/llvm/test/CodeGen/Mips/ldexp.ll index 3753fd567a3ed..4debc6ddce4aa 100644 --- a/llvm/test/CodeGen/Mips/ldexp.ll +++ b/llvm/test/CodeGen/Mips/ldexp.ll @@ -128,12 +128,12 @@ define half @ldexp_f16(half %arg0, i32 %arg1) { ; SOFT-NEXT: .cfi_offset 31, -4 ; SOFT-NEXT: .cfi_offset 16, -8 ; SOFT-NEXT: move $16, $5 -; SOFT-NEXT: jal __gnu_h2f_ieee +; SOFT-NEXT: jal __extendhfsf2 ; SOFT-NEXT: andi $4, $4, 65535 ; SOFT-NEXT: move $4, $2 ; SOFT-NEXT: jal ldexpf ; SOFT-NEXT: move $5, $16 -; SOFT-NEXT: jal __gnu_f2h_ieee +; SOFT-NEXT: jal __truncsfhf2 ; SOFT-NEXT: move $4, $2 ; SOFT-NEXT: lw $16, 16($sp) # 4-byte Folded Reload ; SOFT-NEXT: lw $ra, 20($sp) # 4-byte Folded Reload diff --git a/llvm/test/CodeGen/PowerPC/atomics.ll b/llvm/test/CodeGen/PowerPC/atomics.ll index 07bdbb25a746a..24e71c87414e8 100644 --- a/llvm/test/CodeGen/PowerPC/atomics.ll +++ b/llvm/test/CodeGen/PowerPC/atomics.ll @@ -476,7 +476,7 @@ define half @load_atomic_f16__seq_cst(ptr %ptr) { ; PPC32-NEXT: cmpw cr7, r3, r3 ; PPC32-NEXT: bne- cr7, .+4 ; PPC32-NEXT: isync -; PPC32-NEXT: bl __gnu_h2f_ieee +; PPC32-NEXT: bl __extendhfsf2 ; PPC32-NEXT: lwz r0, 20(r1) ; PPC32-NEXT: addi r1, r1, 16 ; PPC32-NEXT: mtlr r0 @@ -494,7 +494,7 @@ define half @load_atomic_f16__seq_cst(ptr %ptr) { ; PPC64-NEXT: cmpd cr7, r3, r3 ; PPC64-NEXT: bne- cr7, .+4 ; PPC64-NEXT: isync -; PPC64-NEXT: bl __gnu_h2f_ieee +; PPC64-NEXT: bl __extendhfsf2 ; PPC64-NEXT: nop ; PPC64-NEXT: addi r1, r1, 112 ; PPC64-NEXT: ld r0, 16(r1) @@ -582,7 +582,7 @@ define void @store_atomic_f16__seq_cst(ptr %ptr, half %val1) { ; PPC32-NEXT: .cfi_offset r30, -8 ; PPC32-NEXT: stw r30, 8(r1) # 4-byte Folded Spill ; PPC32-NEXT: mr r30, r3 -; PPC32-NEXT: bl __gnu_f2h_ieee +; PPC32-NEXT: bl __truncsfhf2 ; PPC32-NEXT: sync ; PPC32-NEXT: sth r3, 0(r30) ; PPC32-NEXT: lwz r30, 8(r1) # 4-byte Folded Reload @@ -601,7 +601,7 @@ define void @store_atomic_f16__seq_cst(ptr %ptr, half %val1) { ; PPC64-NEXT: .cfi_offset r30, -16 ; PPC64-NEXT: std r30, 112(r1) # 8-byte Folded Spill ; PPC64-NEXT: mr r30, r3 -; PPC64-NEXT: bl __gnu_f2h_ieee +; PPC64-NEXT: bl __truncsfhf2 ; PPC64-NEXT: nop ; PPC64-NEXT: sync ; PPC64-NEXT: sth r3, 0(r30) diff --git a/llvm/test/CodeGen/PowerPC/handle-f16-storage-type.ll b/llvm/test/CodeGen/PowerPC/handle-f16-storage-type.ll index 4256933300243..50f05cca80458 100644 --- a/llvm/test/CodeGen/PowerPC/handle-f16-storage-type.ll +++ b/llvm/test/CodeGen/PowerPC/handle-f16-storage-type.ll @@ -17,7 +17,7 @@ define dso_local double @loadd(ptr nocapture readonly %a) local_unnamed_addr #0 ; P8-NEXT: stdu r1, -32(r1) ; P8-NEXT: std r0, 48(r1) ; P8-NEXT: lhz r3, 2(r3) -; P8-NEXT: bl __gnu_h2f_ieee +; P8-NEXT: bl __extendhfsf2 ; P8-NEXT: nop ; P8-NEXT: addi r1, r1, 32 ; P8-NEXT: ld r0, 16(r1) @@ -37,7 +37,7 @@ define dso_local double @loadd(ptr nocapture readonly %a) local_unnamed_addr #0 ; SOFT-NEXT: stdu r1, -32(r1) ; SOFT-NEXT: std r0, 48(r1) ; SOFT-NEXT: lhz r3, 2(r3) -; SOFT-NEXT: bl __gnu_h2f_ieee +; SOFT-NEXT: bl __extendhfsf2 ; SOFT-NEXT: nop ; SOFT-NEXT: bl __extendsfdf2 ; SOFT-NEXT: nop @@ -61,7 +61,7 @@ define dso_local float @loadf(ptr nocapture readonly %a) local_unnamed_addr #0 { ; P8-NEXT: stdu r1, -32(r1) ; P8-NEXT: std r0, 48(r1) ; P8-NEXT: lhz r3, 2(r3) -; P8-NEXT: bl __gnu_h2f_ieee +; P8-NEXT: bl __extendhfsf2 ; P8-NEXT: nop ; P8-NEXT: addi r1, r1, 32 ; P8-NEXT: ld r0, 16(r1) @@ -81,7 +81,7 @@ define dso_local float @loadf(ptr nocapture readonly %a) local_unnamed_addr #0 { ; SOFT-NEXT: stdu r1, -32(r1) ; SOFT-NEXT: std r0, 48(r1) ; SOFT-NEXT: lhz r3, 2(r3) -; SOFT-NEXT: bl __gnu_h2f_ieee +; SOFT-NEXT: bl __extendhfsf2 ; SOFT-NEXT: nop ; SOFT-NEXT: addi r1, r1, 32 ; SOFT-NEXT: ld r0, 16(r1) @@ -130,9 +130,9 @@ define dso_local void @stored(ptr nocapture %a, double %b) local_unnamed_addr #0 ; SOFT-NEXT: bl __truncdfhf2 ; SOFT-NEXT: nop ; SOFT-NEXT: clrldi r3, r3, 48 -; SOFT-NEXT: bl __gnu_h2f_ieee +; SOFT-NEXT: bl __extendhfsf2 ; SOFT-NEXT: nop -; SOFT-NEXT: bl __gnu_f2h_ieee +; SOFT-NEXT: bl __truncsfhf2 ; SOFT-NEXT: nop ; SOFT-NEXT: sth r3, 0(r30) ; SOFT-NEXT: addi r1, r1, 48 @@ -156,7 +156,7 @@ define dso_local void @storef(ptr nocapture %a, float %b) local_unnamed_addr #0 ; P8-NEXT: stdu r1, -48(r1) ; P8-NEXT: std r0, 64(r1) ; P8-NEXT: mr r30, r3 -; P8-NEXT: bl __gnu_f2h_ieee +; P8-NEXT: bl __truncsfhf2 ; P8-NEXT: nop ; P8-NEXT: sth r3, 0(r30) ; P8-NEXT: addi r1, r1, 48 @@ -179,12 +179,12 @@ define dso_local void @storef(ptr nocapture %a, float %b) local_unnamed_addr #0 ; SOFT-NEXT: mr r30, r3 ; SOFT-NEXT: clrldi r3, r4, 32 ; SOFT-NEXT: std r0, 64(r1) -; SOFT-NEXT: bl __gnu_f2h_ieee +; SOFT-NEXT: bl __truncsfhf2 ; SOFT-NEXT: nop ; SOFT-NEXT: clrldi r3, r3, 48 -; SOFT-NEXT: bl __gnu_h2f_ieee +; SOFT-NEXT: bl __extendhfsf2 ; SOFT-NEXT: nop -; SOFT-NEXT: bl __gnu_f2h_ieee +; SOFT-NEXT: bl __truncsfhf2 ; SOFT-NEXT: nop ; SOFT-NEXT: sth r3, 0(r30) ; SOFT-NEXT: addi r1, r1, 48 @@ -220,9 +220,9 @@ define void @test_load_store(ptr %in, ptr %out) #0 { ; SOFT-NEXT: std r0, 64(r1) ; SOFT-NEXT: mr r30, r4 ; SOFT-NEXT: lhz r3, 0(r3) -; SOFT-NEXT: bl __gnu_h2f_ieee +; SOFT-NEXT: bl __extendhfsf2 ; SOFT-NEXT: nop -; SOFT-NEXT: bl __gnu_f2h_ieee +; SOFT-NEXT: bl __truncsfhf2 ; SOFT-NEXT: nop ; SOFT-NEXT: sth r3, 0(r30) ; SOFT-NEXT: addi r1, r1, 48 @@ -279,7 +279,7 @@ define float @test_extend32(ptr %addr) #0 { ; P8-NEXT: stdu r1, -32(r1) ; P8-NEXT: std r0, 48(r1) ; P8-NEXT: lhz r3, 0(r3) -; P8-NEXT: bl __gnu_h2f_ieee +; P8-NEXT: bl __extendhfsf2 ; P8-NEXT: nop ; P8-NEXT: addi r1, r1, 32 ; P8-NEXT: ld r0, 16(r1) @@ -298,7 +298,7 @@ define float @test_extend32(ptr %addr) #0 { ; SOFT-NEXT: stdu r1, -32(r1) ; SOFT-NEXT: std r0, 48(r1) ; SOFT-NEXT: lhz r3, 0(r3) -; SOFT-NEXT: bl __gnu_h2f_ieee +; SOFT-NEXT: bl __extendhfsf2 ; SOFT-NEXT: nop ; SOFT-NEXT: addi r1, r1, 32 ; SOFT-NEXT: ld r0, 16(r1) @@ -315,7 +315,7 @@ define double @test_extend64(ptr %addr) #0 { ; P8-NEXT: stdu r1, -32(r1) ; P8-NEXT: std r0, 48(r1) ; P8-NEXT: lhz r3, 0(r3) -; P8-NEXT: bl __gnu_h2f_ieee +; P8-NEXT: bl __extendhfsf2 ; P8-NEXT: nop ; P8-NEXT: addi r1, r1, 32 ; P8-NEXT: ld r0, 16(r1) @@ -334,7 +334,7 @@ define double @test_extend64(ptr %addr) #0 { ; SOFT-NEXT: stdu r1, -32(r1) ; SOFT-NEXT: std r0, 48(r1) ; SOFT-NEXT: lhz r3, 0(r3) -; SOFT-NEXT: bl __gnu_h2f_ieee +; SOFT-NEXT: bl __extendhfsf2 ; SOFT-NEXT: nop ; SOFT-NEXT: bl __extendsfdf2 ; SOFT-NEXT: nop @@ -354,7 +354,7 @@ define void @test_trunc32(float %in, ptr %addr) #0 { ; P8-NEXT: stdu r1, -48(r1) ; P8-NEXT: std r0, 64(r1) ; P8-NEXT: mr r30, r4 -; P8-NEXT: bl __gnu_f2h_ieee +; P8-NEXT: bl __truncsfhf2 ; P8-NEXT: nop ; P8-NEXT: sth r3, 0(r30) ; P8-NEXT: addi r1, r1, 48 @@ -377,12 +377,12 @@ define void @test_trunc32(float %in, ptr %addr) #0 { ; SOFT-NEXT: clrldi r3, r3, 32 ; SOFT-NEXT: std r0, 64(r1) ; SOFT-NEXT: mr r30, r4 -; SOFT-NEXT: bl __gnu_f2h_ieee +; SOFT-NEXT: bl __truncsfhf2 ; SOFT-NEXT: nop ; SOFT-NEXT: clrldi r3, r3, 48 -; SOFT-NEXT: bl __gnu_h2f_ieee +; SOFT-NEXT: bl __extendhfsf2 ; SOFT-NEXT: nop -; SOFT-NEXT: bl __gnu_f2h_ieee +; SOFT-NEXT: bl __truncsfhf2 ; SOFT-NEXT: nop ; SOFT-NEXT: sth r3, 0(r30) ; SOFT-NEXT: addi r1, r1, 48 @@ -427,9 +427,9 @@ define void @test_trunc64(double %in, ptr %addr) #0 { ; SOFT-NEXT: bl __truncdfhf2 ; SOFT-NEXT: nop ; SOFT-NEXT: clrldi r3, r3, 48 -; SOFT-NEXT: bl __gnu_h2f_ieee +; SOFT-NEXT: bl __extendhfsf2 ; SOFT-NEXT: nop -; SOFT-NEXT: bl __gnu_f2h_ieee +; SOFT-NEXT: bl __truncsfhf2 ; SOFT-NEXT: nop ; SOFT-NEXT: sth r3, 0(r30) ; SOFT-NEXT: addi r1, r1, 48 @@ -448,7 +448,7 @@ define i64 @test_fptosi_i64(ptr %p) #0 { ; P8-NEXT: stdu r1, -32(r1) ; P8-NEXT: std r0, 48(r1) ; P8-NEXT: lhz r3, 0(r3) -; P8-NEXT: bl __gnu_h2f_ieee +; P8-NEXT: bl __extendhfsf2 ; P8-NEXT: nop ; P8-NEXT: xscvdpsxds f0, f1 ; P8-NEXT: mffprd r3, f0 @@ -472,7 +472,7 @@ define i64 @test_fptosi_i64(ptr %p) #0 { ; SOFT-NEXT: stdu r1, -32(r1) ; SOFT-NEXT: std r0, 48(r1) ; SOFT-NEXT: lhz r3, 0(r3) -; SOFT-NEXT: bl __gnu_h2f_ieee +; SOFT-NEXT: bl __extendhfsf2 ; SOFT-NEXT: nop ; SOFT-NEXT: bl __fixsfdi ; SOFT-NEXT: nop @@ -494,7 +494,7 @@ define void @test_sitofp_i64(i64 %a, ptr %p) #0 { ; P8-NEXT: std r0, 64(r1) ; P8-NEXT: mr r30, r4 ; P8-NEXT: xscvsxdsp f1, f0 -; P8-NEXT: bl __gnu_f2h_ieee +; P8-NEXT: bl __truncsfhf2 ; P8-NEXT: nop ; P8-NEXT: sth r3, 0(r30) ; P8-NEXT: addi r1, r1, 48 @@ -522,12 +522,12 @@ define void @test_sitofp_i64(i64 %a, ptr %p) #0 { ; SOFT-NEXT: bl __floatdisf ; SOFT-NEXT: nop ; SOFT-NEXT: clrldi r3, r3, 32 -; SOFT-NEXT: bl __gnu_f2h_ieee +; SOFT-NEXT: bl __truncsfhf2 ; SOFT-NEXT: nop ; SOFT-NEXT: clrldi r3, r3, 48 -; SOFT-NEXT: bl __gnu_h2f_ieee +; SOFT-NEXT: bl __extendhfsf2 ; SOFT-NEXT: nop -; SOFT-NEXT: bl __gnu_f2h_ieee +; SOFT-NEXT: bl __truncsfhf2 ; SOFT-NEXT: nop ; SOFT-NEXT: sth r3, 0(r30) ; SOFT-NEXT: addi r1, r1, 48 @@ -546,7 +546,7 @@ define i64 @test_fptoui_i64(ptr %p) #0 { ; P8-NEXT: stdu r1, -32(r1) ; P8-NEXT: std r0, 48(r1) ; P8-NEXT: lhz r3, 0(r3) -; P8-NEXT: bl __gnu_h2f_ieee +; P8-NEXT: bl __extendhfsf2 ; P8-NEXT: nop ; P8-NEXT: xscvdpuxds f0, f1 ; P8-NEXT: mffprd r3, f0 @@ -570,7 +570,7 @@ define i64 @test_fptoui_i64(ptr %p) #0 { ; SOFT-NEXT: stdu r1, -32(r1) ; SOFT-NEXT: std r0, 48(r1) ; SOFT-NEXT: lhz r3, 0(r3) -; SOFT-NEXT: bl __gnu_h2f_ieee +; SOFT-NEXT: bl __extendhfsf2 ; SOFT-NEXT: nop ; SOFT-NEXT: bl __fixunssfdi ; SOFT-NEXT: nop @@ -592,7 +592,7 @@ define void @test_uitofp_i64(i64 %a, ptr %p) #0 { ; P8-NEXT: std r0, 64(r1) ; P8-NEXT: mr r30, r4 ; P8-NEXT: xscvuxdsp f1, f0 -; P8-NEXT: bl __gnu_f2h_ieee +; P8-NEXT: bl __truncsfhf2 ; P8-NEXT: nop ; P8-NEXT: sth r3, 0(r30) ; P8-NEXT: addi r1, r1, 48 @@ -619,12 +619,12 @@ define void @test_uitofp_i64(i64 %a, ptr %p) #0 { ; SOFT-NEXT: mr r30, r4 ; SOFT-NEXT: bl __floatundisf ; SOFT-NEXT: nop -; SOFT-NEXT: bl __gnu_f2h_ieee +; SOFT-NEXT: bl __truncsfhf2 ; SOFT-NEXT: nop ; SOFT-NEXT: clrldi r3, r3, 48 -; SOFT-NEXT: bl __gnu_h2f_ieee +; SOFT-NEXT: bl __extendhfsf2 ; SOFT-NEXT: nop -; SOFT-NEXT: bl __gnu_f2h_ieee +; SOFT-NEXT: bl __truncsfhf2 ; SOFT-NEXT: nop ; SOFT-NEXT: sth r3, 0(r30) ; SOFT-NEXT: addi r1, r1, 48 @@ -651,19 +651,19 @@ define <4 x float> @test_extend32_vec4(ptr %p) #0 { ; P8-NEXT: stxvd2x vs62, r1, r4 # 16-byte Folded Spill ; P8-NEXT: li r4, 80 ; P8-NEXT: stxvd2x vs63, r1, r4 # 16-byte Folded Spill -; P8-NEXT: bl __gnu_h2f_ieee +; P8-NEXT: bl __extendhfsf2 ; P8-NEXT: nop ; P8-NEXT: lhz r3, 2(r30) ; P8-NEXT: xxlor vs63, f1, f1 -; P8-NEXT: bl __gnu_h2f_ieee +; P8-NEXT: bl __extendhfsf2 ; P8-NEXT: nop ; P8-NEXT: lhz r3, 4(r30) ; P8-NEXT: xxlor vs62, f1, f1 -; P8-NEXT: bl __gnu_h2f_ieee +; P8-NEXT: bl __extendhfsf2 ; P8-NEXT: nop ; P8-NEXT: lhz r3, 0(r30) ; P8-NEXT: xxlor vs61, f1, f1 -; P8-NEXT: bl __gnu_h2f_ieee +; P8-NEXT: bl __extendhfsf2 ; P8-NEXT: nop ; P8-NEXT: li r3, 80 ; P8-NEXT: xxmrghd vs0, vs61, vs1 @@ -714,19 +714,19 @@ define <4 x float> @test_extend32_vec4(ptr %p) #0 { ; SOFT-NEXT: std r0, 96(r1) ; SOFT-NEXT: mr r30, r3 ; SOFT-NEXT: lhz r3, 0(r3) -; SOFT-NEXT: bl __gnu_h2f_ieee +; SOFT-NEXT: bl __extendhfsf2 ; SOFT-NEXT: nop ; SOFT-NEXT: mr r29, r3 ; SOFT-NEXT: lhz r3, 2(r30) -; SOFT-NEXT: bl __gnu_h2f_ieee +; SOFT-NEXT: bl __extendhfsf2 ; SOFT-NEXT: nop ; SOFT-NEXT: mr r28, r3 ; SOFT-NEXT: lhz r3, 4(r30) -; SOFT-NEXT: bl __gnu_h2f_ieee +; SOFT-NEXT: bl __extendhfsf2 ; SOFT-NEXT: nop ; SOFT-NEXT: mr r27, r3 ; SOFT-NEXT: lhz r3, 6(r30) -; SOFT-NEXT: bl __gnu_h2f_ieee +; SOFT-NEXT: bl __extendhfsf2 ; SOFT-NEXT: nop ; SOFT-NEXT: mr r6, r3 ; SOFT-NEXT: mr r3, r29 @@ -759,19 +759,19 @@ define <4 x double> @test_extend64_vec4(ptr %p) #0 { ; P8-NEXT: stxvd2x vs62, r1, r4 # 16-byte Folded Spill ; P8-NEXT: li r4, 80 ; P8-NEXT: stxvd2x vs63, r1, r4 # 16-byte Folded Spill -; P8-NEXT: bl __gnu_h2f_ieee +; P8-NEXT: bl __extendhfsf2 ; P8-NEXT: nop ; P8-NEXT: lhz r3, 4(r30) ; P8-NEXT: xxlor vs63, f1, f1 -; P8-NEXT: bl __gnu_h2f_ieee +; P8-NEXT: bl __extendhfsf2 ; P8-NEXT: nop ; P8-NEXT: lhz r3, 2(r30) ; P8-NEXT: xxlor vs62, f1, f1 -; P8-NEXT: bl __gnu_h2f_ieee +; P8-NEXT: bl __extendhfsf2 ; P8-NEXT: nop ; P8-NEXT: lhz r3, 0(r30) ; P8-NEXT: xxlor vs61, f1, f1 -; P8-NEXT: bl __gnu_h2f_ieee +; P8-NEXT: bl __extendhfsf2 ; P8-NEXT: nop ; P8-NEXT: li r3, 80 ; P8-NEXT: xxmrghd vs35, vs63, vs62 @@ -816,25 +816,25 @@ define <4 x double> @test_extend64_vec4(ptr %p) #0 { ; SOFT-NEXT: std r0, 96(r1) ; SOFT-NEXT: mr r30, r3 ; SOFT-NEXT: lhz r3, 0(r3) -; SOFT-NEXT: bl __gnu_h2f_ieee +; SOFT-NEXT: bl __extendhfsf2 ; SOFT-NEXT: nop ; SOFT-NEXT: bl __extendsfdf2 ; SOFT-NEXT: nop ; SOFT-NEXT: mr r29, r3 ; SOFT-NEXT: lhz r3, 2(r30) -; SOFT-NEXT: bl __gnu_h2f_ieee +; SOFT-NEXT: bl __extendhfsf2 ; SOFT-NEXT: nop ; SOFT-NEXT: bl __extendsfdf2 ; SOFT-NEXT: nop ; SOFT-NEXT: mr r28, r3 ; SOFT-NEXT: lhz r3, 4(r30) -; SOFT-NEXT: bl __gnu_h2f_ieee +; SOFT-NEXT: bl __extendhfsf2 ; SOFT-NEXT: nop ; SOFT-NEXT: bl __extendsfdf2 ; SOFT-NEXT: nop ; SOFT-NEXT: mr r27, r3 ; SOFT-NEXT: lhz r3, 6(r30) -; SOFT-NEXT: bl __gnu_h2f_ieee +; SOFT-NEXT: bl __extendhfsf2 ; SOFT-NEXT: nop ; SOFT-NEXT: bl __extendsfdf2 ; SOFT-NEXT: nop @@ -870,21 +870,21 @@ define void @test_trunc32_vec4(<4 x float> %a, ptr %p) #0 { ; P8-NEXT: stxvd2x vs63, r1, r3 # 16-byte Folded Spill ; P8-NEXT: mr r30, r5 ; P8-NEXT: vmr v31, v2 -; P8-NEXT: bl __gnu_f2h_ieee +; P8-NEXT: bl __truncsfhf2 ; P8-NEXT: nop ; P8-NEXT: xxswapd vs0, vs63 ; P8-NEXT: mr r29, r3 ; P8-NEXT: xscvspdpn f1, vs0 -; P8-NEXT: bl __gnu_f2h_ieee +; P8-NEXT: bl __truncsfhf2 ; P8-NEXT: nop ; P8-NEXT: xxsldwi vs0, vs63, vs63, 1 ; P8-NEXT: mr r28, r3 ; P8-NEXT: xscvspdpn f1, vs0 -; P8-NEXT: bl __gnu_f2h_ieee +; P8-NEXT: bl __truncsfhf2 ; P8-NEXT: nop ; P8-NEXT: xscvspdpn f1, vs63 ; P8-NEXT: mr r27, r3 -; P8-NEXT: bl __gnu_f2h_ieee +; P8-NEXT: bl __truncsfhf2 ; P8-NEXT: nop ; P8-NEXT: sth r3, 6(r30) ; P8-NEXT: li r3, 48 @@ -939,48 +939,48 @@ define void @test_trunc32_vec4(<4 x float> %a, ptr %p) #0 { ; SOFT-NEXT: mr r30, r7 ; SOFT-NEXT: mr r29, r5 ; SOFT-NEXT: mr r28, r4 -; SOFT-NEXT: bl __gnu_f2h_ieee +; SOFT-NEXT: bl __truncsfhf2 ; SOFT-NEXT: nop ; SOFT-NEXT: mr r26, r3 ; SOFT-NEXT: clrldi r3, r29, 32 -; SOFT-NEXT: bl __gnu_f2h_ieee +; SOFT-NEXT: bl __truncsfhf2 ; SOFT-NEXT: nop ; SOFT-NEXT: mr r29, r3 ; SOFT-NEXT: clrldi r3, r28, 32 -; SOFT-NEXT: bl __gnu_f2h_ieee +; SOFT-NEXT: bl __truncsfhf2 ; SOFT-NEXT: nop ; SOFT-NEXT: mr r28, r3 ; SOFT-NEXT: clrldi r3, r27, 32 -; SOFT-NEXT: bl __gnu_f2h_ieee +; SOFT-NEXT: bl __truncsfhf2 ; SOFT-NEXT: nop ; SOFT-NEXT: clrldi r3, r3, 48 -; SOFT-NEXT: bl __gnu_h2f_ieee +; SOFT-NEXT: bl __extendhfsf2 ; SOFT-NEXT: nop ; SOFT-NEXT: mr r27, r3 ; SOFT-NEXT: clrldi r3, r28, 48 -; SOFT-NEXT: bl __gnu_h2f_ieee +; SOFT-NEXT: bl __extendhfsf2 ; SOFT-NEXT: nop ; SOFT-NEXT: mr r28, r3 ; SOFT-NEXT: clrldi r3, r29, 48 -; SOFT-NEXT: bl __gnu_h2f_ieee +; SOFT-NEXT: bl __extendhfsf2 ; SOFT-NEXT: nop ; SOFT-NEXT: mr r29, r3 ; SOFT-NEXT: clrldi r3, r26, 48 -; SOFT-NEXT: bl __gnu_h2f_ieee +; SOFT-NEXT: bl __extendhfsf2 ; SOFT-NEXT: nop -; SOFT-NEXT: bl __gnu_f2h_ieee +; SOFT-NEXT: bl __truncsfhf2 ; SOFT-NEXT: nop ; SOFT-NEXT: sth r3, 6(r30) ; SOFT-NEXT: mr r3, r29 -; SOFT-NEXT: bl __gnu_f2h_ieee +; SOFT-NEXT: bl __truncsfhf2 ; SOFT-NEXT: nop ; SOFT-NEXT: sth r3, 4(r30) ; SOFT-NEXT: mr r3, r28 -; SOFT-NEXT: bl __gnu_f2h_ieee +; SOFT-NEXT: bl __truncsfhf2 ; SOFT-NEXT: nop ; SOFT-NEXT: sth r3, 2(r30) ; SOFT-NEXT: mr r3, r27 -; SOFT-NEXT: bl __gnu_f2h_ieee +; SOFT-NEXT: bl __truncsfhf2 ; SOFT-NEXT: nop ; SOFT-NEXT: sth r3, 0(r30) ; SOFT-NEXT: addi r1, r1, 80 @@ -1093,33 +1093,33 @@ define void @test_trunc64_vec4(<4 x double> %a, ptr %p) #0 { ; SOFT-NEXT: bl __truncdfhf2 ; SOFT-NEXT: nop ; SOFT-NEXT: clrldi r3, r3, 48 -; SOFT-NEXT: bl __gnu_h2f_ieee +; SOFT-NEXT: bl __extendhfsf2 ; SOFT-NEXT: nop ; SOFT-NEXT: mr r27, r3 ; SOFT-NEXT: clrldi r3, r28, 48 -; SOFT-NEXT: bl __gnu_h2f_ieee +; SOFT-NEXT: bl __extendhfsf2 ; SOFT-NEXT: nop ; SOFT-NEXT: mr r28, r3 ; SOFT-NEXT: clrldi r3, r29, 48 -; SOFT-NEXT: bl __gnu_h2f_ieee +; SOFT-NEXT: bl __extendhfsf2 ; SOFT-NEXT: nop ; SOFT-NEXT: mr r29, r3 ; SOFT-NEXT: clrldi r3, r26, 48 -; SOFT-NEXT: bl __gnu_h2f_ieee +; SOFT-NEXT: bl __extendhfsf2 ; SOFT-NEXT: nop -; SOFT-NEXT: bl __gnu_f2h_ieee +; SOFT-NEXT: bl __truncsfhf2 ; SOFT-NEXT: nop ; SOFT-NEXT: sth r3, 6(r30) ; SOFT-NEXT: mr r3, r29 -; SOFT-NEXT: bl __gnu_f2h_ieee +; SOFT-NEXT: bl __truncsfhf2 ; SOFT-NEXT: nop ; SOFT-NEXT: sth r3, 4(r30) ; SOFT-NEXT: mr r3, r28 -; SOFT-NEXT: bl __gnu_f2h_ieee +; SOFT-NEXT: bl __truncsfhf2 ; SOFT-NEXT: nop ; SOFT-NEXT: sth r3, 2(r30) ; SOFT-NEXT: mr r3, r27 -; SOFT-NEXT: bl __gnu_f2h_ieee +; SOFT-NEXT: bl __truncsfhf2 ; SOFT-NEXT: nop ; SOFT-NEXT: sth r3, 0(r30) ; SOFT-NEXT: addi r1, r1, 80 @@ -1145,15 +1145,15 @@ define float @test_sitofp_fadd_i32(i32 %a, ptr %b) #0 { ; P8-NEXT: std r0, 80(r1) ; P8-NEXT: mr r30, r3 ; P8-NEXT: lhz r3, 0(r4) -; P8-NEXT: bl __gnu_h2f_ieee +; P8-NEXT: bl __extendhfsf2 ; P8-NEXT: nop ; P8-NEXT: mtfprwa f0, r30 ; P8-NEXT: fmr f31, f1 ; P8-NEXT: xscvsxdsp f1, f0 -; P8-NEXT: bl __gnu_f2h_ieee +; P8-NEXT: bl __truncsfhf2 ; P8-NEXT: nop ; P8-NEXT: clrldi r3, r3, 48 -; P8-NEXT: bl __gnu_h2f_ieee +; P8-NEXT: bl __extendhfsf2 ; P8-NEXT: nop ; P8-NEXT: xsaddsp f1, f31, f1 ; P8-NEXT: addi r1, r1, 64 @@ -1187,17 +1187,17 @@ define float @test_sitofp_fadd_i32(i32 %a, ptr %b) #0 { ; SOFT-NEXT: std r0, 80(r1) ; SOFT-NEXT: mr r30, r3 ; SOFT-NEXT: lhz r3, 0(r4) -; SOFT-NEXT: bl __gnu_h2f_ieee +; SOFT-NEXT: bl __extendhfsf2 ; SOFT-NEXT: nop ; SOFT-NEXT: mr r29, r3 ; SOFT-NEXT: extsw r3, r30 ; SOFT-NEXT: bl __floatsisf ; SOFT-NEXT: nop ; SOFT-NEXT: clrldi r3, r3, 32 -; SOFT-NEXT: bl __gnu_f2h_ieee +; SOFT-NEXT: bl __truncsfhf2 ; SOFT-NEXT: nop ; SOFT-NEXT: clrldi r3, r3, 48 -; SOFT-NEXT: bl __gnu_h2f_ieee +; SOFT-NEXT: bl __extendhfsf2 ; SOFT-NEXT: nop ; SOFT-NEXT: mr r4, r3 ; SOFT-NEXT: mr r3, r29 @@ -1221,10 +1221,10 @@ define half @PR40273(half) #0 { ; P8-NEXT: mflr r0 ; P8-NEXT: stdu r1, -32(r1) ; P8-NEXT: std r0, 48(r1) -; P8-NEXT: bl __gnu_f2h_ieee +; P8-NEXT: bl __truncsfhf2 ; P8-NEXT: nop ; P8-NEXT: clrldi r3, r3, 48 -; P8-NEXT: bl __gnu_h2f_ieee +; P8-NEXT: bl __extendhfsf2 ; P8-NEXT: nop ; P8-NEXT: fmr f0, f1 ; P8-NEXT: xxlxor f1, f1, f1 @@ -1260,7 +1260,7 @@ define half @PR40273(half) #0 { ; SOFT-NEXT: stdu r1, -32(r1) ; SOFT-NEXT: clrldi r3, r3, 48 ; SOFT-NEXT: std r0, 48(r1) -; SOFT-NEXT: bl __gnu_h2f_ieee +; SOFT-NEXT: bl __extendhfsf2 ; SOFT-NEXT: nop ; SOFT-NEXT: li r4, 0 ; SOFT-NEXT: bl __nesf2 @@ -1268,7 +1268,7 @@ define half @PR40273(half) #0 { ; SOFT-NEXT: cmplwi r3, 0 ; SOFT-NEXT: lis r3, 16256 ; SOFT-NEXT: iseleq r3, 0, r3 -; SOFT-NEXT: bl __gnu_f2h_ieee +; SOFT-NEXT: bl __truncsfhf2 ; SOFT-NEXT: nop ; SOFT-NEXT: addi r1, r1, 32 ; SOFT-NEXT: ld r0, 16(r1) diff --git a/llvm/test/CodeGen/PowerPC/pr48519.ll b/llvm/test/CodeGen/PowerPC/pr48519.ll index 002dd8f0d167a..fa156454a1313 100644 --- a/llvm/test/CodeGen/PowerPC/pr48519.ll +++ b/llvm/test/CodeGen/PowerPC/pr48519.ll @@ -20,17 +20,17 @@ define void @julia__typed_vcat_20() #0 { ; CHECK-NEXT: addi r3, r3, -1 ; CHECK-NEXT: mtfprd f0, r3 ; CHECK-NEXT: xscvsxdsp f1, f0 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r3, 48 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: addi r30, r30, -1 ; CHECK-NEXT: li r3, 0 ; CHECK-NEXT: cmpldi r30, 0 ; CHECK-NEXT: bc 12, gt, .LBB0_1 ; CHECK-NEXT: # %bb.2: # %bb11 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: sth r3, 0(r3) ; @@ -95,7 +95,7 @@ define void @julia__hypot_17() #0 { ; CHECK-NEXT: # %bb.2: # %bb3 ; CHECK-NEXT: # ; CHECK-NEXT: lhz r3, 0(0) -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fcmpu cr0, f1, f1 ; CHECK-NEXT: bun cr0, .LBB1_1 @@ -169,12 +169,12 @@ define void @func_48786() #0 { ; CHECK-NEXT: # %bb.3: # %bb4 ; CHECK-NEXT: # ; CHECK-NEXT: lhz r3, 0(r3) -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: bc 4, 4*cr2+lt, .LBB2_6 ; CHECK-NEXT: # %bb.4: # %bb8 ; CHECK-NEXT: # -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: sth r3, 0(0) ; CHECK-NEXT: b .LBB2_1 @@ -273,7 +273,7 @@ define void @func_48785(half %arg) #0 { ; CHECK-NEXT: .LBB3_1: # %bb1 ; CHECK-NEXT: # ; CHECK-NEXT: fmr f1, f31 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: addi r30, r30, -1 ; CHECK-NEXT: sth r3, 0(r29) diff --git a/llvm/test/CodeGen/PowerPC/pr49092.ll b/llvm/test/CodeGen/PowerPC/pr49092.ll index ea84c77603d08..7b524a6d2f69b 100644 --- a/llvm/test/CodeGen/PowerPC/pr49092.ll +++ b/llvm/test/CodeGen/PowerPC/pr49092.ll @@ -14,7 +14,7 @@ define dso_local half @test2(i64 %a, i64 %b) local_unnamed_addr #0 { ; CHECK-NEXT: std r0, 48(r1) ; CHECK-NEXT: addi r3, r3, 11 ; CHECK-NEXT: clrlwi r3, r3, 16 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: addi r1, r1, 32 ; CHECK-NEXT: ld r0, 16(r1) diff --git a/llvm/test/CodeGen/PowerPC/vector-llrint.ll b/llvm/test/CodeGen/PowerPC/vector-llrint.ll index 190cf6fe1eaad..9229fefced67e 100644 --- a/llvm/test/CodeGen/PowerPC/vector-llrint.ll +++ b/llvm/test/CodeGen/PowerPC/vector-llrint.ll @@ -17,10 +17,10 @@ define <1 x i64> @llrint_v1i64_v1f16(<1 x half> %x) { ; BE-NEXT: std r0, 128(r1) ; BE-NEXT: .cfi_def_cfa_offset 112 ; BE-NEXT: .cfi_offset lr, 16 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r3, 48 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: bl llrintf ; BE-NEXT: nop @@ -36,10 +36,10 @@ define <1 x i64> @llrint_v1i64_v1f16(<1 x half> %x) { ; CHECK-NEXT: std r0, 48(r1) ; CHECK-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NEXT: .cfi_offset lr, 16 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r3, 48 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: bl llrintf ; CHECK-NEXT: nop @@ -55,10 +55,10 @@ define <1 x i64> @llrint_v1i64_v1f16(<1 x half> %x) { ; FAST-NEXT: std r0, 48(r1) ; FAST-NEXT: .cfi_def_cfa_offset 32 ; FAST-NEXT: .cfi_offset lr, 16 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fctid f0, f1 ; FAST-NEXT: mffprd r3, f0 @@ -85,18 +85,18 @@ define <2 x i64> @llrint_v1i64_v2f16(<2 x half> %x) { ; BE-NEXT: fmr f31, f1 ; BE-NEXT: fmr f1, f2 ; BE-NEXT: std r30, 136(r1) # 8-byte Folded Spill -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f31 ; BE-NEXT: mr r30, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r3, 48 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r30, 48 ; BE-NEXT: fmr f31, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: bl llrintf ; BE-NEXT: nop @@ -129,18 +129,18 @@ define <2 x i64> @llrint_v1i64_v2f16(<2 x half> %x) { ; CHECK-NEXT: stfd f31, 88(r1) # 8-byte Folded Spill ; CHECK-NEXT: fmr f31, f2 ; CHECK-NEXT: stvx v31, r1, r3 # 16-byte Folded Spill -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f31 ; CHECK-NEXT: mr r30, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r3, 48 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r30, 48 ; CHECK-NEXT: fmr f31, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: bl llrintf ; CHECK-NEXT: nop @@ -172,17 +172,17 @@ define <2 x i64> @llrint_v1i64_v2f16(<2 x half> %x) { ; FAST-NEXT: fmr f31, f1 ; FAST-NEXT: fmr f1, f2 ; FAST-NEXT: std r0, 64(r1) -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f30, f1 ; FAST-NEXT: fmr f1, f31 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fctid f0, f1 ; FAST-NEXT: fctid f1, f30 @@ -226,34 +226,34 @@ define <4 x i64> @llrint_v4i64_v4f16(<4 x half> %x) { ; BE-NEXT: stfd f31, 200(r1) # 8-byte Folded Spill ; BE-NEXT: fmr f31, f4 ; BE-NEXT: fmr f30, f3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f29 ; BE-NEXT: mr r30, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f31 ; BE-NEXT: mr r29, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f30 ; BE-NEXT: mr r28, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r3, 48 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r28, 48 ; BE-NEXT: fmr f31, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r29, 48 ; BE-NEXT: fmr f30, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r30, 48 ; BE-NEXT: fmr f29, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: bl llrintf ; BE-NEXT: nop @@ -313,34 +313,34 @@ define <4 x i64> @llrint_v4i64_v4f16(<4 x half> %x) { ; CHECK-NEXT: stfd f31, 136(r1) # 8-byte Folded Spill ; CHECK-NEXT: fmr f31, f4 ; CHECK-NEXT: stvx v31, r1, r3 # 16-byte Folded Spill -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f29 ; CHECK-NEXT: mr r30, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f30 ; CHECK-NEXT: mr r29, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f31 ; CHECK-NEXT: mr r28, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r3, 48 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r28, 48 ; CHECK-NEXT: fmr f31, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r29, 48 ; CHECK-NEXT: fmr f30, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r30, 48 ; CHECK-NEXT: fmr f29, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: bl llrintf ; CHECK-NEXT: nop @@ -394,31 +394,31 @@ define <4 x i64> @llrint_v4i64_v4f16(<4 x half> %x) { ; FAST-NEXT: std r0, 80(r1) ; FAST-NEXT: fmr f31, f3 ; FAST-NEXT: fmr f30, f2 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f28, f1 ; FAST-NEXT: fmr f1, f31 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f31, f1 ; FAST-NEXT: fmr f1, f30 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f30, f1 ; FAST-NEXT: fmr f1, f29 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fctid f0, f30 ; FAST-NEXT: fctid f2, f31 @@ -491,66 +491,66 @@ define <8 x i64> @llrint_v8i64_v8f16(<8 x half> %x) { ; BE-NEXT: fmr f28, f5 ; BE-NEXT: fmr f27, f4 ; BE-NEXT: fmr f26, f3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f25 ; BE-NEXT: mr r30, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f27 ; BE-NEXT: mr r29, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f26 ; BE-NEXT: mr r28, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f29 ; BE-NEXT: mr r27, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f28 ; BE-NEXT: mr r26, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f31 ; BE-NEXT: mr r25, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f30 ; BE-NEXT: mr r24, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r3, 48 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r24, 48 ; BE-NEXT: fmr f31, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r25, 48 ; BE-NEXT: fmr f30, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r26, 48 ; BE-NEXT: fmr f29, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r27, 48 ; BE-NEXT: fmr f28, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r28, 48 ; BE-NEXT: fmr f27, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r29, 48 ; BE-NEXT: fmr f26, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r30, 48 ; BE-NEXT: fmr f25, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: bl llrintf ; BE-NEXT: nop @@ -664,66 +664,66 @@ define <8 x i64> @llrint_v8i64_v8f16(<8 x half> %x) { ; CHECK-NEXT: stfd f31, 232(r1) # 8-byte Folded Spill ; CHECK-NEXT: fmr f31, f8 ; CHECK-NEXT: stvx v31, r1, r3 # 16-byte Folded Spill -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f25 ; CHECK-NEXT: mr r30, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f26 ; CHECK-NEXT: mr r29, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f27 ; CHECK-NEXT: mr r28, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f28 ; CHECK-NEXT: mr r27, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f29 ; CHECK-NEXT: mr r26, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f30 ; CHECK-NEXT: mr r25, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f31 ; CHECK-NEXT: mr r24, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r3, 48 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r24, 48 ; CHECK-NEXT: fmr f31, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r25, 48 ; CHECK-NEXT: fmr f30, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r26, 48 ; CHECK-NEXT: fmr f29, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r27, 48 ; CHECK-NEXT: fmr f28, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r28, 48 ; CHECK-NEXT: fmr f27, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r29, 48 ; CHECK-NEXT: fmr f26, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r30, 48 ; CHECK-NEXT: fmr f25, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: bl llrintf ; CHECK-NEXT: nop @@ -821,59 +821,59 @@ define <8 x i64> @llrint_v8i64_v8f16(<8 x half> %x) { ; FAST-NEXT: fmr f27, f4 ; FAST-NEXT: fmr f26, f3 ; FAST-NEXT: fmr f25, f2 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f31, f1 ; FAST-NEXT: fmr f1, f30 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f30, f1 ; FAST-NEXT: fmr f1, f29 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f29, f1 ; FAST-NEXT: fmr f1, f28 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f28, f1 ; FAST-NEXT: fmr f1, f27 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f27, f1 ; FAST-NEXT: fmr f1, f26 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f26, f1 ; FAST-NEXT: fmr f1, f25 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f25, f1 ; FAST-NEXT: fmr f1, f24 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fctid f0, f25 ; FAST-NEXT: fctid f2, f26 @@ -1001,130 +1001,130 @@ define <16 x i64> @llrint_v16i64_v16f16(<16 x half> %x) { ; BE-NEXT: fmr f23, f5 ; BE-NEXT: fmr f22, f4 ; BE-NEXT: fmr f21, f3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f20 ; BE-NEXT: mr r30, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f22 ; BE-NEXT: mr r29, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f21 ; BE-NEXT: mr r28, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f24 ; BE-NEXT: mr r27, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f23 ; BE-NEXT: mr r26, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f26 ; BE-NEXT: mr r25, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f25 ; BE-NEXT: mr r24, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f28 ; BE-NEXT: mr r23, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f27 ; BE-NEXT: mr r22, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f29 ; BE-NEXT: mr r21, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f30 ; BE-NEXT: mr r20, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: lfs f1, 652(r1) ; BE-NEXT: mr r19, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f31 ; BE-NEXT: mr r18, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: lfs f1, 668(r1) ; BE-NEXT: mr r17, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: lfs f1, 660(r1) ; BE-NEXT: mr r16, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r3, 48 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r16, 48 ; BE-NEXT: fmr f31, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r17, 48 ; BE-NEXT: fmr f30, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r18, 48 ; BE-NEXT: fmr f29, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r19, 48 ; BE-NEXT: fmr f28, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r20, 48 ; BE-NEXT: fmr f27, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r21, 48 ; BE-NEXT: fmr f26, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r22, 48 ; BE-NEXT: fmr f25, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r23, 48 ; BE-NEXT: fmr f24, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r24, 48 ; BE-NEXT: fmr f23, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r25, 48 ; BE-NEXT: fmr f22, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r26, 48 ; BE-NEXT: fmr f21, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r27, 48 ; BE-NEXT: fmr f20, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r28, 48 ; BE-NEXT: fmr f19, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r29, 48 ; BE-NEXT: fmr f18, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r30, 48 ; BE-NEXT: fmr f17, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: bl llrintf ; BE-NEXT: nop @@ -1343,130 +1343,130 @@ define <16 x i64> @llrint_v16i64_v16f16(<16 x half> %x) { ; CHECK-NEXT: stvx v30, r1, r3 # 16-byte Folded Spill ; CHECK-NEXT: li r3, 160 ; CHECK-NEXT: stvx v31, r1, r3 # 16-byte Folded Spill -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f20 ; CHECK-NEXT: mr r30, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f21 ; CHECK-NEXT: mr r29, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f22 ; CHECK-NEXT: mr r28, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f23 ; CHECK-NEXT: mr r27, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f24 ; CHECK-NEXT: mr r26, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f25 ; CHECK-NEXT: mr r25, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f26 ; CHECK-NEXT: mr r24, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f27 ; CHECK-NEXT: mr r23, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f28 ; CHECK-NEXT: mr r22, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f29 ; CHECK-NEXT: mr r21, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f30 ; CHECK-NEXT: mr r20, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f31 ; CHECK-NEXT: mr r19, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: lfs f1, 568(r1) ; CHECK-NEXT: mr r18, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: lfs f1, 576(r1) ; CHECK-NEXT: mr r17, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: lfs f1, 584(r1) ; CHECK-NEXT: mr r16, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r3, 48 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r16, 48 ; CHECK-NEXT: fmr f31, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r17, 48 ; CHECK-NEXT: fmr f30, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r18, 48 ; CHECK-NEXT: fmr f29, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r19, 48 ; CHECK-NEXT: fmr f28, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r20, 48 ; CHECK-NEXT: fmr f27, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r21, 48 ; CHECK-NEXT: fmr f26, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r22, 48 ; CHECK-NEXT: fmr f25, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r23, 48 ; CHECK-NEXT: fmr f24, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r24, 48 ; CHECK-NEXT: fmr f23, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r25, 48 ; CHECK-NEXT: fmr f22, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r26, 48 ; CHECK-NEXT: fmr f21, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r27, 48 ; CHECK-NEXT: fmr f20, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r28, 48 ; CHECK-NEXT: fmr f19, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r29, 48 ; CHECK-NEXT: fmr f18, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r30, 48 ; CHECK-NEXT: fmr f17, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: bl llrintf ; CHECK-NEXT: nop @@ -1650,115 +1650,115 @@ define <16 x i64> @llrint_v16i64_v16f16(<16 x half> %x) { ; FAST-NEXT: fmr f22, f4 ; FAST-NEXT: fmr f23, f3 ; FAST-NEXT: fmr f25, f2 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f31, f1 ; FAST-NEXT: lfs f1, 304(r1) -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f30, f1 ; FAST-NEXT: lfs f1, 296(r1) -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f29, f1 ; FAST-NEXT: fmr f1, f28 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f28, f1 ; FAST-NEXT: fmr f1, f27 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f27, f1 ; FAST-NEXT: fmr f1, f24 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f24, f1 ; FAST-NEXT: fmr f1, f21 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f21, f1 ; FAST-NEXT: fmr f1, f19 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f19, f1 ; FAST-NEXT: fmr f1, f18 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f18, f1 ; FAST-NEXT: fmr f1, f17 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f17, f1 ; FAST-NEXT: fmr f1, f16 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f16, f1 ; FAST-NEXT: fmr f1, f20 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f20, f1 ; FAST-NEXT: fmr f1, f22 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f22, f1 ; FAST-NEXT: fmr f1, f23 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f23, f1 ; FAST-NEXT: fmr f1, f25 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f25, f1 ; FAST-NEXT: fmr f1, f26 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fctid f0, f25 ; FAST-NEXT: fctid f2, f23 @@ -1935,272 +1935,272 @@ define <32 x i64> @llrint_v32i64_v32f16(<32 x half> %x) { ; BE-NEXT: fmr f22, f4 ; BE-NEXT: fmr f21, f3 ; BE-NEXT: mr r30, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f20 ; BE-NEXT: std r3, 304(r1) # 8-byte Folded Spill -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f22 ; BE-NEXT: std r3, 296(r1) # 8-byte Folded Spill -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f21 ; BE-NEXT: std r3, 280(r1) # 8-byte Folded Spill -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f24 ; BE-NEXT: std r3, 264(r1) # 8-byte Folded Spill -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f23 ; BE-NEXT: std r3, 248(r1) # 8-byte Folded Spill -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f26 ; BE-NEXT: std r3, 232(r1) # 8-byte Folded Spill -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f25 ; BE-NEXT: std r3, 216(r1) # 8-byte Folded Spill -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f28 ; BE-NEXT: std r3, 200(r1) # 8-byte Folded Spill -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f27 ; BE-NEXT: std r3, 184(r1) # 8-byte Folded Spill -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f29 ; BE-NEXT: std r3, 168(r1) # 8-byte Folded Spill -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f30 ; BE-NEXT: std r3, 152(r1) # 8-byte Folded Spill -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: lfs f1, 1028(r1) ; BE-NEXT: std r3, 136(r1) # 8-byte Folded Spill -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f31 ; BE-NEXT: std r3, 120(r1) # 8-byte Folded Spill -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: lfs f1, 1044(r1) ; BE-NEXT: std r3, 112(r1) # 8-byte Folded Spill -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: lfs f1, 1036(r1) ; BE-NEXT: mr r15, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: lfs f1, 1060(r1) ; BE-NEXT: mr r14, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: lfs f1, 1052(r1) ; BE-NEXT: mr r31, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: lfs f1, 1076(r1) ; BE-NEXT: mr r29, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: lfs f1, 1068(r1) ; BE-NEXT: mr r28, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: lfs f1, 1092(r1) ; BE-NEXT: mr r27, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: lfs f1, 1084(r1) ; BE-NEXT: mr r26, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: lfs f1, 1108(r1) ; BE-NEXT: mr r25, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: lfs f1, 1100(r1) ; BE-NEXT: mr r24, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: lfs f1, 1124(r1) ; BE-NEXT: mr r23, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: lfs f1, 1116(r1) ; BE-NEXT: mr r22, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: lfs f1, 1140(r1) ; BE-NEXT: mr r21, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: lfs f1, 1132(r1) ; BE-NEXT: mr r20, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: lfs f1, 1156(r1) ; BE-NEXT: mr r19, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: lfs f1, 1148(r1) ; BE-NEXT: mr r18, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: lfs f1, 1172(r1) ; BE-NEXT: mr r17, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: lfs f1, 1164(r1) ; BE-NEXT: mr r16, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r3, 48 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r16, 48 ; BE-NEXT: stfs f1, 316(r1) # 4-byte Folded Spill -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r17, 48 ; BE-NEXT: stfs f1, 312(r1) # 4-byte Folded Spill -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r18, 48 ; BE-NEXT: stfs f1, 292(r1) # 4-byte Folded Spill -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r19, 48 ; BE-NEXT: stfs f1, 276(r1) # 4-byte Folded Spill -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r20, 48 ; BE-NEXT: stfs f1, 260(r1) # 4-byte Folded Spill -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r21, 48 ; BE-NEXT: stfs f1, 244(r1) # 4-byte Folded Spill -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r22, 48 ; BE-NEXT: stfs f1, 228(r1) # 4-byte Folded Spill -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r23, 48 ; BE-NEXT: stfs f1, 212(r1) # 4-byte Folded Spill -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r24, 48 ; BE-NEXT: stfs f1, 196(r1) # 4-byte Folded Spill -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r25, 48 ; BE-NEXT: stfs f1, 180(r1) # 4-byte Folded Spill -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r26, 48 ; BE-NEXT: stfs f1, 164(r1) # 4-byte Folded Spill -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r27, 48 ; BE-NEXT: stfs f1, 148(r1) # 4-byte Folded Spill -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r28, 48 ; BE-NEXT: stfs f1, 132(r1) # 4-byte Folded Spill -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r29, 48 ; BE-NEXT: fmr f18, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r31, 48 ; BE-NEXT: fmr f17, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r14, 48 ; BE-NEXT: fmr f16, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r15, 48 ; BE-NEXT: fmr f15, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: ld r3, 112(r1) # 8-byte Folded Reload ; BE-NEXT: fmr f14, f1 ; BE-NEXT: clrldi r3, r3, 48 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: ld r3, 120(r1) # 8-byte Folded Reload ; BE-NEXT: fmr f31, f1 ; BE-NEXT: clrldi r3, r3, 48 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: ld r3, 136(r1) # 8-byte Folded Reload ; BE-NEXT: fmr f30, f1 ; BE-NEXT: clrldi r3, r3, 48 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: ld r3, 152(r1) # 8-byte Folded Reload ; BE-NEXT: fmr f29, f1 ; BE-NEXT: clrldi r3, r3, 48 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: ld r3, 168(r1) # 8-byte Folded Reload ; BE-NEXT: fmr f28, f1 ; BE-NEXT: clrldi r3, r3, 48 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: ld r3, 184(r1) # 8-byte Folded Reload ; BE-NEXT: fmr f27, f1 ; BE-NEXT: clrldi r3, r3, 48 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: ld r3, 200(r1) # 8-byte Folded Reload ; BE-NEXT: fmr f26, f1 ; BE-NEXT: clrldi r3, r3, 48 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: ld r3, 216(r1) # 8-byte Folded Reload ; BE-NEXT: fmr f25, f1 ; BE-NEXT: clrldi r3, r3, 48 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: ld r3, 232(r1) # 8-byte Folded Reload ; BE-NEXT: fmr f24, f1 ; BE-NEXT: clrldi r3, r3, 48 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: ld r3, 248(r1) # 8-byte Folded Reload ; BE-NEXT: fmr f23, f1 ; BE-NEXT: clrldi r3, r3, 48 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: ld r3, 264(r1) # 8-byte Folded Reload ; BE-NEXT: fmr f22, f1 ; BE-NEXT: clrldi r3, r3, 48 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: ld r3, 280(r1) # 8-byte Folded Reload ; BE-NEXT: fmr f21, f1 ; BE-NEXT: clrldi r3, r3, 48 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: ld r3, 296(r1) # 8-byte Folded Reload ; BE-NEXT: fmr f20, f1 ; BE-NEXT: clrldi r3, r3, 48 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: ld r3, 304(r1) # 8-byte Folded Reload ; BE-NEXT: fmr f19, f1 ; BE-NEXT: clrldi r3, r3, 48 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: bl llrintf ; BE-NEXT: nop @@ -2561,274 +2561,274 @@ define <32 x i64> @llrint_v32i64_v32f16(<32 x half> %x) { ; CHECK-NEXT: stvx v30, r1, r4 # 16-byte Folded Spill ; CHECK-NEXT: li r4, 384 ; CHECK-NEXT: stvx v31, r1, r4 # 16-byte Folded Spill -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f20 ; CHECK-NEXT: std r3, 176(r1) # 8-byte Folded Spill -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f21 ; CHECK-NEXT: std r3, 160(r1) # 8-byte Folded Spill -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f22 ; CHECK-NEXT: std r3, 144(r1) # 8-byte Folded Spill -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f23 ; CHECK-NEXT: std r3, 128(r1) # 8-byte Folded Spill -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f24 ; CHECK-NEXT: std r3, 120(r1) # 8-byte Folded Spill -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f25 ; CHECK-NEXT: std r3, 112(r1) # 8-byte Folded Spill -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f26 ; CHECK-NEXT: std r3, 104(r1) # 8-byte Folded Spill -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f27 ; CHECK-NEXT: std r3, 96(r1) # 8-byte Folded Spill -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f28 ; CHECK-NEXT: std r3, 88(r1) # 8-byte Folded Spill -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f29 ; CHECK-NEXT: std r3, 80(r1) # 8-byte Folded Spill -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f30 ; CHECK-NEXT: std r3, 72(r1) # 8-byte Folded Spill -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f31 ; CHECK-NEXT: std r3, 64(r1) # 8-byte Folded Spill -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: lfs f1, 832(r1) ; CHECK-NEXT: std r3, 56(r1) # 8-byte Folded Spill -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: lfs f1, 840(r1) ; CHECK-NEXT: std r3, 48(r1) # 8-byte Folded Spill -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: lfs f1, 848(r1) ; CHECK-NEXT: mr r15, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: lfs f1, 856(r1) ; CHECK-NEXT: mr r14, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: lfs f1, 864(r1) ; CHECK-NEXT: mr r31, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: lfs f1, 872(r1) ; CHECK-NEXT: mr r29, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: lfs f1, 880(r1) ; CHECK-NEXT: mr r28, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: lfs f1, 888(r1) ; CHECK-NEXT: mr r27, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: lfs f1, 896(r1) ; CHECK-NEXT: mr r26, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: lfs f1, 904(r1) ; CHECK-NEXT: mr r25, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: lfs f1, 912(r1) ; CHECK-NEXT: mr r24, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: lfs f1, 920(r1) ; CHECK-NEXT: mr r23, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: lfs f1, 928(r1) ; CHECK-NEXT: mr r22, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: lfs f1, 936(r1) ; CHECK-NEXT: mr r21, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: lfs f1, 944(r1) ; CHECK-NEXT: mr r20, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: lfs f1, 952(r1) ; CHECK-NEXT: mr r19, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: lfs f1, 960(r1) ; CHECK-NEXT: mr r18, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: lfs f1, 968(r1) ; CHECK-NEXT: mr r17, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: lfs f1, 976(r1) ; CHECK-NEXT: mr r16, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r3, 48 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: li r3, 204 ; CHECK-NEXT: stxsspx f1, r1, r3 # 4-byte Folded Spill ; CHECK-NEXT: clrldi r3, r16, 48 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: li r3, 200 ; CHECK-NEXT: stxsspx f1, r1, r3 # 4-byte Folded Spill ; CHECK-NEXT: clrldi r3, r17, 48 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r18, 48 ; CHECK-NEXT: fmr f29, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r19, 48 ; CHECK-NEXT: fmr f28, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r20, 48 ; CHECK-NEXT: fmr f27, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r21, 48 ; CHECK-NEXT: fmr f26, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r22, 48 ; CHECK-NEXT: fmr f25, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r23, 48 ; CHECK-NEXT: fmr f24, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r24, 48 ; CHECK-NEXT: fmr f23, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r25, 48 ; CHECK-NEXT: fmr f22, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r26, 48 ; CHECK-NEXT: fmr f21, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r27, 48 ; CHECK-NEXT: fmr f20, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r28, 48 ; CHECK-NEXT: fmr f19, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r29, 48 ; CHECK-NEXT: fmr f18, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r31, 48 ; CHECK-NEXT: fmr f17, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r14, 48 ; CHECK-NEXT: fmr f16, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r15, 48 ; CHECK-NEXT: fmr f15, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: ld r3, 48(r1) # 8-byte Folded Reload ; CHECK-NEXT: fmr f14, f1 ; CHECK-NEXT: clrldi r3, r3, 48 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: ld r3, 56(r1) # 8-byte Folded Reload ; CHECK-NEXT: fmr f30, f1 ; CHECK-NEXT: clrldi r3, r3, 48 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: ld r3, 64(r1) # 8-byte Folded Reload ; CHECK-NEXT: xxlor v30, f1, f1 ; CHECK-NEXT: clrldi r3, r3, 48 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: ld r3, 72(r1) # 8-byte Folded Reload ; CHECK-NEXT: xxlor v29, f1, f1 ; CHECK-NEXT: clrldi r3, r3, 48 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: ld r3, 80(r1) # 8-byte Folded Reload ; CHECK-NEXT: xxlor v28, f1, f1 ; CHECK-NEXT: clrldi r3, r3, 48 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: ld r3, 88(r1) # 8-byte Folded Reload ; CHECK-NEXT: xxlor v27, f1, f1 ; CHECK-NEXT: clrldi r3, r3, 48 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: ld r3, 96(r1) # 8-byte Folded Reload ; CHECK-NEXT: xxlor v26, f1, f1 ; CHECK-NEXT: clrldi r3, r3, 48 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: ld r3, 104(r1) # 8-byte Folded Reload ; CHECK-NEXT: xxlor v25, f1, f1 ; CHECK-NEXT: clrldi r3, r3, 48 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: ld r3, 112(r1) # 8-byte Folded Reload ; CHECK-NEXT: xxlor v24, f1, f1 ; CHECK-NEXT: clrldi r3, r3, 48 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: ld r3, 120(r1) # 8-byte Folded Reload ; CHECK-NEXT: xxlor v23, f1, f1 ; CHECK-NEXT: clrldi r3, r3, 48 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: ld r3, 128(r1) # 8-byte Folded Reload ; CHECK-NEXT: xxlor v22, f1, f1 ; CHECK-NEXT: clrldi r3, r3, 48 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: ld r3, 144(r1) # 8-byte Folded Reload ; CHECK-NEXT: xxlor v21, f1, f1 ; CHECK-NEXT: clrldi r3, r3, 48 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: ld r3, 160(r1) # 8-byte Folded Reload ; CHECK-NEXT: xxlor v20, f1, f1 ; CHECK-NEXT: clrldi r3, r3, 48 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: ld r3, 176(r1) # 8-byte Folded Reload ; CHECK-NEXT: fmr f31, f1 ; CHECK-NEXT: clrldi r3, r3, 48 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: bl llrintf ; CHECK-NEXT: nop @@ -3200,238 +3200,238 @@ define <32 x i64> @llrint_v32i64_v32f16(<32 x half> %x) { ; FAST-NEXT: xxlor v31, f6, f6 ; FAST-NEXT: stxsspx f1, r1, r4 # 4-byte Folded Spill ; FAST-NEXT: lfs f1, 768(r1) -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: li r3, 120 ; FAST-NEXT: stxsdx f1, r1, r3 # 8-byte Folded Spill ; FAST-NEXT: lfs f1, 760(r1) -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: li r3, 112 ; FAST-NEXT: stxsdx f1, r1, r3 # 8-byte Folded Spill ; FAST-NEXT: lfs f1, 752(r1) -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: li r3, 104 ; FAST-NEXT: stxsdx f1, r1, r3 # 8-byte Folded Spill ; FAST-NEXT: lfs f1, 744(r1) -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: li r3, 96 ; FAST-NEXT: stxsdx f1, r1, r3 # 8-byte Folded Spill ; FAST-NEXT: lfs f1, 736(r1) -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: li r3, 88 ; FAST-NEXT: stxsdx f1, r1, r3 # 8-byte Folded Spill ; FAST-NEXT: lfs f1, 728(r1) -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: li r3, 80 ; FAST-NEXT: stxsdx f1, r1, r3 # 8-byte Folded Spill ; FAST-NEXT: lfs f1, 720(r1) -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: li r3, 72 ; FAST-NEXT: stxsdx f1, r1, r3 # 8-byte Folded Spill ; FAST-NEXT: lfs f1, 712(r1) -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: li r3, 64 ; FAST-NEXT: stxsdx f1, r1, r3 # 8-byte Folded Spill ; FAST-NEXT: lfs f1, 704(r1) -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: li r3, 56 ; FAST-NEXT: stxsdx f1, r1, r3 # 8-byte Folded Spill ; FAST-NEXT: lfs f1, 696(r1) -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: li r3, 48 ; FAST-NEXT: stxsdx f1, r1, r3 # 8-byte Folded Spill ; FAST-NEXT: lfs f1, 688(r1) -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: xxlor v21, f1, f1 ; FAST-NEXT: lfs f1, 680(r1) -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: xxlor v20, f1, f1 ; FAST-NEXT: lfs f1, 672(r1) -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: xxlor v24, f1, f1 ; FAST-NEXT: lfs f1, 664(r1) -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f31, f1 ; FAST-NEXT: lfs f1, 656(r1) -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f30, f1 ; FAST-NEXT: lfs f1, 648(r1) -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f28, f1 ; FAST-NEXT: lfs f1, 640(r1) -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f27, f1 ; FAST-NEXT: lfs f1, 632(r1) -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f26, f1 ; FAST-NEXT: lfs f1, 624(r1) -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f25, f1 ; FAST-NEXT: xxlor f1, v25, v25 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f24, f1 ; FAST-NEXT: xxlor f1, v26, v26 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f23, f1 ; FAST-NEXT: xxlor f1, v27, v27 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f22, f1 ; FAST-NEXT: xxlor f1, v28, v28 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f21, f1 ; FAST-NEXT: fmr f1, f29 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f20, f1 ; FAST-NEXT: xxlor f1, v29, v29 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f19, f1 ; FAST-NEXT: xxlor f1, v30, v30 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f18, f1 ; FAST-NEXT: xxlor f1, v31, v31 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f29, f1 ; FAST-NEXT: fmr f1, f14 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f14, f1 ; FAST-NEXT: fmr f1, f16 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f16, f1 ; FAST-NEXT: xxlor f1, v22, v22 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f17, f1 ; FAST-NEXT: xxlor f1, v23, v23 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: li r3, 44 ; FAST-NEXT: fmr f15, f1 ; FAST-NEXT: lxsspx f1, r1, r3 # 4-byte Folded Reload -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fctid f3, f15 ; FAST-NEXT: fctid f4, f17 diff --git a/llvm/test/CodeGen/PowerPC/vector-lrint.ll b/llvm/test/CodeGen/PowerPC/vector-lrint.ll index b6d0bd5c05894..c2576d4631db8 100644 --- a/llvm/test/CodeGen/PowerPC/vector-lrint.ll +++ b/llvm/test/CodeGen/PowerPC/vector-lrint.ll @@ -28,10 +28,10 @@ define <1 x i64> @lrint_v1f16(<1 x half> %x) { ; BE-NEXT: std r0, 128(r1) ; BE-NEXT: .cfi_def_cfa_offset 112 ; BE-NEXT: .cfi_offset lr, 16 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r3, 48 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: bl lrintf ; BE-NEXT: nop @@ -47,10 +47,10 @@ define <1 x i64> @lrint_v1f16(<1 x half> %x) { ; CHECK-NEXT: std r0, 48(r1) ; CHECK-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NEXT: .cfi_offset lr, 16 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r3, 48 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: bl lrintf ; CHECK-NEXT: nop @@ -66,10 +66,10 @@ define <1 x i64> @lrint_v1f16(<1 x half> %x) { ; FAST-NEXT: std r0, 48(r1) ; FAST-NEXT: .cfi_def_cfa_offset 32 ; FAST-NEXT: .cfi_offset lr, 16 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fctid f0, f1 ; FAST-NEXT: mffprd r3, f0 @@ -96,18 +96,18 @@ define <2 x i64> @lrint_v2f16(<2 x half> %x) { ; BE-NEXT: fmr f31, f1 ; BE-NEXT: fmr f1, f2 ; BE-NEXT: std r30, 136(r1) # 8-byte Folded Spill -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f31 ; BE-NEXT: mr r30, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r3, 48 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r30, 48 ; BE-NEXT: fmr f31, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: bl lrintf ; BE-NEXT: nop @@ -140,18 +140,18 @@ define <2 x i64> @lrint_v2f16(<2 x half> %x) { ; CHECK-NEXT: stfd f31, 88(r1) # 8-byte Folded Spill ; CHECK-NEXT: fmr f31, f2 ; CHECK-NEXT: stvx v31, r1, r3 # 16-byte Folded Spill -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f31 ; CHECK-NEXT: mr r30, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r3, 48 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r30, 48 ; CHECK-NEXT: fmr f31, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: bl lrintf ; CHECK-NEXT: nop @@ -183,17 +183,17 @@ define <2 x i64> @lrint_v2f16(<2 x half> %x) { ; FAST-NEXT: fmr f31, f1 ; FAST-NEXT: fmr f1, f2 ; FAST-NEXT: std r0, 64(r1) -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f30, f1 ; FAST-NEXT: fmr f1, f31 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fctid f0, f1 ; FAST-NEXT: fctid f1, f30 @@ -237,34 +237,34 @@ define <4 x i64> @lrint_v4f16(<4 x half> %x) { ; BE-NEXT: stfd f31, 200(r1) # 8-byte Folded Spill ; BE-NEXT: fmr f31, f4 ; BE-NEXT: fmr f30, f3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f29 ; BE-NEXT: mr r30, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f31 ; BE-NEXT: mr r29, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f30 ; BE-NEXT: mr r28, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r3, 48 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r28, 48 ; BE-NEXT: fmr f31, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r29, 48 ; BE-NEXT: fmr f30, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r30, 48 ; BE-NEXT: fmr f29, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: bl lrintf ; BE-NEXT: nop @@ -324,34 +324,34 @@ define <4 x i64> @lrint_v4f16(<4 x half> %x) { ; CHECK-NEXT: stfd f31, 136(r1) # 8-byte Folded Spill ; CHECK-NEXT: fmr f31, f4 ; CHECK-NEXT: stvx v31, r1, r3 # 16-byte Folded Spill -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f29 ; CHECK-NEXT: mr r30, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f30 ; CHECK-NEXT: mr r29, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f31 ; CHECK-NEXT: mr r28, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r3, 48 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r28, 48 ; CHECK-NEXT: fmr f31, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r29, 48 ; CHECK-NEXT: fmr f30, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r30, 48 ; CHECK-NEXT: fmr f29, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: bl lrintf ; CHECK-NEXT: nop @@ -405,31 +405,31 @@ define <4 x i64> @lrint_v4f16(<4 x half> %x) { ; FAST-NEXT: std r0, 80(r1) ; FAST-NEXT: fmr f31, f3 ; FAST-NEXT: fmr f30, f2 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f28, f1 ; FAST-NEXT: fmr f1, f31 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f31, f1 ; FAST-NEXT: fmr f1, f30 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f30, f1 ; FAST-NEXT: fmr f1, f29 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fctid f0, f30 ; FAST-NEXT: fctid f2, f31 @@ -502,66 +502,66 @@ define <8 x i64> @lrint_v8f16(<8 x half> %x) { ; BE-NEXT: fmr f28, f5 ; BE-NEXT: fmr f27, f4 ; BE-NEXT: fmr f26, f3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f25 ; BE-NEXT: mr r30, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f27 ; BE-NEXT: mr r29, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f26 ; BE-NEXT: mr r28, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f29 ; BE-NEXT: mr r27, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f28 ; BE-NEXT: mr r26, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f31 ; BE-NEXT: mr r25, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f30 ; BE-NEXT: mr r24, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r3, 48 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r24, 48 ; BE-NEXT: fmr f31, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r25, 48 ; BE-NEXT: fmr f30, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r26, 48 ; BE-NEXT: fmr f29, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r27, 48 ; BE-NEXT: fmr f28, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r28, 48 ; BE-NEXT: fmr f27, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r29, 48 ; BE-NEXT: fmr f26, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r30, 48 ; BE-NEXT: fmr f25, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: bl lrintf ; BE-NEXT: nop @@ -675,66 +675,66 @@ define <8 x i64> @lrint_v8f16(<8 x half> %x) { ; CHECK-NEXT: stfd f31, 232(r1) # 8-byte Folded Spill ; CHECK-NEXT: fmr f31, f8 ; CHECK-NEXT: stvx v31, r1, r3 # 16-byte Folded Spill -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f25 ; CHECK-NEXT: mr r30, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f26 ; CHECK-NEXT: mr r29, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f27 ; CHECK-NEXT: mr r28, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f28 ; CHECK-NEXT: mr r27, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f29 ; CHECK-NEXT: mr r26, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f30 ; CHECK-NEXT: mr r25, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f31 ; CHECK-NEXT: mr r24, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r3, 48 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r24, 48 ; CHECK-NEXT: fmr f31, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r25, 48 ; CHECK-NEXT: fmr f30, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r26, 48 ; CHECK-NEXT: fmr f29, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r27, 48 ; CHECK-NEXT: fmr f28, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r28, 48 ; CHECK-NEXT: fmr f27, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r29, 48 ; CHECK-NEXT: fmr f26, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r30, 48 ; CHECK-NEXT: fmr f25, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: bl lrintf ; CHECK-NEXT: nop @@ -832,59 +832,59 @@ define <8 x i64> @lrint_v8f16(<8 x half> %x) { ; FAST-NEXT: fmr f27, f4 ; FAST-NEXT: fmr f26, f3 ; FAST-NEXT: fmr f25, f2 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f31, f1 ; FAST-NEXT: fmr f1, f30 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f30, f1 ; FAST-NEXT: fmr f1, f29 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f29, f1 ; FAST-NEXT: fmr f1, f28 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f28, f1 ; FAST-NEXT: fmr f1, f27 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f27, f1 ; FAST-NEXT: fmr f1, f26 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f26, f1 ; FAST-NEXT: fmr f1, f25 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f25, f1 ; FAST-NEXT: fmr f1, f24 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fctid f0, f25 ; FAST-NEXT: fctid f2, f26 @@ -1012,130 +1012,130 @@ define <16 x i64> @lrint_v16i64_v16f16(<16 x half> %x) { ; BE-NEXT: fmr f23, f5 ; BE-NEXT: fmr f22, f4 ; BE-NEXT: fmr f21, f3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f20 ; BE-NEXT: mr r30, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f22 ; BE-NEXT: mr r29, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f21 ; BE-NEXT: mr r28, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f24 ; BE-NEXT: mr r27, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f23 ; BE-NEXT: mr r26, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f26 ; BE-NEXT: mr r25, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f25 ; BE-NEXT: mr r24, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f28 ; BE-NEXT: mr r23, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f27 ; BE-NEXT: mr r22, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f29 ; BE-NEXT: mr r21, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f30 ; BE-NEXT: mr r20, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: lfs f1, 652(r1) ; BE-NEXT: mr r19, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f31 ; BE-NEXT: mr r18, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: lfs f1, 668(r1) ; BE-NEXT: mr r17, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: lfs f1, 660(r1) ; BE-NEXT: mr r16, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r3, 48 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r16, 48 ; BE-NEXT: fmr f31, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r17, 48 ; BE-NEXT: fmr f30, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r18, 48 ; BE-NEXT: fmr f29, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r19, 48 ; BE-NEXT: fmr f28, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r20, 48 ; BE-NEXT: fmr f27, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r21, 48 ; BE-NEXT: fmr f26, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r22, 48 ; BE-NEXT: fmr f25, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r23, 48 ; BE-NEXT: fmr f24, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r24, 48 ; BE-NEXT: fmr f23, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r25, 48 ; BE-NEXT: fmr f22, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r26, 48 ; BE-NEXT: fmr f21, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r27, 48 ; BE-NEXT: fmr f20, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r28, 48 ; BE-NEXT: fmr f19, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r29, 48 ; BE-NEXT: fmr f18, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r30, 48 ; BE-NEXT: fmr f17, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: bl lrintf ; BE-NEXT: nop @@ -1354,130 +1354,130 @@ define <16 x i64> @lrint_v16i64_v16f16(<16 x half> %x) { ; CHECK-NEXT: stvx v30, r1, r3 # 16-byte Folded Spill ; CHECK-NEXT: li r3, 160 ; CHECK-NEXT: stvx v31, r1, r3 # 16-byte Folded Spill -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f20 ; CHECK-NEXT: mr r30, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f21 ; CHECK-NEXT: mr r29, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f22 ; CHECK-NEXT: mr r28, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f23 ; CHECK-NEXT: mr r27, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f24 ; CHECK-NEXT: mr r26, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f25 ; CHECK-NEXT: mr r25, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f26 ; CHECK-NEXT: mr r24, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f27 ; CHECK-NEXT: mr r23, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f28 ; CHECK-NEXT: mr r22, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f29 ; CHECK-NEXT: mr r21, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f30 ; CHECK-NEXT: mr r20, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f31 ; CHECK-NEXT: mr r19, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: lfs f1, 568(r1) ; CHECK-NEXT: mr r18, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: lfs f1, 576(r1) ; CHECK-NEXT: mr r17, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: lfs f1, 584(r1) ; CHECK-NEXT: mr r16, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r3, 48 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r16, 48 ; CHECK-NEXT: fmr f31, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r17, 48 ; CHECK-NEXT: fmr f30, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r18, 48 ; CHECK-NEXT: fmr f29, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r19, 48 ; CHECK-NEXT: fmr f28, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r20, 48 ; CHECK-NEXT: fmr f27, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r21, 48 ; CHECK-NEXT: fmr f26, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r22, 48 ; CHECK-NEXT: fmr f25, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r23, 48 ; CHECK-NEXT: fmr f24, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r24, 48 ; CHECK-NEXT: fmr f23, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r25, 48 ; CHECK-NEXT: fmr f22, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r26, 48 ; CHECK-NEXT: fmr f21, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r27, 48 ; CHECK-NEXT: fmr f20, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r28, 48 ; CHECK-NEXT: fmr f19, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r29, 48 ; CHECK-NEXT: fmr f18, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r30, 48 ; CHECK-NEXT: fmr f17, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: bl lrintf ; CHECK-NEXT: nop @@ -1661,115 +1661,115 @@ define <16 x i64> @lrint_v16i64_v16f16(<16 x half> %x) { ; FAST-NEXT: fmr f22, f4 ; FAST-NEXT: fmr f23, f3 ; FAST-NEXT: fmr f25, f2 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f31, f1 ; FAST-NEXT: lfs f1, 304(r1) -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f30, f1 ; FAST-NEXT: lfs f1, 296(r1) -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f29, f1 ; FAST-NEXT: fmr f1, f28 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f28, f1 ; FAST-NEXT: fmr f1, f27 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f27, f1 ; FAST-NEXT: fmr f1, f24 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f24, f1 ; FAST-NEXT: fmr f1, f21 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f21, f1 ; FAST-NEXT: fmr f1, f19 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f19, f1 ; FAST-NEXT: fmr f1, f18 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f18, f1 ; FAST-NEXT: fmr f1, f17 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f17, f1 ; FAST-NEXT: fmr f1, f16 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f16, f1 ; FAST-NEXT: fmr f1, f20 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f20, f1 ; FAST-NEXT: fmr f1, f22 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f22, f1 ; FAST-NEXT: fmr f1, f23 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f23, f1 ; FAST-NEXT: fmr f1, f25 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f25, f1 ; FAST-NEXT: fmr f1, f26 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fctid f0, f25 ; FAST-NEXT: fctid f2, f23 @@ -1946,272 +1946,272 @@ define <32 x i64> @lrint_v32i64_v32f16(<32 x half> %x) { ; BE-NEXT: fmr f22, f4 ; BE-NEXT: fmr f21, f3 ; BE-NEXT: mr r30, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f20 ; BE-NEXT: std r3, 304(r1) # 8-byte Folded Spill -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f22 ; BE-NEXT: std r3, 296(r1) # 8-byte Folded Spill -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f21 ; BE-NEXT: std r3, 280(r1) # 8-byte Folded Spill -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f24 ; BE-NEXT: std r3, 264(r1) # 8-byte Folded Spill -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f23 ; BE-NEXT: std r3, 248(r1) # 8-byte Folded Spill -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f26 ; BE-NEXT: std r3, 232(r1) # 8-byte Folded Spill -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f25 ; BE-NEXT: std r3, 216(r1) # 8-byte Folded Spill -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f28 ; BE-NEXT: std r3, 200(r1) # 8-byte Folded Spill -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f27 ; BE-NEXT: std r3, 184(r1) # 8-byte Folded Spill -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f29 ; BE-NEXT: std r3, 168(r1) # 8-byte Folded Spill -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f30 ; BE-NEXT: std r3, 152(r1) # 8-byte Folded Spill -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: lfs f1, 1028(r1) ; BE-NEXT: std r3, 136(r1) # 8-byte Folded Spill -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: fmr f1, f31 ; BE-NEXT: std r3, 120(r1) # 8-byte Folded Spill -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: lfs f1, 1044(r1) ; BE-NEXT: std r3, 112(r1) # 8-byte Folded Spill -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: lfs f1, 1036(r1) ; BE-NEXT: mr r15, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: lfs f1, 1060(r1) ; BE-NEXT: mr r14, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: lfs f1, 1052(r1) ; BE-NEXT: mr r31, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: lfs f1, 1076(r1) ; BE-NEXT: mr r29, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: lfs f1, 1068(r1) ; BE-NEXT: mr r28, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: lfs f1, 1092(r1) ; BE-NEXT: mr r27, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: lfs f1, 1084(r1) ; BE-NEXT: mr r26, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: lfs f1, 1108(r1) ; BE-NEXT: mr r25, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: lfs f1, 1100(r1) ; BE-NEXT: mr r24, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: lfs f1, 1124(r1) ; BE-NEXT: mr r23, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: lfs f1, 1116(r1) ; BE-NEXT: mr r22, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: lfs f1, 1140(r1) ; BE-NEXT: mr r21, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: lfs f1, 1132(r1) ; BE-NEXT: mr r20, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: lfs f1, 1156(r1) ; BE-NEXT: mr r19, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: lfs f1, 1148(r1) ; BE-NEXT: mr r18, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: lfs f1, 1172(r1) ; BE-NEXT: mr r17, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: lfs f1, 1164(r1) ; BE-NEXT: mr r16, r3 -; BE-NEXT: bl __gnu_f2h_ieee +; BE-NEXT: bl __truncsfhf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r3, 48 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r16, 48 ; BE-NEXT: stfs f1, 316(r1) # 4-byte Folded Spill -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r17, 48 ; BE-NEXT: stfs f1, 312(r1) # 4-byte Folded Spill -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r18, 48 ; BE-NEXT: stfs f1, 292(r1) # 4-byte Folded Spill -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r19, 48 ; BE-NEXT: stfs f1, 276(r1) # 4-byte Folded Spill -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r20, 48 ; BE-NEXT: stfs f1, 260(r1) # 4-byte Folded Spill -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r21, 48 ; BE-NEXT: stfs f1, 244(r1) # 4-byte Folded Spill -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r22, 48 ; BE-NEXT: stfs f1, 228(r1) # 4-byte Folded Spill -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r23, 48 ; BE-NEXT: stfs f1, 212(r1) # 4-byte Folded Spill -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r24, 48 ; BE-NEXT: stfs f1, 196(r1) # 4-byte Folded Spill -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r25, 48 ; BE-NEXT: stfs f1, 180(r1) # 4-byte Folded Spill -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r26, 48 ; BE-NEXT: stfs f1, 164(r1) # 4-byte Folded Spill -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r27, 48 ; BE-NEXT: stfs f1, 148(r1) # 4-byte Folded Spill -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r28, 48 ; BE-NEXT: stfs f1, 132(r1) # 4-byte Folded Spill -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r29, 48 ; BE-NEXT: fmr f18, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r31, 48 ; BE-NEXT: fmr f17, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r14, 48 ; BE-NEXT: fmr f16, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: clrldi r3, r15, 48 ; BE-NEXT: fmr f15, f1 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: ld r3, 112(r1) # 8-byte Folded Reload ; BE-NEXT: fmr f14, f1 ; BE-NEXT: clrldi r3, r3, 48 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: ld r3, 120(r1) # 8-byte Folded Reload ; BE-NEXT: fmr f31, f1 ; BE-NEXT: clrldi r3, r3, 48 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: ld r3, 136(r1) # 8-byte Folded Reload ; BE-NEXT: fmr f30, f1 ; BE-NEXT: clrldi r3, r3, 48 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: ld r3, 152(r1) # 8-byte Folded Reload ; BE-NEXT: fmr f29, f1 ; BE-NEXT: clrldi r3, r3, 48 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: ld r3, 168(r1) # 8-byte Folded Reload ; BE-NEXT: fmr f28, f1 ; BE-NEXT: clrldi r3, r3, 48 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: ld r3, 184(r1) # 8-byte Folded Reload ; BE-NEXT: fmr f27, f1 ; BE-NEXT: clrldi r3, r3, 48 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: ld r3, 200(r1) # 8-byte Folded Reload ; BE-NEXT: fmr f26, f1 ; BE-NEXT: clrldi r3, r3, 48 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: ld r3, 216(r1) # 8-byte Folded Reload ; BE-NEXT: fmr f25, f1 ; BE-NEXT: clrldi r3, r3, 48 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: ld r3, 232(r1) # 8-byte Folded Reload ; BE-NEXT: fmr f24, f1 ; BE-NEXT: clrldi r3, r3, 48 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: ld r3, 248(r1) # 8-byte Folded Reload ; BE-NEXT: fmr f23, f1 ; BE-NEXT: clrldi r3, r3, 48 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: ld r3, 264(r1) # 8-byte Folded Reload ; BE-NEXT: fmr f22, f1 ; BE-NEXT: clrldi r3, r3, 48 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: ld r3, 280(r1) # 8-byte Folded Reload ; BE-NEXT: fmr f21, f1 ; BE-NEXT: clrldi r3, r3, 48 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: ld r3, 296(r1) # 8-byte Folded Reload ; BE-NEXT: fmr f20, f1 ; BE-NEXT: clrldi r3, r3, 48 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: ld r3, 304(r1) # 8-byte Folded Reload ; BE-NEXT: fmr f19, f1 ; BE-NEXT: clrldi r3, r3, 48 -; BE-NEXT: bl __gnu_h2f_ieee +; BE-NEXT: bl __extendhfsf2 ; BE-NEXT: nop ; BE-NEXT: bl lrintf ; BE-NEXT: nop @@ -2572,274 +2572,274 @@ define <32 x i64> @lrint_v32i64_v32f16(<32 x half> %x) { ; CHECK-NEXT: stvx v30, r1, r4 # 16-byte Folded Spill ; CHECK-NEXT: li r4, 384 ; CHECK-NEXT: stvx v31, r1, r4 # 16-byte Folded Spill -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f20 ; CHECK-NEXT: std r3, 176(r1) # 8-byte Folded Spill -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f21 ; CHECK-NEXT: std r3, 160(r1) # 8-byte Folded Spill -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f22 ; CHECK-NEXT: std r3, 144(r1) # 8-byte Folded Spill -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f23 ; CHECK-NEXT: std r3, 128(r1) # 8-byte Folded Spill -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f24 ; CHECK-NEXT: std r3, 120(r1) # 8-byte Folded Spill -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f25 ; CHECK-NEXT: std r3, 112(r1) # 8-byte Folded Spill -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f26 ; CHECK-NEXT: std r3, 104(r1) # 8-byte Folded Spill -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f27 ; CHECK-NEXT: std r3, 96(r1) # 8-byte Folded Spill -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f28 ; CHECK-NEXT: std r3, 88(r1) # 8-byte Folded Spill -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f29 ; CHECK-NEXT: std r3, 80(r1) # 8-byte Folded Spill -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f30 ; CHECK-NEXT: std r3, 72(r1) # 8-byte Folded Spill -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: fmr f1, f31 ; CHECK-NEXT: std r3, 64(r1) # 8-byte Folded Spill -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: lfs f1, 832(r1) ; CHECK-NEXT: std r3, 56(r1) # 8-byte Folded Spill -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: lfs f1, 840(r1) ; CHECK-NEXT: std r3, 48(r1) # 8-byte Folded Spill -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: lfs f1, 848(r1) ; CHECK-NEXT: mr r15, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: lfs f1, 856(r1) ; CHECK-NEXT: mr r14, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: lfs f1, 864(r1) ; CHECK-NEXT: mr r31, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: lfs f1, 872(r1) ; CHECK-NEXT: mr r29, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: lfs f1, 880(r1) ; CHECK-NEXT: mr r28, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: lfs f1, 888(r1) ; CHECK-NEXT: mr r27, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: lfs f1, 896(r1) ; CHECK-NEXT: mr r26, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: lfs f1, 904(r1) ; CHECK-NEXT: mr r25, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: lfs f1, 912(r1) ; CHECK-NEXT: mr r24, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: lfs f1, 920(r1) ; CHECK-NEXT: mr r23, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: lfs f1, 928(r1) ; CHECK-NEXT: mr r22, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: lfs f1, 936(r1) ; CHECK-NEXT: mr r21, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: lfs f1, 944(r1) ; CHECK-NEXT: mr r20, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: lfs f1, 952(r1) ; CHECK-NEXT: mr r19, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: lfs f1, 960(r1) ; CHECK-NEXT: mr r18, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: lfs f1, 968(r1) ; CHECK-NEXT: mr r17, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: lfs f1, 976(r1) ; CHECK-NEXT: mr r16, r3 -; CHECK-NEXT: bl __gnu_f2h_ieee +; CHECK-NEXT: bl __truncsfhf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r3, 48 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: li r3, 204 ; CHECK-NEXT: stxsspx f1, r1, r3 # 4-byte Folded Spill ; CHECK-NEXT: clrldi r3, r16, 48 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: li r3, 200 ; CHECK-NEXT: stxsspx f1, r1, r3 # 4-byte Folded Spill ; CHECK-NEXT: clrldi r3, r17, 48 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r18, 48 ; CHECK-NEXT: fmr f29, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r19, 48 ; CHECK-NEXT: fmr f28, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r20, 48 ; CHECK-NEXT: fmr f27, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r21, 48 ; CHECK-NEXT: fmr f26, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r22, 48 ; CHECK-NEXT: fmr f25, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r23, 48 ; CHECK-NEXT: fmr f24, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r24, 48 ; CHECK-NEXT: fmr f23, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r25, 48 ; CHECK-NEXT: fmr f22, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r26, 48 ; CHECK-NEXT: fmr f21, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r27, 48 ; CHECK-NEXT: fmr f20, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r28, 48 ; CHECK-NEXT: fmr f19, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r29, 48 ; CHECK-NEXT: fmr f18, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r31, 48 ; CHECK-NEXT: fmr f17, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r14, 48 ; CHECK-NEXT: fmr f16, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: clrldi r3, r15, 48 ; CHECK-NEXT: fmr f15, f1 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: ld r3, 48(r1) # 8-byte Folded Reload ; CHECK-NEXT: fmr f14, f1 ; CHECK-NEXT: clrldi r3, r3, 48 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: ld r3, 56(r1) # 8-byte Folded Reload ; CHECK-NEXT: fmr f30, f1 ; CHECK-NEXT: clrldi r3, r3, 48 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: ld r3, 64(r1) # 8-byte Folded Reload ; CHECK-NEXT: xxlor v30, f1, f1 ; CHECK-NEXT: clrldi r3, r3, 48 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: ld r3, 72(r1) # 8-byte Folded Reload ; CHECK-NEXT: xxlor v29, f1, f1 ; CHECK-NEXT: clrldi r3, r3, 48 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: ld r3, 80(r1) # 8-byte Folded Reload ; CHECK-NEXT: xxlor v28, f1, f1 ; CHECK-NEXT: clrldi r3, r3, 48 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: ld r3, 88(r1) # 8-byte Folded Reload ; CHECK-NEXT: xxlor v27, f1, f1 ; CHECK-NEXT: clrldi r3, r3, 48 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: ld r3, 96(r1) # 8-byte Folded Reload ; CHECK-NEXT: xxlor v26, f1, f1 ; CHECK-NEXT: clrldi r3, r3, 48 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: ld r3, 104(r1) # 8-byte Folded Reload ; CHECK-NEXT: xxlor v25, f1, f1 ; CHECK-NEXT: clrldi r3, r3, 48 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: ld r3, 112(r1) # 8-byte Folded Reload ; CHECK-NEXT: xxlor v24, f1, f1 ; CHECK-NEXT: clrldi r3, r3, 48 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: ld r3, 120(r1) # 8-byte Folded Reload ; CHECK-NEXT: xxlor v23, f1, f1 ; CHECK-NEXT: clrldi r3, r3, 48 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: ld r3, 128(r1) # 8-byte Folded Reload ; CHECK-NEXT: xxlor v22, f1, f1 ; CHECK-NEXT: clrldi r3, r3, 48 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: ld r3, 144(r1) # 8-byte Folded Reload ; CHECK-NEXT: xxlor v21, f1, f1 ; CHECK-NEXT: clrldi r3, r3, 48 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: ld r3, 160(r1) # 8-byte Folded Reload ; CHECK-NEXT: xxlor v20, f1, f1 ; CHECK-NEXT: clrldi r3, r3, 48 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: ld r3, 176(r1) # 8-byte Folded Reload ; CHECK-NEXT: fmr f31, f1 ; CHECK-NEXT: clrldi r3, r3, 48 -; CHECK-NEXT: bl __gnu_h2f_ieee +; CHECK-NEXT: bl __extendhfsf2 ; CHECK-NEXT: nop ; CHECK-NEXT: bl lrintf ; CHECK-NEXT: nop @@ -3211,238 +3211,238 @@ define <32 x i64> @lrint_v32i64_v32f16(<32 x half> %x) { ; FAST-NEXT: xxlor v31, f6, f6 ; FAST-NEXT: stxsspx f1, r1, r4 # 4-byte Folded Spill ; FAST-NEXT: lfs f1, 768(r1) -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: li r3, 120 ; FAST-NEXT: stxsdx f1, r1, r3 # 8-byte Folded Spill ; FAST-NEXT: lfs f1, 760(r1) -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: li r3, 112 ; FAST-NEXT: stxsdx f1, r1, r3 # 8-byte Folded Spill ; FAST-NEXT: lfs f1, 752(r1) -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: li r3, 104 ; FAST-NEXT: stxsdx f1, r1, r3 # 8-byte Folded Spill ; FAST-NEXT: lfs f1, 744(r1) -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: li r3, 96 ; FAST-NEXT: stxsdx f1, r1, r3 # 8-byte Folded Spill ; FAST-NEXT: lfs f1, 736(r1) -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: li r3, 88 ; FAST-NEXT: stxsdx f1, r1, r3 # 8-byte Folded Spill ; FAST-NEXT: lfs f1, 728(r1) -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: li r3, 80 ; FAST-NEXT: stxsdx f1, r1, r3 # 8-byte Folded Spill ; FAST-NEXT: lfs f1, 720(r1) -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: li r3, 72 ; FAST-NEXT: stxsdx f1, r1, r3 # 8-byte Folded Spill ; FAST-NEXT: lfs f1, 712(r1) -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: li r3, 64 ; FAST-NEXT: stxsdx f1, r1, r3 # 8-byte Folded Spill ; FAST-NEXT: lfs f1, 704(r1) -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: li r3, 56 ; FAST-NEXT: stxsdx f1, r1, r3 # 8-byte Folded Spill ; FAST-NEXT: lfs f1, 696(r1) -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: li r3, 48 ; FAST-NEXT: stxsdx f1, r1, r3 # 8-byte Folded Spill ; FAST-NEXT: lfs f1, 688(r1) -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: xxlor v21, f1, f1 ; FAST-NEXT: lfs f1, 680(r1) -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: xxlor v20, f1, f1 ; FAST-NEXT: lfs f1, 672(r1) -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: xxlor v24, f1, f1 ; FAST-NEXT: lfs f1, 664(r1) -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f31, f1 ; FAST-NEXT: lfs f1, 656(r1) -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f30, f1 ; FAST-NEXT: lfs f1, 648(r1) -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f28, f1 ; FAST-NEXT: lfs f1, 640(r1) -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f27, f1 ; FAST-NEXT: lfs f1, 632(r1) -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f26, f1 ; FAST-NEXT: lfs f1, 624(r1) -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f25, f1 ; FAST-NEXT: xxlor f1, v25, v25 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f24, f1 ; FAST-NEXT: xxlor f1, v26, v26 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f23, f1 ; FAST-NEXT: xxlor f1, v27, v27 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f22, f1 ; FAST-NEXT: xxlor f1, v28, v28 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f21, f1 ; FAST-NEXT: fmr f1, f29 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f20, f1 ; FAST-NEXT: xxlor f1, v29, v29 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f19, f1 ; FAST-NEXT: xxlor f1, v30, v30 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f18, f1 ; FAST-NEXT: xxlor f1, v31, v31 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f29, f1 ; FAST-NEXT: fmr f1, f14 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f14, f1 ; FAST-NEXT: fmr f1, f16 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f16, f1 ; FAST-NEXT: xxlor f1, v22, v22 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fmr f17, f1 ; FAST-NEXT: xxlor f1, v23, v23 -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: li r3, 44 ; FAST-NEXT: fmr f15, f1 ; FAST-NEXT: lxsspx f1, r1, r3 # 4-byte Folded Reload -; FAST-NEXT: bl __gnu_f2h_ieee +; FAST-NEXT: bl __truncsfhf2 ; FAST-NEXT: nop ; FAST-NEXT: clrldi r3, r3, 48 -; FAST-NEXT: bl __gnu_h2f_ieee +; FAST-NEXT: bl __extendhfsf2 ; FAST-NEXT: nop ; FAST-NEXT: fctid f3, f15 ; FAST-NEXT: fctid f4, f17 diff --git a/llvm/test/CodeGen/SPARC/fp16-promote.ll b/llvm/test/CodeGen/SPARC/fp16-promote.ll index a15104c7b8cff..efe67b04e8fb3 100644 --- a/llvm/test/CodeGen/SPARC/fp16-promote.ll +++ b/llvm/test/CodeGen/SPARC/fp16-promote.ll @@ -20,7 +20,7 @@ define float @test_fpextend_float(ptr %p) nounwind { ; V8-LABEL: test_fpextend_float: ; V8: ! %bb.0: ; V8-NEXT: save %sp, -96, %sp -; V8-NEXT: call __gnu_h2f_ieee +; V8-NEXT: call __extendhfsf2 ; V8-NEXT: lduh [%i0], %o0 ; V8-NEXT: ret ; V8-NEXT: restore @@ -28,7 +28,7 @@ define float @test_fpextend_float(ptr %p) nounwind { ; V9-LABEL: test_fpextend_float: ; V9: ! %bb.0: ; V9-NEXT: save %sp, -96, %sp -; V9-NEXT: call __gnu_h2f_ieee +; V9-NEXT: call __extendhfsf2 ; V9-NEXT: lduh [%i0], %o0 ; V9-NEXT: ret ; V9-NEXT: restore @@ -36,7 +36,7 @@ define float @test_fpextend_float(ptr %p) nounwind { ; SPARC64-LABEL: test_fpextend_float: ; SPARC64: ! %bb.0: ; SPARC64-NEXT: save %sp, -176, %sp -; SPARC64-NEXT: call __gnu_h2f_ieee +; SPARC64-NEXT: call __extendhfsf2 ; SPARC64-NEXT: lduh [%i0], %o0 ; SPARC64-NEXT: ret ; SPARC64-NEXT: restore @@ -49,7 +49,7 @@ define double @test_fpextend_double(ptr %p) nounwind { ; V8-LABEL: test_fpextend_double: ; V8: ! %bb.0: ; V8-NEXT: save %sp, -96, %sp -; V8-NEXT: call __gnu_h2f_ieee +; V8-NEXT: call __extendhfsf2 ; V8-NEXT: lduh [%i0], %o0 ; V8-NEXT: fstod %f0, %f0 ; V8-NEXT: ret @@ -58,7 +58,7 @@ define double @test_fpextend_double(ptr %p) nounwind { ; V9-LABEL: test_fpextend_double: ; V9: ! %bb.0: ; V9-NEXT: save %sp, -96, %sp -; V9-NEXT: call __gnu_h2f_ieee +; V9-NEXT: call __extendhfsf2 ; V9-NEXT: lduh [%i0], %o0 ; V9-NEXT: fstod %f0, %f0 ; V9-NEXT: ret @@ -67,7 +67,7 @@ define double @test_fpextend_double(ptr %p) nounwind { ; SPARC64-LABEL: test_fpextend_double: ; SPARC64: ! %bb.0: ; SPARC64-NEXT: save %sp, -176, %sp -; SPARC64-NEXT: call __gnu_h2f_ieee +; SPARC64-NEXT: call __extendhfsf2 ; SPARC64-NEXT: lduh [%i0], %o0 ; SPARC64-NEXT: fstod %f0, %f0 ; SPARC64-NEXT: ret @@ -81,7 +81,7 @@ define void @test_fpextend_fp128(ptr %p, ptr %out) nounwind { ; V8-OPT-LABEL: test_fpextend_fp128: ; V8-OPT: ! %bb.0: ; V8-OPT-NEXT: save %sp, -112, %sp -; V8-OPT-NEXT: call __gnu_h2f_ieee +; V8-OPT-NEXT: call __extendhfsf2 ; V8-OPT-NEXT: lduh [%i0], %o0 ; V8-OPT-NEXT: st %f0, [%fp+-20] ; V8-OPT-NEXT: add %fp, -16, %i0 @@ -99,7 +99,7 @@ define void @test_fpextend_fp128(ptr %p, ptr %out) nounwind { ; V8-UNOPT-LABEL: test_fpextend_fp128: ; V8-UNOPT: ! %bb.0: ; V8-UNOPT-NEXT: save %sp, -112, %sp -; V8-UNOPT-NEXT: call __gnu_h2f_ieee +; V8-UNOPT-NEXT: call __extendhfsf2 ; V8-UNOPT-NEXT: lduh [%i0], %o0 ; V8-UNOPT-NEXT: st %f0, [%fp+-20] ; V8-UNOPT-NEXT: add %fp, -16, %i0 @@ -125,7 +125,7 @@ define void @test_fpextend_fp128(ptr %p, ptr %out) nounwind { ; V9-LABEL: test_fpextend_fp128: ; V9: ! %bb.0: ; V9-NEXT: save %sp, -112, %sp -; V9-NEXT: call __gnu_h2f_ieee +; V9-NEXT: call __extendhfsf2 ; V9-NEXT: lduh [%i0], %o0 ; V9-NEXT: st %f0, [%fp+-20] ; V9-NEXT: add %fp, -16, %i0 @@ -143,7 +143,7 @@ define void @test_fpextend_fp128(ptr %p, ptr %out) nounwind { ; SPARC64-LABEL: test_fpextend_fp128: ; SPARC64: ! %bb.0: ; SPARC64-NEXT: save %sp, -192, %sp -; SPARC64-NEXT: call __gnu_h2f_ieee +; SPARC64-NEXT: call __extendhfsf2 ; SPARC64-NEXT: lduh [%i0], %o0 ; SPARC64-NEXT: add %fp, 2031, %o0 ; SPARC64-NEXT: fmovs %f0, %f3 @@ -165,7 +165,7 @@ define void @test_fptrunc_float(float %f, ptr %p) nounwind { ; V8-OPT-LABEL: test_fptrunc_float: ; V8-OPT: ! %bb.0: ; V8-OPT-NEXT: save %sp, -96, %sp -; V8-OPT-NEXT: call __gnu_f2h_ieee +; V8-OPT-NEXT: call __truncsfhf2 ; V8-OPT-NEXT: mov %i0, %o0 ; V8-OPT-NEXT: sth %o0, [%i1] ; V8-OPT-NEXT: ret @@ -176,7 +176,7 @@ define void @test_fptrunc_float(float %f, ptr %p) nounwind { ; V8-UNOPT-NEXT: save %sp, -96, %sp ; V8-UNOPT-NEXT: mov %i0, %o0 ; V8-UNOPT-NEXT: st %o0, [%fp+-4] -; V8-UNOPT-NEXT: call __gnu_f2h_ieee +; V8-UNOPT-NEXT: call __truncsfhf2 ; V8-UNOPT-NEXT: ld [%fp+-4], %f0 ; V8-UNOPT-NEXT: sth %o0, [%i1] ; V8-UNOPT-NEXT: ret @@ -185,7 +185,7 @@ define void @test_fptrunc_float(float %f, ptr %p) nounwind { ; V9-LABEL: test_fptrunc_float: ; V9: ! %bb.0: ; V9-NEXT: save %sp, -96, %sp -; V9-NEXT: call __gnu_f2h_ieee +; V9-NEXT: call __truncsfhf2 ; V9-NEXT: mov %i0, %o0 ; V9-NEXT: sth %o0, [%i1] ; V9-NEXT: ret @@ -194,7 +194,7 @@ define void @test_fptrunc_float(float %f, ptr %p) nounwind { ; SPARC64-LABEL: test_fptrunc_float: ; SPARC64: ! %bb.0: ; SPARC64-NEXT: save %sp, -176, %sp -; SPARC64-NEXT: call __gnu_f2h_ieee +; SPARC64-NEXT: call __truncsfhf2 ; SPARC64-NEXT: nop ; SPARC64-NEXT: sth %o0, [%i1] ; SPARC64-NEXT: ret @@ -329,15 +329,15 @@ define void @test_fadd(ptr %p, ptr %q) nounwind { ; V8-OPT-LABEL: test_fadd: ; V8-OPT: ! %bb.0: ; V8-OPT-NEXT: save %sp, -104, %sp -; V8-OPT-NEXT: call __gnu_h2f_ieee +; V8-OPT-NEXT: call __extendhfsf2 ; V8-OPT-NEXT: lduh [%i0], %o0 ; V8-OPT-NEXT: st %f0, [%fp+-8] ! 4-byte Folded Spill -; V8-OPT-NEXT: call __gnu_h2f_ieee +; V8-OPT-NEXT: call __extendhfsf2 ; V8-OPT-NEXT: lduh [%i1], %o0 ; V8-OPT-NEXT: ld [%fp+-8], %f1 ! 4-byte Folded Reload ; V8-OPT-NEXT: fadds %f1, %f0, %f0 ; V8-OPT-NEXT: st %f0, [%fp+-4] -; V8-OPT-NEXT: call __gnu_f2h_ieee +; V8-OPT-NEXT: call __truncsfhf2 ; V8-OPT-NEXT: ld [%fp+-4], %o0 ; V8-OPT-NEXT: sth %o0, [%i0] ; V8-OPT-NEXT: ret @@ -346,16 +346,16 @@ define void @test_fadd(ptr %p, ptr %q) nounwind { ; V8-UNOPT-LABEL: test_fadd: ; V8-UNOPT: ! %bb.0: ; V8-UNOPT-NEXT: save %sp, -104, %sp -; V8-UNOPT-NEXT: call __gnu_h2f_ieee +; V8-UNOPT-NEXT: call __extendhfsf2 ; V8-UNOPT-NEXT: lduh [%i0], %o0 ; V8-UNOPT-NEXT: st %f0, [%fp+-8] ! 4-byte Folded Spill -; V8-UNOPT-NEXT: call __gnu_h2f_ieee +; V8-UNOPT-NEXT: call __extendhfsf2 ; V8-UNOPT-NEXT: lduh [%i1], %o0 ; V8-UNOPT-NEXT: fmovs %f0, %f1 ; V8-UNOPT-NEXT: ld [%fp+-8], %f0 ! 4-byte Folded Reload ; V8-UNOPT-NEXT: fadds %f0, %f1, %f0 ; V8-UNOPT-NEXT: st %f0, [%fp+-4] -; V8-UNOPT-NEXT: call __gnu_f2h_ieee +; V8-UNOPT-NEXT: call __truncsfhf2 ; V8-UNOPT-NEXT: ld [%fp+-4], %o0 ; V8-UNOPT-NEXT: sth %o0, [%i0] ; V8-UNOPT-NEXT: ret @@ -364,15 +364,15 @@ define void @test_fadd(ptr %p, ptr %q) nounwind { ; V9-LABEL: test_fadd: ; V9: ! %bb.0: ; V9-NEXT: save %sp, -104, %sp -; V9-NEXT: call __gnu_h2f_ieee +; V9-NEXT: call __extendhfsf2 ; V9-NEXT: lduh [%i0], %o0 ; V9-NEXT: st %f0, [%fp+-8] ! 4-byte Folded Spill -; V9-NEXT: call __gnu_h2f_ieee +; V9-NEXT: call __extendhfsf2 ; V9-NEXT: lduh [%i1], %o0 ; V9-NEXT: ld [%fp+-8], %f1 ! 4-byte Folded Reload ; V9-NEXT: fadds %f1, %f0, %f0 ; V9-NEXT: st %f0, [%fp+-4] -; V9-NEXT: call __gnu_f2h_ieee +; V9-NEXT: call __truncsfhf2 ; V9-NEXT: ld [%fp+-4], %o0 ; V9-NEXT: sth %o0, [%i0] ; V9-NEXT: ret @@ -381,13 +381,13 @@ define void @test_fadd(ptr %p, ptr %q) nounwind { ; SPARC64-LABEL: test_fadd: ; SPARC64: ! %bb.0: ; SPARC64-NEXT: save %sp, -192, %sp -; SPARC64-NEXT: call __gnu_h2f_ieee +; SPARC64-NEXT: call __extendhfsf2 ; SPARC64-NEXT: lduh [%i0], %o0 ; SPARC64-NEXT: st %f0, [%fp+2043] ! 4-byte Folded Spill -; SPARC64-NEXT: call __gnu_h2f_ieee +; SPARC64-NEXT: call __extendhfsf2 ; SPARC64-NEXT: lduh [%i1], %o0 ; SPARC64-NEXT: ld [%fp+2043], %f1 ! 4-byte Folded Reload -; SPARC64-NEXT: call __gnu_f2h_ieee +; SPARC64-NEXT: call __truncsfhf2 ; SPARC64-NEXT: fadds %f1, %f0, %f1 ; SPARC64-NEXT: sth %o0, [%i0] ; SPARC64-NEXT: ret @@ -403,15 +403,15 @@ define void @test_fmul(ptr %p, ptr %q) nounwind { ; V8-OPT-LABEL: test_fmul: ; V8-OPT: ! %bb.0: ; V8-OPT-NEXT: save %sp, -104, %sp -; V8-OPT-NEXT: call __gnu_h2f_ieee +; V8-OPT-NEXT: call __extendhfsf2 ; V8-OPT-NEXT: lduh [%i0], %o0 ; V8-OPT-NEXT: st %f0, [%fp+-8] ! 4-byte Folded Spill -; V8-OPT-NEXT: call __gnu_h2f_ieee +; V8-OPT-NEXT: call __extendhfsf2 ; V8-OPT-NEXT: lduh [%i1], %o0 ; V8-OPT-NEXT: ld [%fp+-8], %f1 ! 4-byte Folded Reload ; V8-OPT-NEXT: fmuls %f1, %f0, %f0 ; V8-OPT-NEXT: st %f0, [%fp+-4] -; V8-OPT-NEXT: call __gnu_f2h_ieee +; V8-OPT-NEXT: call __truncsfhf2 ; V8-OPT-NEXT: ld [%fp+-4], %o0 ; V8-OPT-NEXT: sth %o0, [%i0] ; V8-OPT-NEXT: ret @@ -420,16 +420,16 @@ define void @test_fmul(ptr %p, ptr %q) nounwind { ; V8-UNOPT-LABEL: test_fmul: ; V8-UNOPT: ! %bb.0: ; V8-UNOPT-NEXT: save %sp, -104, %sp -; V8-UNOPT-NEXT: call __gnu_h2f_ieee +; V8-UNOPT-NEXT: call __extendhfsf2 ; V8-UNOPT-NEXT: lduh [%i0], %o0 ; V8-UNOPT-NEXT: st %f0, [%fp+-8] ! 4-byte Folded Spill -; V8-UNOPT-NEXT: call __gnu_h2f_ieee +; V8-UNOPT-NEXT: call __extendhfsf2 ; V8-UNOPT-NEXT: lduh [%i1], %o0 ; V8-UNOPT-NEXT: fmovs %f0, %f1 ; V8-UNOPT-NEXT: ld [%fp+-8], %f0 ! 4-byte Folded Reload ; V8-UNOPT-NEXT: fmuls %f0, %f1, %f0 ; V8-UNOPT-NEXT: st %f0, [%fp+-4] -; V8-UNOPT-NEXT: call __gnu_f2h_ieee +; V8-UNOPT-NEXT: call __truncsfhf2 ; V8-UNOPT-NEXT: ld [%fp+-4], %o0 ; V8-UNOPT-NEXT: sth %o0, [%i0] ; V8-UNOPT-NEXT: ret @@ -438,15 +438,15 @@ define void @test_fmul(ptr %p, ptr %q) nounwind { ; V9-LABEL: test_fmul: ; V9: ! %bb.0: ; V9-NEXT: save %sp, -104, %sp -; V9-NEXT: call __gnu_h2f_ieee +; V9-NEXT: call __extendhfsf2 ; V9-NEXT: lduh [%i0], %o0 ; V9-NEXT: st %f0, [%fp+-8] ! 4-byte Folded Spill -; V9-NEXT: call __gnu_h2f_ieee +; V9-NEXT: call __extendhfsf2 ; V9-NEXT: lduh [%i1], %o0 ; V9-NEXT: ld [%fp+-8], %f1 ! 4-byte Folded Reload ; V9-NEXT: fmuls %f1, %f0, %f0 ; V9-NEXT: st %f0, [%fp+-4] -; V9-NEXT: call __gnu_f2h_ieee +; V9-NEXT: call __truncsfhf2 ; V9-NEXT: ld [%fp+-4], %o0 ; V9-NEXT: sth %o0, [%i0] ; V9-NEXT: ret @@ -455,13 +455,13 @@ define void @test_fmul(ptr %p, ptr %q) nounwind { ; SPARC64-LABEL: test_fmul: ; SPARC64: ! %bb.0: ; SPARC64-NEXT: save %sp, -192, %sp -; SPARC64-NEXT: call __gnu_h2f_ieee +; SPARC64-NEXT: call __extendhfsf2 ; SPARC64-NEXT: lduh [%i0], %o0 ; SPARC64-NEXT: st %f0, [%fp+2043] ! 4-byte Folded Spill -; SPARC64-NEXT: call __gnu_h2f_ieee +; SPARC64-NEXT: call __extendhfsf2 ; SPARC64-NEXT: lduh [%i1], %o0 ; SPARC64-NEXT: ld [%fp+2043], %f1 ! 4-byte Folded Reload -; SPARC64-NEXT: call __gnu_f2h_ieee +; SPARC64-NEXT: call __truncsfhf2 ; SPARC64-NEXT: fmuls %f1, %f0, %f1 ; SPARC64-NEXT: sth %o0, [%i0] ; SPARC64-NEXT: ret diff --git a/llvm/test/CodeGen/VE/Scalar/fp_extload_truncstore.ll b/llvm/test/CodeGen/VE/Scalar/fp_extload_truncstore.ll index 4e30778d5c158..f105966bc4d08 100644 --- a/llvm/test/CodeGen/VE/Scalar/fp_extload_truncstore.ll +++ b/llvm/test/CodeGen/VE/Scalar/fp_extload_truncstore.ll @@ -26,9 +26,9 @@ define float @func_i16fp32(ptr %a) { ; CHECK-NEXT: or %s0, 0, %s62 ; CHECK-NEXT: .LBB0_2: ; CHECK-NEXT: ld2b.zx %s0, (, %s0) -; CHECK-NEXT: lea %s1, __gnu_h2f_ieee@lo +; CHECK-NEXT: lea %s1, __extendhfsf2@lo ; CHECK-NEXT: and %s1, %s1, (32)0 -; CHECK-NEXT: lea.sl %s12, __gnu_h2f_ieee@hi(, %s1) +; CHECK-NEXT: lea.sl %s12, __extendhfsf2@hi(, %s1) ; CHECK-NEXT: bsic %s10, (, %s12) ; CHECK-NEXT: or %s11, 0, %s9 ; CHECK-NEXT: ld %s10, 8(, %s11) @@ -58,9 +58,9 @@ define double @func_i16fp64(ptr %a) { ; CHECK-NEXT: or %s0, 0, %s62 ; CHECK-NEXT: .LBB1_2: ; CHECK-NEXT: ld2b.zx %s0, (, %s0) -; CHECK-NEXT: lea %s1, __gnu_h2f_ieee@lo +; CHECK-NEXT: lea %s1, __extendhfsf2@lo ; CHECK-NEXT: and %s1, %s1, (32)0 -; CHECK-NEXT: lea.sl %s12, __gnu_h2f_ieee@hi(, %s1) +; CHECK-NEXT: lea.sl %s12, __extendhfsf2@hi(, %s1) ; CHECK-NEXT: bsic %s10, (, %s12) ; CHECK-NEXT: cvt.d.s %s0, %s0 ; CHECK-NEXT: or %s11, 0, %s9 @@ -91,9 +91,9 @@ define float @func_fp16fp32(ptr %a) { ; CHECK-NEXT: or %s0, 0, %s62 ; CHECK-NEXT: .LBB2_2: ; CHECK-NEXT: ld2b.zx %s0, (, %s0) -; CHECK-NEXT: lea %s1, __gnu_h2f_ieee@lo +; CHECK-NEXT: lea %s1, __extendhfsf2@lo ; CHECK-NEXT: and %s1, %s1, (32)0 -; CHECK-NEXT: lea.sl %s12, __gnu_h2f_ieee@hi(, %s1) +; CHECK-NEXT: lea.sl %s12, __extendhfsf2@hi(, %s1) ; CHECK-NEXT: bsic %s10, (, %s12) ; CHECK-NEXT: or %s11, 0, %s9 ; CHECK-NEXT: ld %s10, 8(, %s11) @@ -123,9 +123,9 @@ define double @func_fp16fp64(ptr %a) { ; CHECK-NEXT: or %s0, 0, %s62 ; CHECK-NEXT: .LBB3_2: ; CHECK-NEXT: ld2b.zx %s0, (, %s0) -; CHECK-NEXT: lea %s1, __gnu_h2f_ieee@lo +; CHECK-NEXT: lea %s1, __extendhfsf2@lo ; CHECK-NEXT: and %s1, %s1, (32)0 -; CHECK-NEXT: lea.sl %s12, __gnu_h2f_ieee@hi(, %s1) +; CHECK-NEXT: lea.sl %s12, __extendhfsf2@hi(, %s1) ; CHECK-NEXT: bsic %s10, (, %s12) ; CHECK-NEXT: cvt.d.s %s0, %s0 ; CHECK-NEXT: or %s11, 0, %s9 @@ -157,9 +157,9 @@ define void @func_fp32i16(ptr %fl.ptr, float %val) { ; CHECK-NEXT: .LBB4_2: ; CHECK-NEXT: st %s18, 288(, %s11) # 8-byte Folded Spill ; CHECK-NEXT: or %s18, 0, %s0 -; CHECK-NEXT: lea %s0, __gnu_f2h_ieee@lo +; CHECK-NEXT: lea %s0, __truncsfhf2@lo ; CHECK-NEXT: and %s0, %s0, (32)0 -; CHECK-NEXT: lea.sl %s12, __gnu_f2h_ieee@hi(, %s0) +; CHECK-NEXT: lea.sl %s12, __truncsfhf2@hi(, %s0) ; CHECK-NEXT: or %s0, 0, %s1 ; CHECK-NEXT: bsic %s10, (, %s12) ; CHECK-NEXT: st2b %s0, (, %s18) @@ -194,15 +194,15 @@ define half @func_fp32fp16(ptr %fl.ptr, float %a) { ; CHECK-NEXT: st %s18, 288(, %s11) # 8-byte Folded Spill ; CHECK-NEXT: st %s19, 296(, %s11) # 8-byte Folded Spill ; CHECK-NEXT: or %s18, 0, %s0 -; CHECK-NEXT: lea %s0, __gnu_f2h_ieee@lo +; CHECK-NEXT: lea %s0, __truncsfhf2@lo ; CHECK-NEXT: and %s0, %s0, (32)0 -; CHECK-NEXT: lea.sl %s12, __gnu_f2h_ieee@hi(, %s0) +; CHECK-NEXT: lea.sl %s12, __truncsfhf2@hi(, %s0) ; CHECK-NEXT: or %s0, 0, %s1 ; CHECK-NEXT: bsic %s10, (, %s12) ; CHECK-NEXT: or %s19, 0, %s0 -; CHECK-NEXT: lea %s0, __gnu_h2f_ieee@lo +; CHECK-NEXT: lea %s0, __extendhfsf2@lo ; CHECK-NEXT: and %s0, %s0, (32)0 -; CHECK-NEXT: lea.sl %s12, __gnu_h2f_ieee@hi(, %s0) +; CHECK-NEXT: lea.sl %s12, __extendhfsf2@hi(, %s0) ; CHECK-NEXT: or %s0, 0, %s19 ; CHECK-NEXT: bsic %s10, (, %s12) ; CHECK-NEXT: st2b %s19, (, %s18) diff --git a/llvm/test/CodeGen/X86/cvt16.ll b/llvm/test/CodeGen/X86/cvt16.ll index c6c088297c0ea..db615c8065d03 100644 --- a/llvm/test/CodeGen/X86/cvt16.ll +++ b/llvm/test/CodeGen/X86/cvt16.ll @@ -41,7 +41,7 @@ define void @test1(float %src, ptr %dest) nounwind { ; SOFTFLOAT: # %bb.0: ; SOFTFLOAT-NEXT: pushq %rbx ; SOFTFLOAT-NEXT: movq %rsi, %rbx -; SOFTFLOAT-NEXT: callq __gnu_f2h_ieee@PLT +; SOFTFLOAT-NEXT: callq __truncsfhf2@PLT ; SOFTFLOAT-NEXT: movw %ax, (%rbx) ; SOFTFLOAT-NEXT: popq %rbx ; SOFTFLOAT-NEXT: retq @@ -66,7 +66,7 @@ define float @test2(ptr nocapture %src) nounwind { ; SOFTFLOAT: # %bb.0: ; SOFTFLOAT-NEXT: pushq %rax ; SOFTFLOAT-NEXT: movzwl (%rdi), %edi -; SOFTFLOAT-NEXT: callq __gnu_h2f_ieee@PLT +; SOFTFLOAT-NEXT: callq __extendhfsf2@PLT ; SOFTFLOAT-NEXT: popq %rcx ; SOFTFLOAT-NEXT: retq %1 = load i16, ptr %src, align 2 @@ -94,9 +94,9 @@ define float @test3(float %src) nounwind uwtable readnone { ; SOFTFLOAT: # %bb.0: ; SOFTFLOAT-NEXT: pushq %rax ; SOFTFLOAT-NEXT: .cfi_def_cfa_offset 16 -; SOFTFLOAT-NEXT: callq __gnu_f2h_ieee@PLT +; SOFTFLOAT-NEXT: callq __truncsfhf2@PLT ; SOFTFLOAT-NEXT: movzwl %ax, %edi -; SOFTFLOAT-NEXT: callq __gnu_h2f_ieee@PLT +; SOFTFLOAT-NEXT: callq __extendhfsf2@PLT ; SOFTFLOAT-NEXT: popq %rcx ; SOFTFLOAT-NEXT: .cfi_def_cfa_offset 8 ; SOFTFLOAT-NEXT: retq @@ -126,7 +126,7 @@ define double @test4(ptr nocapture %src) nounwind { ; SOFTFLOAT: # %bb.0: ; SOFTFLOAT-NEXT: pushq %rax ; SOFTFLOAT-NEXT: movzwl (%rdi), %edi -; SOFTFLOAT-NEXT: callq __gnu_h2f_ieee@PLT +; SOFTFLOAT-NEXT: callq __extendhfsf2@PLT ; SOFTFLOAT-NEXT: movl %eax, %edi ; SOFTFLOAT-NEXT: callq __extendsfdf2@PLT ; SOFTFLOAT-NEXT: popq %rcx diff --git a/llvm/test/CodeGen/X86/fmf-flags.ll b/llvm/test/CodeGen/X86/fmf-flags.ll index 24dabfc18b9e3..16ebf70126f8b 100644 --- a/llvm/test/CodeGen/X86/fmf-flags.ll +++ b/llvm/test/CodeGen/X86/fmf-flags.ll @@ -124,13 +124,13 @@ define dso_local float @div_arcp_by_const(half %x) { ; X86-NEXT: .cfi_def_cfa_offset 8 ; X86-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; X86-NEXT: movl %eax, (%esp) -; X86-NEXT: calll __gnu_h2f_ieee +; X86-NEXT: calll __extendhfsf2 ; X86-NEXT: fmuls {{\.?LCPI[0-9]+_[0-9]+}} ; X86-NEXT: fstps (%esp) -; X86-NEXT: calll __gnu_f2h_ieee +; X86-NEXT: calll __truncsfhf2 ; X86-NEXT: movzwl %ax, %eax ; X86-NEXT: movl %eax, (%esp) -; X86-NEXT: calll __gnu_h2f_ieee +; X86-NEXT: calll __extendhfsf2 ; X86-NEXT: popl %eax ; X86-NEXT: .cfi_def_cfa_offset 4 ; X86-NEXT: retl diff --git a/llvm/test/CodeGen/X86/fp-i129.ll b/llvm/test/CodeGen/X86/fp-i129.ll index 97116ce4e621f..c55c19abbd9b8 100644 --- a/llvm/test/CodeGen/X86/fp-i129.ll +++ b/llvm/test/CodeGen/X86/fp-i129.ll @@ -96,7 +96,7 @@ define i257 @fptosi257_double(double %a) nounwind { ; half tests define i257 @fptosi_half(half %a) nounwind { ; X86-LABEL: fptosi_half: -; X86: __gnu_h2f_ieee +; X86: __extendhfsf2 ; ; X64-LABEL: fptosi_half: ; X64: __extendhfsf2 @@ -106,7 +106,7 @@ define i257 @fptosi_half(half %a) nounwind { define half @uitofp_half(i257 %a) nounwind { ; X86-LABEL: uitofp_half: -; X86: __gnu_f2h_ieee +; X86: __truncsfhf2 ; ; X64-LABEL: uitofp_half: ; X64: __truncsfhf2 diff --git a/llvm/test/CodeGen/X86/fp128-cast-strict.ll b/llvm/test/CodeGen/X86/fp128-cast-strict.ll index f141153d059ac..707b05f3478db 100644 --- a/llvm/test/CodeGen/X86/fp128-cast-strict.ll +++ b/llvm/test/CodeGen/X86/fp128-cast-strict.ll @@ -28,7 +28,7 @@ define dso_local void @TestFPExtF16_F128() nounwind strictfp { ; X64-AVX512-LABEL: TestFPExtF16_F128: ; X64-AVX512: # %bb.0: # %entry ; X64-AVX512-NEXT: pushq %rax -; X64-AVX512-NEXT: vmovsh vf16(%rip), %xmm0 +; X64-AVX512-NEXT: vmovsh {{.*#+}} xmm0 = mem[0],zero,zero,zero,zero,zero,zero,zero ; X64-AVX512-NEXT: callq __extendhftf2@PLT ; X64-AVX512-NEXT: vmovaps %xmm0, vf128(%rip) ; X64-AVX512-NEXT: popq %rax @@ -40,7 +40,7 @@ define dso_local void @TestFPExtF16_F128() nounwind strictfp { ; X86-NEXT: subl $40, %esp ; X86-NEXT: movzwl vf16, %eax ; X86-NEXT: movl %eax, (%esp) -; X86-NEXT: calll __gnu_h2f_ieee +; X86-NEXT: calll __extendhfsf2 ; X86-NEXT: fstps {{[0-9]+}}(%esp) ; X86-NEXT: wait ; X86-NEXT: leal {{[0-9]+}}(%esp), %eax diff --git a/llvm/test/CodeGen/X86/fptosi-sat-scalar.ll b/llvm/test/CodeGen/X86/fptosi-sat-scalar.ll index 04fce7badb951..85f4c945230e1 100644 --- a/llvm/test/CodeGen/X86/fptosi-sat-scalar.ll +++ b/llvm/test/CodeGen/X86/fptosi-sat-scalar.ll @@ -2060,7 +2060,7 @@ define i1 @test_signed_i1_f16(half %f) nounwind { ; X86-X87-NEXT: subl $24, %esp ; X86-X87-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; X86-X87-NEXT: movl %eax, (%esp) -; X86-X87-NEXT: calll __gnu_h2f_ieee +; X86-X87-NEXT: calll __extendhfsf2 ; X86-X87-NEXT: fnstcw {{[0-9]+}}(%esp) ; X86-X87-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; X86-X87-NEXT: orl $3072, %eax # imm = 0xC00 @@ -2158,7 +2158,7 @@ define i8 @test_signed_i8_f16(half %f) nounwind { ; X86-X87-NEXT: subl $12, %esp ; X86-X87-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; X86-X87-NEXT: movl %eax, (%esp) -; X86-X87-NEXT: calll __gnu_h2f_ieee +; X86-X87-NEXT: calll __extendhfsf2 ; X86-X87-NEXT: fnstcw {{[0-9]+}}(%esp) ; X86-X87-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; X86-X87-NEXT: orl $3072, %eax # imm = 0xC00 @@ -2253,7 +2253,7 @@ define i13 @test_signed_i13_f16(half %f) nounwind { ; X86-X87-NEXT: subl $12, %esp ; X86-X87-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; X86-X87-NEXT: movl %eax, (%esp) -; X86-X87-NEXT: calll __gnu_h2f_ieee +; X86-X87-NEXT: calll __extendhfsf2 ; X86-X87-NEXT: fnstcw {{[0-9]+}}(%esp) ; X86-X87-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; X86-X87-NEXT: orl $3072, %eax # imm = 0xC00 @@ -2349,7 +2349,7 @@ define i16 @test_signed_i16_f16(half %f) nounwind { ; X86-X87-NEXT: subl $12, %esp ; X86-X87-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; X86-X87-NEXT: movl %eax, (%esp) -; X86-X87-NEXT: calll __gnu_h2f_ieee +; X86-X87-NEXT: calll __extendhfsf2 ; X86-X87-NEXT: fnstcw {{[0-9]+}}(%esp) ; X86-X87-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; X86-X87-NEXT: orl $3072, %eax # imm = 0xC00 @@ -2445,7 +2445,7 @@ define i19 @test_signed_i19_f16(half %f) nounwind { ; X86-X87-NEXT: subl $12, %esp ; X86-X87-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; X86-X87-NEXT: movl %eax, (%esp) -; X86-X87-NEXT: calll __gnu_h2f_ieee +; X86-X87-NEXT: calll __extendhfsf2 ; X86-X87-NEXT: fnstcw {{[0-9]+}}(%esp) ; X86-X87-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; X86-X87-NEXT: orl $3072, %eax # imm = 0xC00 @@ -2538,7 +2538,7 @@ define i32 @test_signed_i32_f16(half %f) nounwind { ; X86-X87-NEXT: subl $12, %esp ; X86-X87-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; X86-X87-NEXT: movl %eax, (%esp) -; X86-X87-NEXT: calll __gnu_h2f_ieee +; X86-X87-NEXT: calll __extendhfsf2 ; X86-X87-NEXT: fnstcw {{[0-9]+}}(%esp) ; X86-X87-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; X86-X87-NEXT: orl $3072, %eax # imm = 0xC00 @@ -2633,7 +2633,7 @@ define i50 @test_signed_i50_f16(half %f) nounwind { ; X86-X87-NEXT: subl $20, %esp ; X86-X87-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; X86-X87-NEXT: movl %eax, (%esp) -; X86-X87-NEXT: calll __gnu_h2f_ieee +; X86-X87-NEXT: calll __extendhfsf2 ; X86-X87-NEXT: fnstcw {{[0-9]+}}(%esp) ; X86-X87-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; X86-X87-NEXT: orl $3072, %eax # imm = 0xC00 @@ -2758,7 +2758,7 @@ define i64 @test_signed_i64_f16(half %f) nounwind { ; X86-X87-NEXT: subl $20, %esp ; X86-X87-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; X86-X87-NEXT: movl %eax, (%esp) -; X86-X87-NEXT: calll __gnu_h2f_ieee +; X86-X87-NEXT: calll __extendhfsf2 ; X86-X87-NEXT: fnstcw {{[0-9]+}}(%esp) ; X86-X87-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; X86-X87-NEXT: orl $3072, %eax # imm = 0xC00 @@ -2885,7 +2885,7 @@ define i100 @test_signed_i100_f16(half %f) nounwind { ; X86-X87-NEXT: subl $60, %esp ; X86-X87-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; X86-X87-NEXT: movl %eax, (%esp) -; X86-X87-NEXT: calll __gnu_h2f_ieee +; X86-X87-NEXT: calll __extendhfsf2 ; X86-X87-NEXT: leal {{[0-9]+}}(%esp), %eax ; X86-X87-NEXT: movl %eax, (%esp) ; X86-X87-NEXT: fsts {{[0-9]+}}(%esp) @@ -3064,7 +3064,7 @@ define i128 @test_signed_i128_f16(half %f) nounwind { ; X86-X87-NEXT: subl $60, %esp ; X86-X87-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; X86-X87-NEXT: movl %eax, (%esp) -; X86-X87-NEXT: calll __gnu_h2f_ieee +; X86-X87-NEXT: calll __extendhfsf2 ; X86-X87-NEXT: leal {{[0-9]+}}(%esp), %eax ; X86-X87-NEXT: movl %eax, (%esp) ; X86-X87-NEXT: fsts {{[0-9]+}}(%esp) diff --git a/llvm/test/CodeGen/X86/fptoui-sat-scalar.ll b/llvm/test/CodeGen/X86/fptoui-sat-scalar.ll index fefc92c313511..47dc3ca3616ea 100644 --- a/llvm/test/CodeGen/X86/fptoui-sat-scalar.ll +++ b/llvm/test/CodeGen/X86/fptoui-sat-scalar.ll @@ -1883,7 +1883,7 @@ define i1 @test_unsigned_i1_f16(half %f) nounwind { ; X86-X87-NEXT: subl $12, %esp ; X86-X87-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; X86-X87-NEXT: movl %eax, (%esp) -; X86-X87-NEXT: calll __gnu_h2f_ieee +; X86-X87-NEXT: calll __extendhfsf2 ; X86-X87-NEXT: fnstcw {{[0-9]+}}(%esp) ; X86-X87-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; X86-X87-NEXT: orl $3072, %eax # imm = 0xC00 @@ -1965,7 +1965,7 @@ define i8 @test_unsigned_i8_f16(half %f) nounwind { ; X86-X87-NEXT: subl $12, %esp ; X86-X87-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; X86-X87-NEXT: movl %eax, (%esp) -; X86-X87-NEXT: calll __gnu_h2f_ieee +; X86-X87-NEXT: calll __extendhfsf2 ; X86-X87-NEXT: fnstcw {{[0-9]+}}(%esp) ; X86-X87-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; X86-X87-NEXT: orl $3072, %eax # imm = 0xC00 @@ -2047,7 +2047,7 @@ define i13 @test_unsigned_i13_f16(half %f) nounwind { ; X86-X87-NEXT: subl $12, %esp ; X86-X87-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; X86-X87-NEXT: movl %eax, (%esp) -; X86-X87-NEXT: calll __gnu_h2f_ieee +; X86-X87-NEXT: calll __extendhfsf2 ; X86-X87-NEXT: fnstcw {{[0-9]+}}(%esp) ; X86-X87-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; X86-X87-NEXT: orl $3072, %eax # imm = 0xC00 @@ -2128,7 +2128,7 @@ define i16 @test_unsigned_i16_f16(half %f) nounwind { ; X86-X87-NEXT: subl $12, %esp ; X86-X87-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; X86-X87-NEXT: movl %eax, (%esp) -; X86-X87-NEXT: calll __gnu_h2f_ieee +; X86-X87-NEXT: calll __extendhfsf2 ; X86-X87-NEXT: fnstcw {{[0-9]+}}(%esp) ; X86-X87-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; X86-X87-NEXT: orl $3072, %eax # imm = 0xC00 @@ -2209,7 +2209,7 @@ define i19 @test_unsigned_i19_f16(half %f) nounwind { ; X86-X87-NEXT: subl $28, %esp ; X86-X87-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; X86-X87-NEXT: movl %eax, (%esp) -; X86-X87-NEXT: calll __gnu_h2f_ieee +; X86-X87-NEXT: calll __extendhfsf2 ; X86-X87-NEXT: fnstcw {{[0-9]+}}(%esp) ; X86-X87-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; X86-X87-NEXT: orl $3072, %eax # imm = 0xC00 @@ -2295,7 +2295,7 @@ define i32 @test_unsigned_i32_f16(half %f) nounwind { ; X86-X87-NEXT: subl $28, %esp ; X86-X87-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; X86-X87-NEXT: movl %eax, (%esp) -; X86-X87-NEXT: calll __gnu_h2f_ieee +; X86-X87-NEXT: calll __extendhfsf2 ; X86-X87-NEXT: fnstcw {{[0-9]+}}(%esp) ; X86-X87-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; X86-X87-NEXT: orl $3072, %eax # imm = 0xC00 @@ -2382,7 +2382,7 @@ define i50 @test_unsigned_i50_f16(half %f) nounwind { ; X86-X87-NEXT: subl $24, %esp ; X86-X87-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; X86-X87-NEXT: movl %eax, (%esp) -; X86-X87-NEXT: calll __gnu_h2f_ieee +; X86-X87-NEXT: calll __extendhfsf2 ; X86-X87-NEXT: flds {{\.?LCPI[0-9]+_[0-9]+}} ; X86-X87-NEXT: fxch %st(1) ; X86-X87-NEXT: fucom %st(1) @@ -2526,7 +2526,7 @@ define i64 @test_unsigned_i64_f16(half %f) nounwind { ; X86-X87-NEXT: subl $20, %esp ; X86-X87-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; X86-X87-NEXT: movl %eax, (%esp) -; X86-X87-NEXT: calll __gnu_h2f_ieee +; X86-X87-NEXT: calll __extendhfsf2 ; X86-X87-NEXT: flds {{\.?LCPI[0-9]+_[0-9]+}} ; X86-X87-NEXT: fxch %st(1) ; X86-X87-NEXT: fucom %st(1) @@ -2667,7 +2667,7 @@ define i100 @test_unsigned_i100_f16(half %f) nounwind { ; X86-X87-NEXT: subl $44, %esp ; X86-X87-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; X86-X87-NEXT: movl %eax, (%esp) -; X86-X87-NEXT: calll __gnu_h2f_ieee +; X86-X87-NEXT: calll __extendhfsf2 ; X86-X87-NEXT: leal {{[0-9]+}}(%esp), %eax ; X86-X87-NEXT: movl %eax, (%esp) ; X86-X87-NEXT: fsts {{[0-9]+}}(%esp) @@ -2821,7 +2821,7 @@ define i128 @test_unsigned_i128_f16(half %f) nounwind { ; X86-X87-NEXT: subl $60, %esp ; X86-X87-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; X86-X87-NEXT: movl %eax, (%esp) -; X86-X87-NEXT: calll __gnu_h2f_ieee +; X86-X87-NEXT: calll __extendhfsf2 ; X86-X87-NEXT: leal {{[0-9]+}}(%esp), %eax ; X86-X87-NEXT: movl %eax, (%esp) ; X86-X87-NEXT: fsts {{[0-9]+}}(%esp) diff --git a/llvm/test/CodeGen/X86/frem.ll b/llvm/test/CodeGen/X86/frem.ll index 35d16c3bac70d..959265d08299a 100644 --- a/llvm/test/CodeGen/X86/frem.ll +++ b/llvm/test/CodeGen/X86/frem.ll @@ -82,7 +82,7 @@ define void @frem_f128(fp128 %a0, fp128 %a1, ptr%p3) nounwind { ; CHECK: # %bb.0: ; CHECK-NEXT: pushq %rbx ; CHECK-NEXT: movq %rdi, %rbx -; CHECK-NEXT: callq fmodf128 +; CHECK-NEXT: callq fmodf128@PLT ; CHECK-NEXT: vmovaps %xmm0, (%rbx) ; CHECK-NEXT: popq %rbx ; CHECK-NEXT: retq diff --git a/llvm/test/CodeGen/X86/half-constrained.ll b/llvm/test/CodeGen/X86/half-constrained.ll index 0f73129d984bd..f1874cc03000a 100644 --- a/llvm/test/CodeGen/X86/half-constrained.ll +++ b/llvm/test/CodeGen/X86/half-constrained.ll @@ -15,7 +15,7 @@ define float @half_to_float() strictfp { ; X86-NOF16C-NEXT: .cfi_def_cfa_offset 16 ; X86-NOF16C-NEXT: movzwl a, %eax ; X86-NOF16C-NEXT: movl %eax, (%esp) -; X86-NOF16C-NEXT: calll __gnu_h2f_ieee +; X86-NOF16C-NEXT: calll __extendhfsf2 ; X86-NOF16C-NEXT: addl $12, %esp ; X86-NOF16C-NEXT: .cfi_def_cfa_offset 4 ; X86-NOF16C-NEXT: retl @@ -64,7 +64,7 @@ define double @half_to_double() strictfp { ; X86-NOF16C-NEXT: .cfi_def_cfa_offset 16 ; X86-NOF16C-NEXT: movzwl a, %eax ; X86-NOF16C-NEXT: movl %eax, (%esp) -; X86-NOF16C-NEXT: calll __gnu_h2f_ieee +; X86-NOF16C-NEXT: calll __extendhfsf2 ; X86-NOF16C-NEXT: addl $12, %esp ; X86-NOF16C-NEXT: .cfi_def_cfa_offset 4 ; X86-NOF16C-NEXT: retl @@ -116,7 +116,7 @@ define x86_fp80 @half_to_fp80() strictfp { ; X86-NOF16C-NEXT: .cfi_def_cfa_offset 16 ; X86-NOF16C-NEXT: movzwl a, %eax ; X86-NOF16C-NEXT: movl %eax, (%esp) -; X86-NOF16C-NEXT: calll __gnu_h2f_ieee +; X86-NOF16C-NEXT: calll __extendhfsf2 ; X86-NOF16C-NEXT: addl $12, %esp ; X86-NOF16C-NEXT: .cfi_def_cfa_offset 4 ; X86-NOF16C-NEXT: retl @@ -166,7 +166,7 @@ define void @float_to_half(float %0) strictfp { ; X86-NOF16C-NEXT: flds {{[0-9]+}}(%esp) ; X86-NOF16C-NEXT: fstps (%esp) ; X86-NOF16C-NEXT: wait -; X86-NOF16C-NEXT: calll __gnu_f2h_ieee +; X86-NOF16C-NEXT: calll __truncsfhf2 ; X86-NOF16C-NEXT: movw %ax, a ; X86-NOF16C-NEXT: addl $12, %esp ; X86-NOF16C-NEXT: .cfi_def_cfa_offset 4 @@ -324,17 +324,17 @@ define void @add() strictfp { ; X86-NOF16C-NEXT: .cfi_def_cfa_offset 16 ; X86-NOF16C-NEXT: movzwl a, %eax ; X86-NOF16C-NEXT: movl %eax, (%esp) -; X86-NOF16C-NEXT: calll __gnu_h2f_ieee +; X86-NOF16C-NEXT: calll __extendhfsf2 ; X86-NOF16C-NEXT: fstps {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill ; X86-NOF16C-NEXT: wait ; X86-NOF16C-NEXT: movzwl b, %eax ; X86-NOF16C-NEXT: movl %eax, (%esp) -; X86-NOF16C-NEXT: calll __gnu_h2f_ieee +; X86-NOF16C-NEXT: calll __extendhfsf2 ; X86-NOF16C-NEXT: flds {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Reload ; X86-NOF16C-NEXT: faddp %st, %st(1) ; X86-NOF16C-NEXT: fstps (%esp) ; X86-NOF16C-NEXT: wait -; X86-NOF16C-NEXT: calll __gnu_f2h_ieee +; X86-NOF16C-NEXT: calll __truncsfhf2 ; X86-NOF16C-NEXT: movw %ax, c ; X86-NOF16C-NEXT: addl $12, %esp ; X86-NOF16C-NEXT: .cfi_def_cfa_offset 4 diff --git a/llvm/test/CodeGen/X86/ldexp.ll b/llvm/test/CodeGen/X86/ldexp.ll index 3c6e14598571d..859139463b7e3 100644 --- a/llvm/test/CodeGen/X86/ldexp.ll +++ b/llvm/test/CodeGen/X86/ldexp.ll @@ -608,14 +608,14 @@ define half @ldexp_f16(half %arg0, i32 %arg1) { ; WIN32-NEXT: movl {{[0-9]+}}(%esp), %esi ; WIN32-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; WIN32-NEXT: movl %eax, (%esp) -; WIN32-NEXT: calll ___gnu_h2f_ieee +; WIN32-NEXT: calll ___extendhfsf2 ; WIN32-NEXT: movl %esi, {{[0-9]+}}(%esp) ; WIN32-NEXT: fstpl (%esp) ; WIN32-NEXT: calll _ldexp ; WIN32-NEXT: fstps {{[0-9]+}}(%esp) ; WIN32-NEXT: flds {{[0-9]+}}(%esp) ; WIN32-NEXT: fstps (%esp) -; WIN32-NEXT: calll ___gnu_f2h_ieee +; WIN32-NEXT: calll ___truncsfhf2 ; WIN32-NEXT: addl $16, %esp ; WIN32-NEXT: popl %esi ; WIN32-NEXT: retl diff --git a/llvm/test/CodeGen/X86/llvm.frexp.ll b/llvm/test/CodeGen/X86/llvm.frexp.ll index 96de34519556d..8436c1052552e 100644 --- a/llvm/test/CodeGen/X86/llvm.frexp.ll +++ b/llvm/test/CodeGen/X86/llvm.frexp.ll @@ -45,7 +45,7 @@ define { half, i32 } @test_frexp_f16_i32(half %a) { ; WIN32-NEXT: subl $20, %esp ; WIN32-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; WIN32-NEXT: movl %eax, (%esp) -; WIN32-NEXT: calll ___gnu_h2f_ieee +; WIN32-NEXT: calll ___extendhfsf2 ; WIN32-NEXT: leal {{[0-9]+}}(%esp), %eax ; WIN32-NEXT: movl %eax, {{[0-9]+}}(%esp) ; WIN32-NEXT: fstpl (%esp) @@ -54,7 +54,7 @@ define { half, i32 } @test_frexp_f16_i32(half %a) { ; WIN32-NEXT: flds {{[0-9]+}}(%esp) ; WIN32-NEXT: fstps (%esp) ; WIN32-NEXT: movl {{[0-9]+}}(%esp), %esi -; WIN32-NEXT: calll ___gnu_f2h_ieee +; WIN32-NEXT: calll ___truncsfhf2 ; WIN32-NEXT: movl %esi, %edx ; WIN32-NEXT: addl $20, %esp ; WIN32-NEXT: popl %esi @@ -95,7 +95,7 @@ define half @test_frexp_f16_i32_only_use_fract(half %a) { ; WIN32-NEXT: subl $20, %esp ; WIN32-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; WIN32-NEXT: movl %eax, (%esp) -; WIN32-NEXT: calll ___gnu_h2f_ieee +; WIN32-NEXT: calll ___extendhfsf2 ; WIN32-NEXT: leal {{[0-9]+}}(%esp), %eax ; WIN32-NEXT: movl %eax, {{[0-9]+}}(%esp) ; WIN32-NEXT: fstpl (%esp) @@ -103,7 +103,7 @@ define half @test_frexp_f16_i32_only_use_fract(half %a) { ; WIN32-NEXT: fstps {{[0-9]+}}(%esp) ; WIN32-NEXT: flds {{[0-9]+}}(%esp) ; WIN32-NEXT: fstps (%esp) -; WIN32-NEXT: calll ___gnu_f2h_ieee +; WIN32-NEXT: calll ___truncsfhf2 ; WIN32-NEXT: addl $20, %esp ; WIN32-NEXT: retl %result = call { half, i32 } @llvm.frexp.f16.i32(half %a) @@ -146,7 +146,7 @@ define i32 @test_frexp_f16_i32_only_use_exp(half %a) { ; WIN32-NEXT: subl $16, %esp ; WIN32-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; WIN32-NEXT: movl %eax, (%esp) -; WIN32-NEXT: calll ___gnu_h2f_ieee +; WIN32-NEXT: calll ___extendhfsf2 ; WIN32-NEXT: leal {{[0-9]+}}(%esp), %eax ; WIN32-NEXT: movl %eax, {{[0-9]+}}(%esp) ; WIN32-NEXT: fstpl (%esp) diff --git a/llvm/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp b/llvm/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp index 0932938b209a4..22181ce33f0da 100644 --- a/llvm/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp +++ b/llvm/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp @@ -2060,7 +2060,7 @@ TEST_F(AArch64GISelMITest, LibcallFPExt) { auto CheckStr = R"( CHECK: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC CHECK: $h0 = COPY [[TRUNC]] - CHECK: BL &__gnu_h2f_ieee + CHECK: BL &__extendhfsf2 CHECK: $d0 = COPY CHECK: BL &__extenddftf2 )"; @@ -2103,7 +2103,7 @@ TEST_F(AArch64GISelMITest, LibcallFPTrunc) { auto CheckStr = R"( CHECK: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC CHECK: $s0 = COPY [[TRUNC]] - CHECK: BL &__gnu_f2h_ieee + CHECK: BL &__truncsfhf2 CHECK: $q0 = COPY CHECK: BL &__trunctfdf2 )";