diff --git a/llvm/lib/Target/RISCV/RISCVISelLowering.cpp b/llvm/lib/Target/RISCV/RISCVISelLowering.cpp --- a/llvm/lib/Target/RISCV/RISCVISelLowering.cpp +++ b/llvm/lib/Target/RISCV/RISCVISelLowering.cpp @@ -1082,6 +1082,9 @@ setTargetDAGCombine(ISD::SHL); setTargetDAGCombine(ISD::STORE); } + + setLibcallName(RTLIB::FPEXT_F16_F32, "__extendhfsf2"); + setLibcallName(RTLIB::FPROUND_F32_F16, "__truncsfhf2"); } EVT RISCVTargetLowering::getSetCCResultType(const DataLayout &DL, diff --git a/llvm/test/CodeGen/RISCV/calling-conv-half.ll b/llvm/test/CodeGen/RISCV/calling-conv-half.ll --- a/llvm/test/CodeGen/RISCV/calling-conv-half.ll +++ b/llvm/test/CodeGen/RISCV/calling-conv-half.ll @@ -21,7 +21,7 @@ ; RV32I-NEXT: mv s0, a0 ; RV32I-NEXT: slli a0, a1, 16 ; RV32I-NEXT: srli a0, a0, 16 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: call __fixsfsi@plt ; RV32I-NEXT: add a0, s0, a0 ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload @@ -37,7 +37,7 @@ ; RV64I-NEXT: mv s0, a0 ; RV64I-NEXT: slli a0, a1, 48 ; RV64I-NEXT: srli a0, a0, 48 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: call __fixsfdi@plt ; RV64I-NEXT: addw a0, s0, a0 ; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload @@ -52,7 +52,7 @@ ; RV32IF-NEXT: sw s0, 8(sp) # 4-byte Folded Spill ; RV32IF-NEXT: mv s0, a0 ; RV32IF-NEXT: mv a0, a1 -; RV32IF-NEXT: call __gnu_h2f_ieee@plt +; RV32IF-NEXT: call __extendhfsf2@plt ; RV32IF-NEXT: fmv.w.x ft0, a0 ; RV32IF-NEXT: fcvt.w.s a0, ft0, rtz ; RV32IF-NEXT: add a0, s0, a0 @@ -68,7 +68,7 @@ ; RV64IF-NEXT: sd s0, 0(sp) # 8-byte Folded Spill ; RV64IF-NEXT: mv s0, a0 ; RV64IF-NEXT: mv a0, a1 -; RV64IF-NEXT: call __gnu_h2f_ieee@plt +; RV64IF-NEXT: call __extendhfsf2@plt ; RV64IF-NEXT: fmv.w.x ft0, a0 ; RV64IF-NEXT: fcvt.l.s a0, ft0, rtz ; RV64IF-NEXT: addw a0, s0, a0 @@ -84,7 +84,7 @@ ; RV32-ILP32F-NEXT: sw s0, 8(sp) # 4-byte Folded Spill ; RV32-ILP32F-NEXT: mv s0, a0 ; RV32-ILP32F-NEXT: fmv.x.w a0, fa0 -; RV32-ILP32F-NEXT: call __gnu_h2f_ieee@plt +; RV32-ILP32F-NEXT: call __extendhfsf2@plt ; RV32-ILP32F-NEXT: fcvt.w.s a0, fa0, rtz ; RV32-ILP32F-NEXT: add a0, s0, a0 ; RV32-ILP32F-NEXT: lw ra, 12(sp) # 4-byte Folded Reload @@ -99,7 +99,7 @@ ; RV64-LP64F-NEXT: sd s0, 0(sp) # 8-byte Folded Spill ; RV64-LP64F-NEXT: mv s0, a0 ; RV64-LP64F-NEXT: fmv.x.w a0, fa0 -; RV64-LP64F-NEXT: call __gnu_h2f_ieee@plt +; RV64-LP64F-NEXT: call __extendhfsf2@plt ; RV64-LP64F-NEXT: fcvt.l.s a0, fa0, rtz ; RV64-LP64F-NEXT: addw a0, s0, a0 ; RV64-LP64F-NEXT: ld ra, 8(sp) # 8-byte Folded Reload @@ -114,7 +114,7 @@ ; RV32-ILP32ZFHMIN-NEXT: sw s0, 8(sp) # 4-byte Folded Spill ; RV32-ILP32ZFHMIN-NEXT: mv s0, a0 ; RV32-ILP32ZFHMIN-NEXT: fmv.x.w a0, fa0 -; RV32-ILP32ZFHMIN-NEXT: call __gnu_h2f_ieee@plt +; RV32-ILP32ZFHMIN-NEXT: call __extendhfsf2@plt ; RV32-ILP32ZFHMIN-NEXT: fcvt.w.s a0, fa0, rtz ; RV32-ILP32ZFHMIN-NEXT: add a0, s0, a0 ; RV32-ILP32ZFHMIN-NEXT: lw ra, 12(sp) # 4-byte Folded Reload @@ -129,7 +129,7 @@ ; RV64-LP64ZFHMIN-NEXT: sd s0, 0(sp) # 8-byte Folded Spill ; RV64-LP64ZFHMIN-NEXT: mv s0, a0 ; RV64-LP64ZFHMIN-NEXT: fmv.x.w a0, fa0 -; RV64-LP64ZFHMIN-NEXT: call __gnu_h2f_ieee@plt +; RV64-LP64ZFHMIN-NEXT: call __extendhfsf2@plt ; RV64-LP64ZFHMIN-NEXT: fcvt.l.s a0, fa0, rtz ; RV64-LP64ZFHMIN-NEXT: addw a0, s0, a0 ; RV64-LP64ZFHMIN-NEXT: ld ra, 8(sp) # 8-byte Folded Reload @@ -247,7 +247,7 @@ ; RV32I-NEXT: sw s0, 8(sp) # 4-byte Folded Spill ; RV32I-NEXT: lhu a0, 16(sp) ; RV32I-NEXT: mv s0, a7 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: call __fixsfsi@plt ; RV32I-NEXT: add a0, s0, a0 ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload @@ -262,7 +262,7 @@ ; RV64I-NEXT: sd s0, 0(sp) # 8-byte Folded Spill ; RV64I-NEXT: lhu a0, 16(sp) ; RV64I-NEXT: mv s0, a7 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: call __fixsfdi@plt ; RV64I-NEXT: addw a0, s0, a0 ; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload @@ -277,7 +277,7 @@ ; RV32IF-NEXT: sw s0, 8(sp) # 4-byte Folded Spill ; RV32IF-NEXT: lhu a0, 16(sp) ; RV32IF-NEXT: mv s0, a7 -; RV32IF-NEXT: call __gnu_h2f_ieee@plt +; RV32IF-NEXT: call __extendhfsf2@plt ; RV32IF-NEXT: fmv.w.x ft0, a0 ; RV32IF-NEXT: fcvt.w.s a0, ft0, rtz ; RV32IF-NEXT: add a0, s0, a0 @@ -293,7 +293,7 @@ ; RV64IF-NEXT: sd s0, 0(sp) # 8-byte Folded Spill ; RV64IF-NEXT: lhu a0, 16(sp) ; RV64IF-NEXT: mv s0, a7 -; RV64IF-NEXT: call __gnu_h2f_ieee@plt +; RV64IF-NEXT: call __extendhfsf2@plt ; RV64IF-NEXT: fmv.w.x ft0, a0 ; RV64IF-NEXT: fcvt.l.s a0, ft0, rtz ; RV64IF-NEXT: addw a0, s0, a0 @@ -309,7 +309,7 @@ ; RV32-ILP32F-NEXT: sw s0, 8(sp) # 4-byte Folded Spill ; RV32-ILP32F-NEXT: mv s0, a7 ; RV32-ILP32F-NEXT: fmv.x.w a0, fa0 -; RV32-ILP32F-NEXT: call __gnu_h2f_ieee@plt +; RV32-ILP32F-NEXT: call __extendhfsf2@plt ; RV32-ILP32F-NEXT: fcvt.w.s a0, fa0, rtz ; RV32-ILP32F-NEXT: add a0, s0, a0 ; RV32-ILP32F-NEXT: lw ra, 12(sp) # 4-byte Folded Reload @@ -324,7 +324,7 @@ ; RV64-LP64F-NEXT: sd s0, 0(sp) # 8-byte Folded Spill ; RV64-LP64F-NEXT: mv s0, a7 ; RV64-LP64F-NEXT: fmv.x.w a0, fa0 -; RV64-LP64F-NEXT: call __gnu_h2f_ieee@plt +; RV64-LP64F-NEXT: call __extendhfsf2@plt ; RV64-LP64F-NEXT: fcvt.l.s a0, fa0, rtz ; RV64-LP64F-NEXT: addw a0, s0, a0 ; RV64-LP64F-NEXT: ld ra, 8(sp) # 8-byte Folded Reload @@ -339,7 +339,7 @@ ; RV32-ILP32ZFHMIN-NEXT: sw s0, 8(sp) # 4-byte Folded Spill ; RV32-ILP32ZFHMIN-NEXT: mv s0, a7 ; RV32-ILP32ZFHMIN-NEXT: fmv.x.w a0, fa0 -; RV32-ILP32ZFHMIN-NEXT: call __gnu_h2f_ieee@plt +; RV32-ILP32ZFHMIN-NEXT: call __extendhfsf2@plt ; RV32-ILP32ZFHMIN-NEXT: fcvt.w.s a0, fa0, rtz ; RV32-ILP32ZFHMIN-NEXT: add a0, s0, a0 ; RV32-ILP32ZFHMIN-NEXT: lw ra, 12(sp) # 4-byte Folded Reload @@ -354,7 +354,7 @@ ; RV64-LP64ZFHMIN-NEXT: sd s0, 0(sp) # 8-byte Folded Spill ; RV64-LP64ZFHMIN-NEXT: mv s0, a7 ; RV64-LP64ZFHMIN-NEXT: fmv.x.w a0, fa0 -; RV64-LP64ZFHMIN-NEXT: call __gnu_h2f_ieee@plt +; RV64-LP64ZFHMIN-NEXT: call __extendhfsf2@plt ; RV64-LP64ZFHMIN-NEXT: fcvt.l.s a0, fa0, rtz ; RV64-LP64ZFHMIN-NEXT: addw a0, s0, a0 ; RV64-LP64ZFHMIN-NEXT: ld ra, 8(sp) # 8-byte Folded Reload @@ -586,7 +586,7 @@ ; RV32I-NEXT: call callee_half_ret@plt ; RV32I-NEXT: slli a0, a0, 16 ; RV32I-NEXT: srli a0, a0, 16 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: call __fixsfsi@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: addi sp, sp, 16 @@ -599,7 +599,7 @@ ; RV64I-NEXT: call callee_half_ret@plt ; RV64I-NEXT: slli a0, a0, 48 ; RV64I-NEXT: srli a0, a0, 48 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: call __fixsfdi@plt ; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64I-NEXT: addi sp, sp, 16 @@ -610,7 +610,7 @@ ; RV32IF-NEXT: addi sp, sp, -16 ; RV32IF-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32IF-NEXT: call callee_half_ret@plt -; RV32IF-NEXT: call __gnu_h2f_ieee@plt +; RV32IF-NEXT: call __extendhfsf2@plt ; RV32IF-NEXT: fmv.w.x ft0, a0 ; RV32IF-NEXT: fcvt.w.s a0, ft0, rtz ; RV32IF-NEXT: lw ra, 12(sp) # 4-byte Folded Reload @@ -622,7 +622,7 @@ ; RV64IF-NEXT: addi sp, sp, -16 ; RV64IF-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64IF-NEXT: call callee_half_ret@plt -; RV64IF-NEXT: call __gnu_h2f_ieee@plt +; RV64IF-NEXT: call __extendhfsf2@plt ; RV64IF-NEXT: fmv.w.x ft0, a0 ; RV64IF-NEXT: fcvt.l.s a0, ft0, rtz ; RV64IF-NEXT: ld ra, 8(sp) # 8-byte Folded Reload @@ -635,7 +635,7 @@ ; RV32-ILP32F-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32-ILP32F-NEXT: call callee_half_ret@plt ; RV32-ILP32F-NEXT: fmv.x.w a0, fa0 -; RV32-ILP32F-NEXT: call __gnu_h2f_ieee@plt +; RV32-ILP32F-NEXT: call __extendhfsf2@plt ; RV32-ILP32F-NEXT: fcvt.w.s a0, fa0, rtz ; RV32-ILP32F-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32-ILP32F-NEXT: addi sp, sp, 16 @@ -647,7 +647,7 @@ ; RV64-LP64F-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64-LP64F-NEXT: call callee_half_ret@plt ; RV64-LP64F-NEXT: fmv.x.w a0, fa0 -; RV64-LP64F-NEXT: call __gnu_h2f_ieee@plt +; RV64-LP64F-NEXT: call __extendhfsf2@plt ; RV64-LP64F-NEXT: fcvt.l.s a0, fa0, rtz ; RV64-LP64F-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64-LP64F-NEXT: addi sp, sp, 16 @@ -659,7 +659,7 @@ ; RV32-ILP32ZFHMIN-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32-ILP32ZFHMIN-NEXT: call callee_half_ret@plt ; RV32-ILP32ZFHMIN-NEXT: fmv.x.w a0, fa0 -; RV32-ILP32ZFHMIN-NEXT: call __gnu_h2f_ieee@plt +; RV32-ILP32ZFHMIN-NEXT: call __extendhfsf2@plt ; RV32-ILP32ZFHMIN-NEXT: fcvt.w.s a0, fa0, rtz ; RV32-ILP32ZFHMIN-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32-ILP32ZFHMIN-NEXT: addi sp, sp, 16 @@ -671,7 +671,7 @@ ; RV64-LP64ZFHMIN-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64-LP64ZFHMIN-NEXT: call callee_half_ret@plt ; RV64-LP64ZFHMIN-NEXT: fmv.x.w a0, fa0 -; RV64-LP64ZFHMIN-NEXT: call __gnu_h2f_ieee@plt +; RV64-LP64ZFHMIN-NEXT: call __extendhfsf2@plt ; RV64-LP64ZFHMIN-NEXT: fcvt.l.s a0, fa0, rtz ; RV64-LP64ZFHMIN-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64-LP64ZFHMIN-NEXT: addi sp, sp, 16 diff --git a/llvm/test/CodeGen/RISCV/copysign-casts.ll b/llvm/test/CodeGen/RISCV/copysign-casts.ll --- a/llvm/test/CodeGen/RISCV/copysign-casts.ll +++ b/llvm/test/CodeGen/RISCV/copysign-casts.ll @@ -133,7 +133,7 @@ ; RV32IFD-NEXT: fsd fs0, 0(sp) # 8-byte Folded Spill ; RV32IFD-NEXT: fmv.d fs0, fa0 ; RV32IFD-NEXT: fmv.x.w a0, fa1 -; RV32IFD-NEXT: call __gnu_h2f_ieee@plt +; RV32IFD-NEXT: call __extendhfsf2@plt ; RV32IFD-NEXT: fcvt.d.s ft0, fa0 ; RV32IFD-NEXT: fsgnj.d fa0, fs0, ft0 ; RV32IFD-NEXT: lw ra, 12(sp) # 4-byte Folded Reload @@ -148,7 +148,7 @@ ; RV64IFD-NEXT: fsd fs0, 0(sp) # 8-byte Folded Spill ; RV64IFD-NEXT: fmv.d fs0, fa0 ; RV64IFD-NEXT: fmv.x.w a0, fa1 -; RV64IFD-NEXT: call __gnu_h2f_ieee@plt +; RV64IFD-NEXT: call __extendhfsf2@plt ; RV64IFD-NEXT: fcvt.d.s ft0, fa0 ; RV64IFD-NEXT: fsgnj.d fa0, fs0, ft0 ; RV64IFD-NEXT: ld ra, 8(sp) # 8-byte Folded Reload @@ -211,7 +211,7 @@ ; RV32IF-NEXT: fsw fs0, 8(sp) # 4-byte Folded Spill ; RV32IF-NEXT: fmv.s fs0, fa0 ; RV32IF-NEXT: fmv.x.w a0, fa1 -; RV32IF-NEXT: call __gnu_h2f_ieee@plt +; RV32IF-NEXT: call __extendhfsf2@plt ; RV32IF-NEXT: fsgnj.s fa0, fs0, fa0 ; RV32IF-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32IF-NEXT: flw fs0, 8(sp) # 4-byte Folded Reload @@ -225,7 +225,7 @@ ; RV32IFD-NEXT: fsd fs0, 0(sp) # 8-byte Folded Spill ; RV32IFD-NEXT: fmv.s fs0, fa0 ; RV32IFD-NEXT: fmv.x.w a0, fa1 -; RV32IFD-NEXT: call __gnu_h2f_ieee@plt +; RV32IFD-NEXT: call __extendhfsf2@plt ; RV32IFD-NEXT: fsgnj.s fa0, fs0, fa0 ; RV32IFD-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32IFD-NEXT: fld fs0, 0(sp) # 8-byte Folded Reload @@ -239,7 +239,7 @@ ; RV64IFD-NEXT: fsd fs0, 0(sp) # 8-byte Folded Spill ; RV64IFD-NEXT: fmv.s fs0, fa0 ; RV64IFD-NEXT: fmv.x.w a0, fa1 -; RV64IFD-NEXT: call __gnu_h2f_ieee@plt +; RV64IFD-NEXT: call __extendhfsf2@plt ; RV64IFD-NEXT: fsgnj.s fa0, fs0, fa0 ; RV64IFD-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64IFD-NEXT: fld fs0, 0(sp) # 8-byte Folded Reload diff --git a/llvm/test/CodeGen/RISCV/fp16-promote.ll b/llvm/test/CodeGen/RISCV/fp16-promote.ll --- a/llvm/test/CodeGen/RISCV/fp16-promote.ll +++ b/llvm/test/CodeGen/RISCV/fp16-promote.ll @@ -18,7 +18,7 @@ ; CHECK-NEXT: addi sp, sp, -16 ; CHECK-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; CHECK-NEXT: lhu a0, 0(a0) -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; CHECK-NEXT: addi sp, sp, 16 ; CHECK-NEXT: ret @@ -33,7 +33,7 @@ ; CHECK-NEXT: addi sp, sp, -16 ; CHECK-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; CHECK-NEXT: lhu a0, 0(a0) -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: fcvt.d.s fa0, fa0 ; CHECK-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; CHECK-NEXT: addi sp, sp, 16 @@ -50,7 +50,7 @@ ; CHECK-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; CHECK-NEXT: sw s0, 8(sp) # 4-byte Folded Spill ; CHECK-NEXT: mv s0, a0 -; CHECK-NEXT: call __gnu_f2h_ieee@plt +; CHECK-NEXT: call __truncsfhf2@plt ; CHECK-NEXT: sh a0, 0(s0) ; CHECK-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; CHECK-NEXT: lw s0, 8(sp) # 4-byte Folded Reload @@ -90,12 +90,12 @@ ; CHECK-NEXT: mv s0, a0 ; CHECK-NEXT: lhu s1, 0(a0) ; CHECK-NEXT: lhu a0, 0(a1) -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: fmv.s fs0, fa0 ; CHECK-NEXT: mv a0, s1 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: fadd.s fa0, fa0, fs0 -; CHECK-NEXT: call __gnu_f2h_ieee@plt +; CHECK-NEXT: call __truncsfhf2@plt ; CHECK-NEXT: sh a0, 0(s0) ; CHECK-NEXT: lw ra, 28(sp) # 4-byte Folded Reload ; CHECK-NEXT: lw s0, 24(sp) # 4-byte Folded Reload @@ -121,12 +121,12 @@ ; CHECK-NEXT: mv s0, a0 ; CHECK-NEXT: lhu s1, 0(a0) ; CHECK-NEXT: lhu a0, 0(a1) -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: fmv.s fs0, fa0 ; CHECK-NEXT: mv a0, s1 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: fmul.s fa0, fa0, fs0 -; CHECK-NEXT: call __gnu_f2h_ieee@plt +; CHECK-NEXT: call __truncsfhf2@plt ; CHECK-NEXT: sh a0, 0(s0) ; CHECK-NEXT: lw ra, 28(sp) # 4-byte Folded Reload ; CHECK-NEXT: lw s0, 24(sp) # 4-byte Folded Reload diff --git a/llvm/test/CodeGen/RISCV/fpclamptosat.ll b/llvm/test/CodeGen/RISCV/fpclamptosat.ll --- a/llvm/test/CodeGen/RISCV/fpclamptosat.ll +++ b/llvm/test/CodeGen/RISCV/fpclamptosat.ll @@ -413,7 +413,7 @@ ; RV32-NEXT: .cfi_def_cfa_offset 16 ; RV32-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32-NEXT: .cfi_offset ra, -4 -; RV32-NEXT: call __gnu_h2f_ieee@plt +; RV32-NEXT: call __extendhfsf2@plt ; RV32-NEXT: call __fixsfdi@plt ; RV32-NEXT: lui a2, 524288 ; RV32-NEXT: addi a3, a2, -1 @@ -451,7 +451,7 @@ ; RV64-NEXT: .cfi_def_cfa_offset 16 ; RV64-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64-NEXT: .cfi_offset ra, -8 -; RV64-NEXT: call __gnu_h2f_ieee@plt +; RV64-NEXT: call __extendhfsf2@plt ; RV64-NEXT: fmv.w.x ft0, a0 ; RV64-NEXT: fcvt.l.s a0, ft0, rtz ; RV64-NEXT: lui a1, 524288 @@ -484,7 +484,7 @@ ; RV32-NEXT: .cfi_def_cfa_offset 16 ; RV32-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32-NEXT: .cfi_offset ra, -4 -; RV32-NEXT: call __gnu_h2f_ieee@plt +; RV32-NEXT: call __extendhfsf2@plt ; RV32-NEXT: call __fixunssfdi@plt ; RV32-NEXT: beqz a1, .LBB7_2 ; RV32-NEXT: # %bb.1: # %entry @@ -508,7 +508,7 @@ ; RV64-NEXT: .cfi_def_cfa_offset 16 ; RV64-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64-NEXT: .cfi_offset ra, -8 -; RV64-NEXT: call __gnu_h2f_ieee@plt +; RV64-NEXT: call __extendhfsf2@plt ; RV64-NEXT: fmv.w.x ft0, a0 ; RV64-NEXT: fcvt.lu.s a0, ft0, rtz ; RV64-NEXT: li a1, -1 @@ -535,7 +535,7 @@ ; RV32-NEXT: .cfi_def_cfa_offset 16 ; RV32-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32-NEXT: .cfi_offset ra, -4 -; RV32-NEXT: call __gnu_h2f_ieee@plt +; RV32-NEXT: call __extendhfsf2@plt ; RV32-NEXT: call __fixsfdi@plt ; RV32-NEXT: beqz a1, .LBB8_2 ; RV32-NEXT: # %bb.1: # %entry @@ -571,7 +571,7 @@ ; RV64-NEXT: .cfi_def_cfa_offset 16 ; RV64-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64-NEXT: .cfi_offset ra, -8 -; RV64-NEXT: call __gnu_h2f_ieee@plt +; RV64-NEXT: call __extendhfsf2@plt ; RV64-NEXT: fmv.w.x ft0, a0 ; RV64-NEXT: fcvt.l.s a0, ft0, rtz ; RV64-NEXT: li a1, -1 @@ -999,7 +999,7 @@ ; RV32-NEXT: .cfi_def_cfa_offset 16 ; RV32-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32-NEXT: .cfi_offset ra, -4 -; RV32-NEXT: call __gnu_h2f_ieee@plt +; RV32-NEXT: call __extendhfsf2@plt ; RV32-NEXT: fmv.w.x ft0, a0 ; RV32-NEXT: fcvt.w.s a0, ft0, rtz ; RV32-NEXT: lui a1, 8 @@ -1023,7 +1023,7 @@ ; RV64-NEXT: .cfi_def_cfa_offset 16 ; RV64-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64-NEXT: .cfi_offset ra, -8 -; RV64-NEXT: call __gnu_h2f_ieee@plt +; RV64-NEXT: call __extendhfsf2@plt ; RV64-NEXT: fmv.w.x ft0, a0 ; RV64-NEXT: fcvt.l.s a0, ft0, rtz ; RV64-NEXT: lui a1, 8 @@ -1057,7 +1057,7 @@ ; RV32-NEXT: .cfi_def_cfa_offset 16 ; RV32-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32-NEXT: .cfi_offset ra, -4 -; RV32-NEXT: call __gnu_h2f_ieee@plt +; RV32-NEXT: call __extendhfsf2@plt ; RV32-NEXT: fmv.w.x ft0, a0 ; RV32-NEXT: fcvt.wu.s a0, ft0, rtz ; RV32-NEXT: lui a1, 16 @@ -1076,7 +1076,7 @@ ; RV64-NEXT: .cfi_def_cfa_offset 16 ; RV64-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64-NEXT: .cfi_offset ra, -8 -; RV64-NEXT: call __gnu_h2f_ieee@plt +; RV64-NEXT: call __extendhfsf2@plt ; RV64-NEXT: fmv.w.x ft0, a0 ; RV64-NEXT: fcvt.lu.s a0, ft0, rtz ; RV64-NEXT: lui a1, 16 @@ -1103,7 +1103,7 @@ ; RV32-NEXT: .cfi_def_cfa_offset 16 ; RV32-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32-NEXT: .cfi_offset ra, -4 -; RV32-NEXT: call __gnu_h2f_ieee@plt +; RV32-NEXT: call __extendhfsf2@plt ; RV32-NEXT: fmv.w.x ft0, a0 ; RV32-NEXT: fcvt.w.s a0, ft0, rtz ; RV32-NEXT: lui a1, 16 @@ -1126,7 +1126,7 @@ ; RV64-NEXT: .cfi_def_cfa_offset 16 ; RV64-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64-NEXT: .cfi_offset ra, -8 -; RV64-NEXT: call __gnu_h2f_ieee@plt +; RV64-NEXT: call __extendhfsf2@plt ; RV64-NEXT: fmv.w.x ft0, a0 ; RV64-NEXT: fcvt.l.s a0, ft0, rtz ; RV64-NEXT: lui a1, 16 @@ -1687,7 +1687,7 @@ ; RV32-NEXT: .cfi_def_cfa_offset 32 ; RV32-NEXT: sw ra, 28(sp) # 4-byte Folded Spill ; RV32-NEXT: .cfi_offset ra, -4 -; RV32-NEXT: call __gnu_h2f_ieee@plt +; RV32-NEXT: call __extendhfsf2@plt ; RV32-NEXT: mv a1, a0 ; RV32-NEXT: addi a0, sp, 8 ; RV32-NEXT: call __fixsfti@plt @@ -1748,7 +1748,7 @@ ; RV64-NEXT: .cfi_def_cfa_offset 16 ; RV64-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64-NEXT: .cfi_offset ra, -8 -; RV64-NEXT: call __gnu_h2f_ieee@plt +; RV64-NEXT: call __extendhfsf2@plt ; RV64-NEXT: call __fixsfti@plt ; RV64-NEXT: li a2, -1 ; RV64-NEXT: srli a3, a2, 1 @@ -1796,7 +1796,7 @@ ; RV32-NEXT: .cfi_def_cfa_offset 32 ; RV32-NEXT: sw ra, 28(sp) # 4-byte Folded Spill ; RV32-NEXT: .cfi_offset ra, -4 -; RV32-NEXT: call __gnu_h2f_ieee@plt +; RV32-NEXT: call __extendhfsf2@plt ; RV32-NEXT: mv a1, a0 ; RV32-NEXT: addi a0, sp, 8 ; RV32-NEXT: call __fixunssfti@plt @@ -1835,7 +1835,7 @@ ; RV64-NEXT: .cfi_def_cfa_offset 16 ; RV64-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64-NEXT: .cfi_offset ra, -8 -; RV64-NEXT: call __gnu_h2f_ieee@plt +; RV64-NEXT: call __extendhfsf2@plt ; RV64-NEXT: call __fixunssfti@plt ; RV64-NEXT: beqz a1, .LBB25_2 ; RV64-NEXT: # %bb.1: # %entry @@ -1859,7 +1859,7 @@ ; RV32-NEXT: .cfi_def_cfa_offset 32 ; RV32-NEXT: sw ra, 28(sp) # 4-byte Folded Spill ; RV32-NEXT: .cfi_offset ra, -4 -; RV32-NEXT: call __gnu_h2f_ieee@plt +; RV32-NEXT: call __extendhfsf2@plt ; RV32-NEXT: mv a1, a0 ; RV32-NEXT: addi a0, sp, 8 ; RV32-NEXT: call __fixsfti@plt @@ -1923,7 +1923,7 @@ ; RV64-NEXT: .cfi_def_cfa_offset 16 ; RV64-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64-NEXT: .cfi_offset ra, -8 -; RV64-NEXT: call __gnu_h2f_ieee@plt +; RV64-NEXT: call __extendhfsf2@plt ; RV64-NEXT: call __fixsfti@plt ; RV64-NEXT: blez a1, .LBB26_2 ; RV64-NEXT: # %bb.1: # %entry @@ -2364,7 +2364,7 @@ ; RV32-NEXT: .cfi_def_cfa_offset 16 ; RV32-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32-NEXT: .cfi_offset ra, -4 -; RV32-NEXT: call __gnu_h2f_ieee@plt +; RV32-NEXT: call __extendhfsf2@plt ; RV32-NEXT: call __fixsfdi@plt ; RV32-NEXT: lui a2, 524288 ; RV32-NEXT: addi a4, a2, -1 @@ -2418,7 +2418,7 @@ ; RV64-NEXT: .cfi_def_cfa_offset 16 ; RV64-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64-NEXT: .cfi_offset ra, -8 -; RV64-NEXT: call __gnu_h2f_ieee@plt +; RV64-NEXT: call __extendhfsf2@plt ; RV64-NEXT: fmv.w.x ft0, a0 ; RV64-NEXT: fcvt.l.s a0, ft0, rtz ; RV64-NEXT: lui a1, 524288 @@ -2449,7 +2449,7 @@ ; RV32-NEXT: .cfi_def_cfa_offset 16 ; RV32-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32-NEXT: .cfi_offset ra, -4 -; RV32-NEXT: call __gnu_h2f_ieee@plt +; RV32-NEXT: call __extendhfsf2@plt ; RV32-NEXT: call __fixunssfdi@plt ; RV32-NEXT: beqz a1, .LBB34_2 ; RV32-NEXT: # %bb.1: # %entry @@ -2465,7 +2465,7 @@ ; RV64-NEXT: .cfi_def_cfa_offset 16 ; RV64-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64-NEXT: .cfi_offset ra, -8 -; RV64-NEXT: call __gnu_h2f_ieee@plt +; RV64-NEXT: call __extendhfsf2@plt ; RV64-NEXT: fmv.w.x ft0, a0 ; RV64-NEXT: fcvt.lu.s a0, ft0, rtz ; RV64-NEXT: li a1, -1 @@ -2491,7 +2491,7 @@ ; RV32-NEXT: .cfi_def_cfa_offset 16 ; RV32-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32-NEXT: .cfi_offset ra, -4 -; RV32-NEXT: call __gnu_h2f_ieee@plt +; RV32-NEXT: call __extendhfsf2@plt ; RV32-NEXT: call __fixsfdi@plt ; RV32-NEXT: mv a2, a0 ; RV32-NEXT: bgez a1, .LBB35_7 @@ -2531,7 +2531,7 @@ ; RV64-NEXT: .cfi_def_cfa_offset 16 ; RV64-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64-NEXT: .cfi_offset ra, -8 -; RV64-NEXT: call __gnu_h2f_ieee@plt +; RV64-NEXT: call __extendhfsf2@plt ; RV64-NEXT: fmv.w.x ft0, a0 ; RV64-NEXT: fcvt.l.s a0, ft0, rtz ; RV64-NEXT: li a1, -1 @@ -2947,7 +2947,7 @@ ; RV32-NEXT: .cfi_def_cfa_offset 16 ; RV32-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32-NEXT: .cfi_offset ra, -4 -; RV32-NEXT: call __gnu_h2f_ieee@plt +; RV32-NEXT: call __extendhfsf2@plt ; RV32-NEXT: fmv.w.x ft0, a0 ; RV32-NEXT: fcvt.w.s a0, ft0, rtz ; RV32-NEXT: lui a1, 8 @@ -2971,7 +2971,7 @@ ; RV64-NEXT: .cfi_def_cfa_offset 16 ; RV64-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64-NEXT: .cfi_offset ra, -8 -; RV64-NEXT: call __gnu_h2f_ieee@plt +; RV64-NEXT: call __extendhfsf2@plt ; RV64-NEXT: fmv.w.x ft0, a0 ; RV64-NEXT: fcvt.l.s a0, ft0, rtz ; RV64-NEXT: lui a1, 8 @@ -3003,7 +3003,7 @@ ; RV32-NEXT: .cfi_def_cfa_offset 16 ; RV32-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32-NEXT: .cfi_offset ra, -4 -; RV32-NEXT: call __gnu_h2f_ieee@plt +; RV32-NEXT: call __extendhfsf2@plt ; RV32-NEXT: fmv.w.x ft0, a0 ; RV32-NEXT: fcvt.wu.s a0, ft0, rtz ; RV32-NEXT: lui a1, 16 @@ -3022,7 +3022,7 @@ ; RV64-NEXT: .cfi_def_cfa_offset 16 ; RV64-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64-NEXT: .cfi_offset ra, -8 -; RV64-NEXT: call __gnu_h2f_ieee@plt +; RV64-NEXT: call __extendhfsf2@plt ; RV64-NEXT: fmv.w.x ft0, a0 ; RV64-NEXT: fcvt.lu.s a0, ft0, rtz ; RV64-NEXT: sext.w a0, a0 @@ -3049,7 +3049,7 @@ ; RV32-NEXT: .cfi_def_cfa_offset 16 ; RV32-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32-NEXT: .cfi_offset ra, -4 -; RV32-NEXT: call __gnu_h2f_ieee@plt +; RV32-NEXT: call __extendhfsf2@plt ; RV32-NEXT: fmv.w.x ft0, a0 ; RV32-NEXT: fcvt.w.s a0, ft0, rtz ; RV32-NEXT: lui a1, 16 @@ -3072,7 +3072,7 @@ ; RV64-NEXT: .cfi_def_cfa_offset 16 ; RV64-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64-NEXT: .cfi_offset ra, -8 -; RV64-NEXT: call __gnu_h2f_ieee@plt +; RV64-NEXT: call __extendhfsf2@plt ; RV64-NEXT: fmv.w.x ft0, a0 ; RV64-NEXT: fcvt.l.s a0, ft0, rtz ; RV64-NEXT: lui a1, 16 @@ -3901,7 +3901,7 @@ ; RV32-NEXT: .cfi_def_cfa_offset 32 ; RV32-NEXT: sw ra, 28(sp) # 4-byte Folded Spill ; RV32-NEXT: .cfi_offset ra, -4 -; RV32-NEXT: call __gnu_h2f_ieee@plt +; RV32-NEXT: call __extendhfsf2@plt ; RV32-NEXT: mv a1, a0 ; RV32-NEXT: addi a0, sp, 8 ; RV32-NEXT: call __fixsfti@plt @@ -4019,7 +4019,7 @@ ; RV64-NEXT: .cfi_def_cfa_offset 16 ; RV64-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64-NEXT: .cfi_offset ra, -8 -; RV64-NEXT: call __gnu_h2f_ieee@plt +; RV64-NEXT: call __extendhfsf2@plt ; RV64-NEXT: call __fixsfti@plt ; RV64-NEXT: li a2, -1 ; RV64-NEXT: srli a4, a2, 1 @@ -4079,7 +4079,7 @@ ; RV32-NEXT: .cfi_def_cfa_offset 32 ; RV32-NEXT: sw ra, 28(sp) # 4-byte Folded Spill ; RV32-NEXT: .cfi_offset ra, -4 -; RV32-NEXT: call __gnu_h2f_ieee@plt +; RV32-NEXT: call __extendhfsf2@plt ; RV32-NEXT: mv a1, a0 ; RV32-NEXT: addi a0, sp, 8 ; RV32-NEXT: call __fixunssfti@plt @@ -4127,7 +4127,7 @@ ; RV64-NEXT: .cfi_def_cfa_offset 16 ; RV64-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64-NEXT: .cfi_offset ra, -8 -; RV64-NEXT: call __gnu_h2f_ieee@plt +; RV64-NEXT: call __extendhfsf2@plt ; RV64-NEXT: call __fixunssfti@plt ; RV64-NEXT: mv a2, a0 ; RV64-NEXT: li a0, 0 @@ -4157,7 +4157,7 @@ ; RV32-NEXT: .cfi_def_cfa_offset 32 ; RV32-NEXT: sw ra, 28(sp) # 4-byte Folded Spill ; RV32-NEXT: .cfi_offset ra, -4 -; RV32-NEXT: call __gnu_h2f_ieee@plt +; RV32-NEXT: call __extendhfsf2@plt ; RV32-NEXT: mv a1, a0 ; RV32-NEXT: addi a0, sp, 8 ; RV32-NEXT: call __fixsfti@plt @@ -4269,7 +4269,7 @@ ; RV64-NEXT: .cfi_def_cfa_offset 16 ; RV64-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64-NEXT: .cfi_offset ra, -8 -; RV64-NEXT: call __gnu_h2f_ieee@plt +; RV64-NEXT: call __extendhfsf2@plt ; RV64-NEXT: call __fixsfti@plt ; RV64-NEXT: mv a2, a0 ; RV64-NEXT: li a4, 1 diff --git a/llvm/test/CodeGen/RISCV/fpclamptosat_vec.ll b/llvm/test/CodeGen/RISCV/fpclamptosat_vec.ll --- a/llvm/test/CodeGen/RISCV/fpclamptosat_vec.ll +++ b/llvm/test/CodeGen/RISCV/fpclamptosat_vec.ll @@ -316,20 +316,20 @@ ; CHECK-NEXT: lhu a1, 16(a1) ; CHECK-NEXT: mv s0, a0 ; CHECK-NEXT: mv a0, a1 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s4, a0 ; CHECK-NEXT: mv a0, s3 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s3, a0 ; CHECK-NEXT: mv a0, s1 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s1, a0 ; CHECK-NEXT: fmv.w.x ft0, s3 ; CHECK-NEXT: fsw ft0, 12(sp) # 4-byte Folded Spill ; CHECK-NEXT: fmv.w.x ft0, s4 ; CHECK-NEXT: fcvt.l.s s3, ft0, rtz ; CHECK-NEXT: mv a0, s2 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: fmv.w.x ft0, a0 ; CHECK-NEXT: fcvt.l.s a0, ft0, rtz ; CHECK-NEXT: lui a1, 524288 @@ -423,20 +423,20 @@ ; CHECK-NEXT: lhu a1, 8(a1) ; CHECK-NEXT: mv s0, a0 ; CHECK-NEXT: mv a0, a1 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s4, a0 ; CHECK-NEXT: mv a0, s3 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s3, a0 ; CHECK-NEXT: mv a0, s1 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s1, a0 ; CHECK-NEXT: fmv.w.x ft0, s3 ; CHECK-NEXT: fsw ft0, 12(sp) # 4-byte Folded Spill ; CHECK-NEXT: fmv.w.x ft0, s4 ; CHECK-NEXT: fcvt.lu.s s3, ft0, rtz ; CHECK-NEXT: mv a0, s2 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: fmv.w.x ft0, a0 ; CHECK-NEXT: fcvt.lu.s a0, ft0, rtz ; CHECK-NEXT: li a1, -1 @@ -508,20 +508,20 @@ ; CHECK-NEXT: lhu a1, 16(a1) ; CHECK-NEXT: mv s0, a0 ; CHECK-NEXT: mv a0, a1 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s4, a0 ; CHECK-NEXT: mv a0, s3 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s3, a0 ; CHECK-NEXT: mv a0, s1 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s1, a0 ; CHECK-NEXT: fmv.w.x ft0, s3 ; CHECK-NEXT: fsw ft0, 12(sp) # 4-byte Folded Spill ; CHECK-NEXT: fmv.w.x ft0, s4 ; CHECK-NEXT: fcvt.l.s s3, ft0, rtz ; CHECK-NEXT: mv a0, s2 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: fmv.w.x ft0, a0 ; CHECK-NEXT: fcvt.l.s a0, ft0, rtz ; CHECK-NEXT: li a1, -1 @@ -923,32 +923,32 @@ ; CHECK-NEXT: lhu a1, 48(a1) ; CHECK-NEXT: mv s0, a0 ; CHECK-NEXT: mv a0, a1 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s8, a0 ; CHECK-NEXT: mv a0, s7 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s7, a0 ; CHECK-NEXT: mv a0, s5 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s5, a0 ; CHECK-NEXT: mv a0, s4 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s4, a0 ; CHECK-NEXT: mv a0, s3 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s3, a0 ; CHECK-NEXT: mv a0, s2 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s2, a0 ; CHECK-NEXT: mv a0, s1 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s1, a0 ; CHECK-NEXT: fmv.w.x ft0, s7 ; CHECK-NEXT: fsw ft0, 12(sp) # 4-byte Folded Spill ; CHECK-NEXT: fmv.w.x ft0, s8 ; CHECK-NEXT: fcvt.l.s s7, ft0, rtz ; CHECK-NEXT: mv a0, s6 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: fmv.w.x ft0, a0 ; CHECK-NEXT: fcvt.l.s a0, ft0, rtz ; CHECK-NEXT: lui a1, 8 @@ -1108,32 +1108,32 @@ ; CHECK-NEXT: lhu a1, 8(a1) ; CHECK-NEXT: mv s0, a0 ; CHECK-NEXT: mv a0, a1 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s8, a0 ; CHECK-NEXT: mv a0, s7 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s7, a0 ; CHECK-NEXT: mv a0, s5 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s5, a0 ; CHECK-NEXT: mv a0, s4 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s4, a0 ; CHECK-NEXT: mv a0, s3 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s3, a0 ; CHECK-NEXT: mv a0, s2 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s2, a0 ; CHECK-NEXT: mv a0, s1 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s1, a0 ; CHECK-NEXT: fmv.w.x ft0, s7 ; CHECK-NEXT: fsw ft0, 12(sp) # 4-byte Folded Spill ; CHECK-NEXT: fmv.w.x ft0, s8 ; CHECK-NEXT: fcvt.lu.s s7, ft0, rtz ; CHECK-NEXT: mv a0, s6 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: fmv.w.x ft0, a0 ; CHECK-NEXT: fcvt.lu.s a0, ft0, rtz ; CHECK-NEXT: lui a1, 16 @@ -1249,32 +1249,32 @@ ; CHECK-NEXT: lhu a1, 48(a1) ; CHECK-NEXT: mv s0, a0 ; CHECK-NEXT: mv a0, a1 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s8, a0 ; CHECK-NEXT: mv a0, s7 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s7, a0 ; CHECK-NEXT: mv a0, s5 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s5, a0 ; CHECK-NEXT: mv a0, s4 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s4, a0 ; CHECK-NEXT: mv a0, s3 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s3, a0 ; CHECK-NEXT: mv a0, s2 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s2, a0 ; CHECK-NEXT: mv a0, s1 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s1, a0 ; CHECK-NEXT: fmv.w.x ft0, s7 ; CHECK-NEXT: fsw ft0, 12(sp) # 4-byte Folded Spill ; CHECK-NEXT: fmv.w.x ft0, s8 ; CHECK-NEXT: fcvt.l.s s7, ft0, rtz ; CHECK-NEXT: mv a0, s6 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: fmv.w.x ft0, a0 ; CHECK-NEXT: fcvt.l.s a0, ft0, rtz ; CHECK-NEXT: lui a1, 16 @@ -1835,12 +1835,12 @@ ; CHECK-NEXT: .cfi_offset s1, -24 ; CHECK-NEXT: .cfi_offset s2, -32 ; CHECK-NEXT: mv s2, a1 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: call __fixsfti@plt ; CHECK-NEXT: mv s0, a0 ; CHECK-NEXT: mv s1, a1 ; CHECK-NEXT: mv a0, s2 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: call __fixsfti@plt ; CHECK-NEXT: mv a2, a0 ; CHECK-NEXT: li a0, -1 @@ -1925,12 +1925,12 @@ ; CHECK-NEXT: .cfi_offset s2, -32 ; CHECK-NEXT: mv s2, a0 ; CHECK-NEXT: mv a0, a1 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: call __fixunssfti@plt ; CHECK-NEXT: mv s0, a0 ; CHECK-NEXT: mv s1, a1 ; CHECK-NEXT: mv a0, s2 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: call __fixunssfti@plt ; CHECK-NEXT: beqz a1, .LBB25_2 ; CHECK-NEXT: # %bb.1: # %entry @@ -1970,12 +1970,12 @@ ; CHECK-NEXT: .cfi_offset s2, -32 ; CHECK-NEXT: mv s2, a0 ; CHECK-NEXT: mv a0, a1 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: call __fixsfti@plt ; CHECK-NEXT: mv s0, a0 ; CHECK-NEXT: mv s1, a1 ; CHECK-NEXT: mv a0, s2 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: call __fixsfti@plt ; CHECK-NEXT: mv a2, a1 ; CHECK-NEXT: bgtz a1, .LBB26_7 @@ -2345,20 +2345,20 @@ ; CHECK-NEXT: lhu a1, 16(a1) ; CHECK-NEXT: mv s0, a0 ; CHECK-NEXT: mv a0, a1 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s4, a0 ; CHECK-NEXT: mv a0, s3 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s3, a0 ; CHECK-NEXT: mv a0, s1 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s1, a0 ; CHECK-NEXT: fmv.w.x ft0, s3 ; CHECK-NEXT: fsw ft0, 12(sp) # 4-byte Folded Spill ; CHECK-NEXT: fmv.w.x ft0, s4 ; CHECK-NEXT: fcvt.l.s s3, ft0, rtz ; CHECK-NEXT: mv a0, s2 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: fmv.w.x ft0, a0 ; CHECK-NEXT: fcvt.l.s a0, ft0, rtz ; CHECK-NEXT: lui a1, 524288 @@ -2450,20 +2450,20 @@ ; CHECK-NEXT: lhu a1, 8(a1) ; CHECK-NEXT: mv s0, a0 ; CHECK-NEXT: mv a0, a1 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s4, a0 ; CHECK-NEXT: mv a0, s3 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s3, a0 ; CHECK-NEXT: mv a0, s1 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s1, a0 ; CHECK-NEXT: fmv.w.x ft0, s3 ; CHECK-NEXT: fsw ft0, 12(sp) # 4-byte Folded Spill ; CHECK-NEXT: fmv.w.x ft0, s4 ; CHECK-NEXT: fcvt.lu.s s3, ft0, rtz ; CHECK-NEXT: mv a0, s2 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: fmv.w.x ft0, a0 ; CHECK-NEXT: fcvt.lu.s a0, ft0, rtz ; CHECK-NEXT: li a1, -1 @@ -2534,20 +2534,20 @@ ; CHECK-NEXT: lhu a1, 16(a1) ; CHECK-NEXT: mv s0, a0 ; CHECK-NEXT: mv a0, a1 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s4, a0 ; CHECK-NEXT: mv a0, s3 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s3, a0 ; CHECK-NEXT: mv a0, s1 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s1, a0 ; CHECK-NEXT: fmv.w.x ft0, s3 ; CHECK-NEXT: fsw ft0, 12(sp) # 4-byte Folded Spill ; CHECK-NEXT: fmv.w.x ft0, s4 ; CHECK-NEXT: fcvt.l.s s3, ft0, rtz ; CHECK-NEXT: mv a0, s2 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: fmv.w.x ft0, a0 ; CHECK-NEXT: fcvt.l.s a0, ft0, rtz ; CHECK-NEXT: li a1, -1 @@ -2937,32 +2937,32 @@ ; CHECK-NEXT: lhu a1, 48(a1) ; CHECK-NEXT: mv s0, a0 ; CHECK-NEXT: mv a0, a1 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s8, a0 ; CHECK-NEXT: mv a0, s7 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s7, a0 ; CHECK-NEXT: mv a0, s5 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s5, a0 ; CHECK-NEXT: mv a0, s4 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s4, a0 ; CHECK-NEXT: mv a0, s3 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s3, a0 ; CHECK-NEXT: mv a0, s2 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s2, a0 ; CHECK-NEXT: mv a0, s1 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s1, a0 ; CHECK-NEXT: fmv.w.x ft0, s7 ; CHECK-NEXT: fsw ft0, 12(sp) # 4-byte Folded Spill ; CHECK-NEXT: fmv.w.x ft0, s8 ; CHECK-NEXT: fcvt.l.s s7, ft0, rtz ; CHECK-NEXT: mv a0, s6 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: fmv.w.x ft0, a0 ; CHECK-NEXT: fcvt.l.s a0, ft0, rtz ; CHECK-NEXT: lui a1, 8 @@ -3120,25 +3120,25 @@ ; CHECK-NEXT: lhu a1, 8(a1) ; CHECK-NEXT: mv s0, a0 ; CHECK-NEXT: mv a0, a1 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s8, a0 ; CHECK-NEXT: mv a0, s7 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s7, a0 ; CHECK-NEXT: mv a0, s6 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s6, a0 ; CHECK-NEXT: mv a0, s4 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s4, a0 ; CHECK-NEXT: mv a0, s3 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s3, a0 ; CHECK-NEXT: mv a0, s2 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s2, a0 ; CHECK-NEXT: mv a0, s1 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s1, a0 ; CHECK-NEXT: fmv.w.x ft0, s6 ; CHECK-NEXT: fsw ft0, 12(sp) # 4-byte Folded Spill @@ -3148,7 +3148,7 @@ ; CHECK-NEXT: fcvt.lu.s a0, ft0, rtz ; CHECK-NEXT: sext.w s6, a0 ; CHECK-NEXT: mv a0, s5 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: fmv.w.x ft0, a0 ; CHECK-NEXT: fcvt.lu.s a0, ft0, rtz ; CHECK-NEXT: sext.w a0, a0 @@ -3268,32 +3268,32 @@ ; CHECK-NEXT: lhu a1, 48(a1) ; CHECK-NEXT: mv s0, a0 ; CHECK-NEXT: mv a0, a1 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s8, a0 ; CHECK-NEXT: mv a0, s7 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s7, a0 ; CHECK-NEXT: mv a0, s5 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s5, a0 ; CHECK-NEXT: mv a0, s4 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s4, a0 ; CHECK-NEXT: mv a0, s3 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s3, a0 ; CHECK-NEXT: mv a0, s2 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s2, a0 ; CHECK-NEXT: mv a0, s1 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: mv s1, a0 ; CHECK-NEXT: fmv.w.x ft0, s7 ; CHECK-NEXT: fsw ft0, 12(sp) # 4-byte Folded Spill ; CHECK-NEXT: fmv.w.x ft0, s8 ; CHECK-NEXT: fcvt.l.s s7, ft0, rtz ; CHECK-NEXT: mv a0, s6 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: fmv.w.x ft0, a0 ; CHECK-NEXT: fcvt.l.s a0, ft0, rtz ; CHECK-NEXT: lui a1, 16 @@ -3966,12 +3966,12 @@ ; CHECK-NEXT: .cfi_offset s1, -24 ; CHECK-NEXT: .cfi_offset s2, -32 ; CHECK-NEXT: mv s2, a1 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: call __fixsfti@plt ; CHECK-NEXT: mv s0, a0 ; CHECK-NEXT: mv s1, a1 ; CHECK-NEXT: mv a0, s2 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: call __fixsfti@plt ; CHECK-NEXT: mv a2, a0 ; CHECK-NEXT: li a0, -1 @@ -4084,12 +4084,12 @@ ; CHECK-NEXT: .cfi_offset s2, -32 ; CHECK-NEXT: mv s2, a0 ; CHECK-NEXT: mv a0, a1 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: call __fixunssfti@plt ; CHECK-NEXT: mv s0, a0 ; CHECK-NEXT: mv s1, a1 ; CHECK-NEXT: mv a0, s2 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: call __fixunssfti@plt ; CHECK-NEXT: mv a2, a0 ; CHECK-NEXT: mv a3, a1 @@ -4142,12 +4142,12 @@ ; CHECK-NEXT: .cfi_offset s1, -24 ; CHECK-NEXT: .cfi_offset s2, -32 ; CHECK-NEXT: mv s2, a1 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: call __fixsfti@plt ; CHECK-NEXT: mv s0, a0 ; CHECK-NEXT: mv s1, a1 ; CHECK-NEXT: mv a0, s2 -; CHECK-NEXT: call __gnu_h2f_ieee@plt +; CHECK-NEXT: call __extendhfsf2@plt ; CHECK-NEXT: call __fixsfti@plt ; CHECK-NEXT: mv a2, a1 ; CHECK-NEXT: li a5, 1 diff --git a/llvm/test/CodeGen/RISCV/half-arith.ll b/llvm/test/CodeGen/RISCV/half-arith.ll --- a/llvm/test/CodeGen/RISCV/half-arith.ll +++ b/llvm/test/CodeGen/RISCV/half-arith.ll @@ -35,14 +35,14 @@ ; RV32I-NEXT: lui a1, 16 ; RV32I-NEXT: addi s2, a1, -1 ; RV32I-NEXT: and a0, a0, s2 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s1, a0 ; RV32I-NEXT: and a0, s0, s2 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv a1, a0 ; RV32I-NEXT: mv a0, s1 ; RV32I-NEXT: call __addsf3@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s0, 8(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s1, 4(sp) # 4-byte Folded Reload @@ -61,14 +61,14 @@ ; RV64I-NEXT: lui a1, 16 ; RV64I-NEXT: addiw s2, a1, -1 ; RV64I-NEXT: and a0, a0, s2 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s1, a0 ; RV64I-NEXT: and a0, s0, s2 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv a1, a0 ; RV64I-NEXT: mv a0, s1 ; RV64I-NEXT: call __addsf3@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 24(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s0, 16(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s1, 8(sp) # 8-byte Folded Reload @@ -101,14 +101,14 @@ ; RV32I-NEXT: lui a1, 16 ; RV32I-NEXT: addi s2, a1, -1 ; RV32I-NEXT: and a0, a0, s2 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s1, a0 ; RV32I-NEXT: and a0, s0, s2 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv a1, a0 ; RV32I-NEXT: mv a0, s1 ; RV32I-NEXT: call __subsf3@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s0, 8(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s1, 4(sp) # 4-byte Folded Reload @@ -127,14 +127,14 @@ ; RV64I-NEXT: lui a1, 16 ; RV64I-NEXT: addiw s2, a1, -1 ; RV64I-NEXT: and a0, a0, s2 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s1, a0 ; RV64I-NEXT: and a0, s0, s2 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv a1, a0 ; RV64I-NEXT: mv a0, s1 ; RV64I-NEXT: call __subsf3@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 24(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s0, 16(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s1, 8(sp) # 8-byte Folded Reload @@ -167,14 +167,14 @@ ; RV32I-NEXT: lui a1, 16 ; RV32I-NEXT: addi s2, a1, -1 ; RV32I-NEXT: and a0, a0, s2 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s1, a0 ; RV32I-NEXT: and a0, s0, s2 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv a1, a0 ; RV32I-NEXT: mv a0, s1 ; RV32I-NEXT: call __mulsf3@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s0, 8(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s1, 4(sp) # 4-byte Folded Reload @@ -193,14 +193,14 @@ ; RV64I-NEXT: lui a1, 16 ; RV64I-NEXT: addiw s2, a1, -1 ; RV64I-NEXT: and a0, a0, s2 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s1, a0 ; RV64I-NEXT: and a0, s0, s2 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv a1, a0 ; RV64I-NEXT: mv a0, s1 ; RV64I-NEXT: call __mulsf3@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 24(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s0, 16(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s1, 8(sp) # 8-byte Folded Reload @@ -233,14 +233,14 @@ ; RV32I-NEXT: lui a1, 16 ; RV32I-NEXT: addi s2, a1, -1 ; RV32I-NEXT: and a0, a0, s2 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s1, a0 ; RV32I-NEXT: and a0, s0, s2 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv a1, a0 ; RV32I-NEXT: mv a0, s1 ; RV32I-NEXT: call __divsf3@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s0, 8(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s1, 4(sp) # 4-byte Folded Reload @@ -259,14 +259,14 @@ ; RV64I-NEXT: lui a1, 16 ; RV64I-NEXT: addiw s2, a1, -1 ; RV64I-NEXT: and a0, a0, s2 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s1, a0 ; RV64I-NEXT: and a0, s0, s2 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv a1, a0 ; RV64I-NEXT: mv a0, s1 ; RV64I-NEXT: call __divsf3@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 24(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s0, 16(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s1, 8(sp) # 8-byte Folded Reload @@ -296,9 +296,9 @@ ; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32I-NEXT: slli a0, a0, 16 ; RV32I-NEXT: srli a0, a0, 16 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: call sqrtf@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: addi sp, sp, 16 ; RV32I-NEXT: ret @@ -309,9 +309,9 @@ ; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64I-NEXT: slli a0, a0, 48 ; RV64I-NEXT: srli a0, a0, 48 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: call sqrtf@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64I-NEXT: addi sp, sp, 16 ; RV64I-NEXT: ret @@ -379,18 +379,18 @@ ; RV32I-NEXT: lui a1, 16 ; RV32I-NEXT: addi s1, a1, -1 ; RV32I-NEXT: and a0, a0, s1 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv a1, a0 ; RV32I-NEXT: call __addsf3@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: and a0, a0, s1 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s0, a0 ; RV32I-NEXT: lui a0, 524288 ; RV32I-NEXT: xor a0, s0, a0 -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: and a0, a0, s1 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv a1, a0 ; RV32I-NEXT: mv a0, s0 ; RV32I-NEXT: call __eqsf2@plt @@ -410,18 +410,18 @@ ; RV64I-NEXT: lui a1, 16 ; RV64I-NEXT: addiw s1, a1, -1 ; RV64I-NEXT: and a0, a0, s1 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv a1, a0 ; RV64I-NEXT: call __addsf3@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: and a0, a0, s1 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s0, a0 ; RV64I-NEXT: lui a0, 524288 ; RV64I-NEXT: xor a0, s0, a0 -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: and a0, a0, s1 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv a1, a0 ; RV64I-NEXT: mv a0, s0 ; RV64I-NEXT: call __eqsf2@plt @@ -466,19 +466,19 @@ ; RV32I-NEXT: lui a0, 16 ; RV32I-NEXT: addi s3, a0, -1 ; RV32I-NEXT: and a0, s1, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s2, a0 ; RV32I-NEXT: and a0, s0, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv a1, a0 ; RV32I-NEXT: mv a0, s2 ; RV32I-NEXT: call __addsf3@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: and a0, a0, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: lui a1, 524288 ; RV32I-NEXT: xor a0, a0, a1 -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lui a1, 1048568 ; RV32I-NEXT: and a0, a0, a1 ; RV32I-NEXT: slli a1, s1, 17 @@ -505,19 +505,19 @@ ; RV64I-NEXT: lui a0, 16 ; RV64I-NEXT: addiw s3, a0, -1 ; RV64I-NEXT: and a0, s1, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s2, a0 ; RV64I-NEXT: and a0, s0, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv a1, a0 ; RV64I-NEXT: mv a0, s2 ; RV64I-NEXT: call __addsf3@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: and a0, a0, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: lui a1, 524288 ; RV64I-NEXT: xor a0, a0, a1 -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: lui a1, 1048568 ; RV64I-NEXT: and a0, a0, a1 ; RV64I-NEXT: slli a1, s1, 49 @@ -566,25 +566,25 @@ ; RV32I-NEXT: lui a1, 16 ; RV32I-NEXT: addi s2, a1, -1 ; RV32I-NEXT: and a0, a0, s2 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s1, a0 ; RV32I-NEXT: and a0, s0, s2 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv a1, a0 ; RV32I-NEXT: mv a0, s1 ; RV32I-NEXT: call __addsf3@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: and a0, a0, s2 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s0, a0 ; RV32I-NEXT: slli a0, a0, 1 ; RV32I-NEXT: srli a0, a0, 1 -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: and a0, a0, s2 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv a1, s0 ; RV32I-NEXT: call __addsf3@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s0, 8(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s1, 4(sp) # 4-byte Folded Reload @@ -603,25 +603,25 @@ ; RV64I-NEXT: lui a1, 16 ; RV64I-NEXT: addiw s2, a1, -1 ; RV64I-NEXT: and a0, a0, s2 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s1, a0 ; RV64I-NEXT: and a0, s0, s2 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv a1, a0 ; RV64I-NEXT: mv a0, s1 ; RV64I-NEXT: call __addsf3@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: and a0, a0, s2 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s0, a0 ; RV64I-NEXT: slli a0, a0, 33 ; RV64I-NEXT: srli a0, a0, 33 -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: and a0, a0, s2 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv a1, s0 ; RV64I-NEXT: call __addsf3@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 24(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s0, 16(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s1, 8(sp) # 8-byte Folded Reload @@ -658,14 +658,14 @@ ; RV32I-NEXT: lui a1, 16 ; RV32I-NEXT: addi s2, a1, -1 ; RV32I-NEXT: and a0, a0, s2 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s1, a0 ; RV32I-NEXT: and a0, s0, s2 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv a1, a0 ; RV32I-NEXT: mv a0, s1 ; RV32I-NEXT: call fminf@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s0, 8(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s1, 4(sp) # 4-byte Folded Reload @@ -684,14 +684,14 @@ ; RV64I-NEXT: lui a1, 16 ; RV64I-NEXT: addiw s2, a1, -1 ; RV64I-NEXT: and a0, a0, s2 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s1, a0 ; RV64I-NEXT: and a0, s0, s2 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv a1, a0 ; RV64I-NEXT: mv a0, s1 ; RV64I-NEXT: call fminf@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 24(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s0, 16(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s1, 8(sp) # 8-byte Folded Reload @@ -726,14 +726,14 @@ ; RV32I-NEXT: lui a1, 16 ; RV32I-NEXT: addi s2, a1, -1 ; RV32I-NEXT: and a0, a0, s2 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s1, a0 ; RV32I-NEXT: and a0, s0, s2 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv a1, a0 ; RV32I-NEXT: mv a0, s1 ; RV32I-NEXT: call fmaxf@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s0, 8(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s1, 4(sp) # 4-byte Folded Reload @@ -752,14 +752,14 @@ ; RV64I-NEXT: lui a1, 16 ; RV64I-NEXT: addiw s2, a1, -1 ; RV64I-NEXT: and a0, a0, s2 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s1, a0 ; RV64I-NEXT: and a0, s0, s2 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv a1, a0 ; RV64I-NEXT: mv a0, s1 ; RV64I-NEXT: call fmaxf@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 24(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s0, 16(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s1, 8(sp) # 8-byte Folded Reload @@ -796,18 +796,18 @@ ; RV32I-NEXT: lui a1, 16 ; RV32I-NEXT: addi s3, a1, -1 ; RV32I-NEXT: and a0, a0, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s2, a0 ; RV32I-NEXT: and a0, s1, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s1, a0 ; RV32I-NEXT: and a0, s0, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv a2, a0 ; RV32I-NEXT: mv a0, s2 ; RV32I-NEXT: mv a1, s1 ; RV32I-NEXT: call fmaf@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 28(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s0, 24(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s1, 20(sp) # 4-byte Folded Reload @@ -829,18 +829,18 @@ ; RV64I-NEXT: lui a1, 16 ; RV64I-NEXT: addiw s3, a1, -1 ; RV64I-NEXT: and a0, a0, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s2, a0 ; RV64I-NEXT: and a0, s1, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s1, a0 ; RV64I-NEXT: and a0, s0, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv a2, a0 ; RV64I-NEXT: mv a0, s2 ; RV64I-NEXT: mv a1, s1 ; RV64I-NEXT: call fmaf@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 40(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s0, 32(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s1, 24(sp) # 8-byte Folded Reload @@ -880,29 +880,29 @@ ; RV32I-NEXT: lui a0, 16 ; RV32I-NEXT: addi s3, a0, -1 ; RV32I-NEXT: and a0, a2, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: li a1, 0 ; RV32I-NEXT: call __addsf3@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: and a0, a0, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: lui a1, 524288 ; RV32I-NEXT: xor a0, a0, a1 -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: mv s2, a0 ; RV32I-NEXT: and a0, s1, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s1, a0 ; RV32I-NEXT: and a0, s0, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s0, a0 ; RV32I-NEXT: and a0, s2, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv a2, a0 ; RV32I-NEXT: mv a0, s1 ; RV32I-NEXT: mv a1, s0 ; RV32I-NEXT: call fmaf@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 28(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s0, 24(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s1, 20(sp) # 4-byte Folded Reload @@ -924,29 +924,29 @@ ; RV64I-NEXT: lui a0, 16 ; RV64I-NEXT: addiw s3, a0, -1 ; RV64I-NEXT: and a0, a2, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: li a1, 0 ; RV64I-NEXT: call __addsf3@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: and a0, a0, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: lui a1, 524288 ; RV64I-NEXT: xor a0, a0, a1 -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: mv s2, a0 ; RV64I-NEXT: and a0, s1, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s1, a0 ; RV64I-NEXT: and a0, s0, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s0, a0 ; RV64I-NEXT: and a0, s2, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv a2, a0 ; RV64I-NEXT: mv a0, s1 ; RV64I-NEXT: mv a1, s0 ; RV64I-NEXT: call fmaf@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 40(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s0, 32(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s1, 24(sp) # 8-byte Folded Reload @@ -991,41 +991,41 @@ ; RV32I-NEXT: lui a1, 16 ; RV32I-NEXT: addi s3, a1, -1 ; RV32I-NEXT: and a0, a0, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: li a1, 0 ; RV32I-NEXT: call __addsf3@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: mv s2, a0 ; RV32I-NEXT: and a0, s1, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: li a1, 0 ; RV32I-NEXT: call __addsf3@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: mv s1, a0 ; RV32I-NEXT: and a0, s2, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: lui s4, 524288 ; RV32I-NEXT: xor a0, a0, s4 -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: mv s2, a0 ; RV32I-NEXT: and a0, s1, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: xor a0, a0, s4 -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: mv s1, a0 ; RV32I-NEXT: and a0, s0, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s0, a0 ; RV32I-NEXT: and a0, s2, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s2, a0 ; RV32I-NEXT: and a0, s1, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv a2, a0 ; RV32I-NEXT: mv a0, s2 ; RV32I-NEXT: mv a1, s0 ; RV32I-NEXT: call fmaf@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 28(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s0, 24(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s1, 20(sp) # 4-byte Folded Reload @@ -1049,41 +1049,41 @@ ; RV64I-NEXT: lui a1, 16 ; RV64I-NEXT: addiw s3, a1, -1 ; RV64I-NEXT: and a0, a0, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: li a1, 0 ; RV64I-NEXT: call __addsf3@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: mv s2, a0 ; RV64I-NEXT: and a0, s1, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: li a1, 0 ; RV64I-NEXT: call __addsf3@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: mv s1, a0 ; RV64I-NEXT: and a0, s2, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: lui s4, 524288 ; RV64I-NEXT: xor a0, a0, s4 -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: mv s2, a0 ; RV64I-NEXT: and a0, s1, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: xor a0, a0, s4 -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: mv s1, a0 ; RV64I-NEXT: and a0, s0, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s0, a0 ; RV64I-NEXT: and a0, s2, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s2, a0 ; RV64I-NEXT: and a0, s1, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv a2, a0 ; RV64I-NEXT: mv a0, s2 ; RV64I-NEXT: mv a1, s0 ; RV64I-NEXT: call fmaf@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 40(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s0, 32(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s1, 24(sp) # 8-byte Folded Reload @@ -1131,41 +1131,41 @@ ; RV32I-NEXT: lui a0, 16 ; RV32I-NEXT: addi s3, a0, -1 ; RV32I-NEXT: and a0, a1, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: li a1, 0 ; RV32I-NEXT: call __addsf3@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: mv s2, a0 ; RV32I-NEXT: and a0, s1, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: li a1, 0 ; RV32I-NEXT: call __addsf3@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: mv s1, a0 ; RV32I-NEXT: and a0, s2, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: lui s4, 524288 ; RV32I-NEXT: xor a0, a0, s4 -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: mv s2, a0 ; RV32I-NEXT: and a0, s1, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: xor a0, a0, s4 -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: mv s1, a0 ; RV32I-NEXT: and a0, s0, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s0, a0 ; RV32I-NEXT: and a0, s2, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s2, a0 ; RV32I-NEXT: and a0, s1, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv a2, a0 ; RV32I-NEXT: mv a0, s0 ; RV32I-NEXT: mv a1, s2 ; RV32I-NEXT: call fmaf@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 28(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s0, 24(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s1, 20(sp) # 4-byte Folded Reload @@ -1189,41 +1189,41 @@ ; RV64I-NEXT: lui a0, 16 ; RV64I-NEXT: addiw s3, a0, -1 ; RV64I-NEXT: and a0, a1, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: li a1, 0 ; RV64I-NEXT: call __addsf3@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: mv s2, a0 ; RV64I-NEXT: and a0, s1, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: li a1, 0 ; RV64I-NEXT: call __addsf3@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: mv s1, a0 ; RV64I-NEXT: and a0, s2, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: lui s4, 524288 ; RV64I-NEXT: xor a0, a0, s4 -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: mv s2, a0 ; RV64I-NEXT: and a0, s1, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: xor a0, a0, s4 -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: mv s1, a0 ; RV64I-NEXT: and a0, s0, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s0, a0 ; RV64I-NEXT: and a0, s2, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s2, a0 ; RV64I-NEXT: and a0, s1, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv a2, a0 ; RV64I-NEXT: mv a0, s0 ; RV64I-NEXT: mv a1, s2 ; RV64I-NEXT: call fmaf@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 40(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s0, 32(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s1, 24(sp) # 8-byte Folded Reload @@ -1268,28 +1268,28 @@ ; RV32I-NEXT: lui a1, 16 ; RV32I-NEXT: addi s3, a1, -1 ; RV32I-NEXT: and a0, a0, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: li a1, 0 ; RV32I-NEXT: call __addsf3@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: and a0, a0, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: lui a1, 524288 ; RV32I-NEXT: xor a0, a0, a1 -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: mv s2, a0 ; RV32I-NEXT: and a0, s1, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s1, a0 ; RV32I-NEXT: and a0, s0, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s0, a0 ; RV32I-NEXT: and a0, s2, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv a1, s1 ; RV32I-NEXT: mv a2, s0 ; RV32I-NEXT: call fmaf@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 28(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s0, 24(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s1, 20(sp) # 4-byte Folded Reload @@ -1311,28 +1311,28 @@ ; RV64I-NEXT: lui a1, 16 ; RV64I-NEXT: addiw s3, a1, -1 ; RV64I-NEXT: and a0, a0, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: li a1, 0 ; RV64I-NEXT: call __addsf3@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: and a0, a0, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: lui a1, 524288 ; RV64I-NEXT: xor a0, a0, a1 -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: mv s2, a0 ; RV64I-NEXT: and a0, s1, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s1, a0 ; RV64I-NEXT: and a0, s0, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s0, a0 ; RV64I-NEXT: and a0, s2, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv a1, s1 ; RV64I-NEXT: mv a2, s0 ; RV64I-NEXT: call fmaf@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 40(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s0, 32(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s1, 24(sp) # 8-byte Folded Reload @@ -1374,29 +1374,29 @@ ; RV32I-NEXT: lui a0, 16 ; RV32I-NEXT: addi s3, a0, -1 ; RV32I-NEXT: and a0, a1, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: li a1, 0 ; RV32I-NEXT: call __addsf3@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: and a0, a0, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: lui a1, 524288 ; RV32I-NEXT: xor a0, a0, a1 -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: mv s2, a0 ; RV32I-NEXT: and a0, s1, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s1, a0 ; RV32I-NEXT: and a0, s0, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s0, a0 ; RV32I-NEXT: and a0, s2, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv a1, a0 ; RV32I-NEXT: mv a0, s1 ; RV32I-NEXT: mv a2, s0 ; RV32I-NEXT: call fmaf@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 28(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s0, 24(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s1, 20(sp) # 4-byte Folded Reload @@ -1418,29 +1418,29 @@ ; RV64I-NEXT: lui a0, 16 ; RV64I-NEXT: addiw s3, a0, -1 ; RV64I-NEXT: and a0, a1, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: li a1, 0 ; RV64I-NEXT: call __addsf3@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: and a0, a0, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: lui a1, 524288 ; RV64I-NEXT: xor a0, a0, a1 -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: mv s2, a0 ; RV64I-NEXT: and a0, s1, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s1, a0 ; RV64I-NEXT: and a0, s0, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s0, a0 ; RV64I-NEXT: and a0, s2, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv a1, a0 ; RV64I-NEXT: mv a0, s1 ; RV64I-NEXT: mv a2, s0 ; RV64I-NEXT: call fmaf@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 40(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s0, 32(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s1, 24(sp) # 8-byte Folded Reload @@ -1478,23 +1478,23 @@ ; RV32I-NEXT: lui a1, 16 ; RV32I-NEXT: addi s3, a1, -1 ; RV32I-NEXT: and a0, a0, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s2, a0 ; RV32I-NEXT: and a0, s1, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv a1, a0 ; RV32I-NEXT: mv a0, s2 ; RV32I-NEXT: call __mulsf3@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: mv s1, a0 ; RV32I-NEXT: and a0, s0, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s0, a0 ; RV32I-NEXT: and a0, s1, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv a1, s0 ; RV32I-NEXT: call __addsf3@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 28(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s0, 24(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s1, 20(sp) # 4-byte Folded Reload @@ -1516,23 +1516,23 @@ ; RV64I-NEXT: lui a1, 16 ; RV64I-NEXT: addiw s3, a1, -1 ; RV64I-NEXT: and a0, a0, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s2, a0 ; RV64I-NEXT: and a0, s1, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv a1, a0 ; RV64I-NEXT: mv a0, s2 ; RV64I-NEXT: call __mulsf3@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: mv s1, a0 ; RV64I-NEXT: and a0, s0, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s0, a0 ; RV64I-NEXT: and a0, s1, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv a1, s0 ; RV64I-NEXT: call __addsf3@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 40(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s0, 32(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s1, 24(sp) # 8-byte Folded Reload @@ -1573,29 +1573,29 @@ ; RV32I-NEXT: lui a0, 16 ; RV32I-NEXT: addi s3, a0, -1 ; RV32I-NEXT: and a0, a2, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: li a1, 0 ; RV32I-NEXT: call __addsf3@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: mv s2, a0 ; RV32I-NEXT: and a0, s1, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s1, a0 ; RV32I-NEXT: and a0, s0, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv a1, a0 ; RV32I-NEXT: mv a0, s1 ; RV32I-NEXT: call __mulsf3@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: and a0, a0, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s0, a0 ; RV32I-NEXT: and a0, s2, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv a1, a0 ; RV32I-NEXT: mv a0, s0 ; RV32I-NEXT: call __subsf3@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 28(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s0, 24(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s1, 20(sp) # 4-byte Folded Reload @@ -1617,29 +1617,29 @@ ; RV64I-NEXT: lui a0, 16 ; RV64I-NEXT: addiw s3, a0, -1 ; RV64I-NEXT: and a0, a2, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: li a1, 0 ; RV64I-NEXT: call __addsf3@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: mv s2, a0 ; RV64I-NEXT: and a0, s1, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s1, a0 ; RV64I-NEXT: and a0, s0, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv a1, a0 ; RV64I-NEXT: mv a0, s1 ; RV64I-NEXT: call __mulsf3@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: and a0, a0, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s0, a0 ; RV64I-NEXT: and a0, s2, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv a1, a0 ; RV64I-NEXT: mv a0, s0 ; RV64I-NEXT: call __subsf3@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 40(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s0, 32(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s1, 24(sp) # 8-byte Folded Reload @@ -1685,46 +1685,46 @@ ; RV32I-NEXT: lui a1, 16 ; RV32I-NEXT: addi s3, a1, -1 ; RV32I-NEXT: and a0, a0, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: li a1, 0 ; RV32I-NEXT: call __addsf3@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: mv s2, a0 ; RV32I-NEXT: and a0, s1, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: li a1, 0 ; RV32I-NEXT: call __addsf3@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: mv s1, a0 ; RV32I-NEXT: and a0, s0, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: li a1, 0 ; RV32I-NEXT: call __addsf3@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: mv s0, a0 ; RV32I-NEXT: and a0, s2, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s2, a0 ; RV32I-NEXT: and a0, s1, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv a1, a0 ; RV32I-NEXT: mv a0, s2 ; RV32I-NEXT: call __mulsf3@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: and a0, a0, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: lui a1, 524288 ; RV32I-NEXT: xor a0, a0, a1 -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: mv s1, a0 ; RV32I-NEXT: and a0, s0, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s0, a0 ; RV32I-NEXT: and a0, s1, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv a1, s0 ; RV32I-NEXT: call __subsf3@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 28(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s0, 24(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s1, 20(sp) # 4-byte Folded Reload @@ -1746,46 +1746,46 @@ ; RV64I-NEXT: lui a1, 16 ; RV64I-NEXT: addiw s3, a1, -1 ; RV64I-NEXT: and a0, a0, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: li a1, 0 ; RV64I-NEXT: call __addsf3@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: mv s2, a0 ; RV64I-NEXT: and a0, s1, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: li a1, 0 ; RV64I-NEXT: call __addsf3@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: mv s1, a0 ; RV64I-NEXT: and a0, s0, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: li a1, 0 ; RV64I-NEXT: call __addsf3@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: mv s0, a0 ; RV64I-NEXT: and a0, s2, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s2, a0 ; RV64I-NEXT: and a0, s1, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv a1, a0 ; RV64I-NEXT: mv a0, s2 ; RV64I-NEXT: call __mulsf3@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: and a0, a0, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: lui a1, 524288 ; RV64I-NEXT: xor a0, a0, a1 -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: mv s1, a0 ; RV64I-NEXT: and a0, s0, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s0, a0 ; RV64I-NEXT: and a0, s1, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv a1, s0 ; RV64I-NEXT: call __subsf3@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 40(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s0, 32(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s1, 24(sp) # 8-byte Folded Reload @@ -1832,36 +1832,36 @@ ; RV32I-NEXT: lui a1, 16 ; RV32I-NEXT: addi s3, a1, -1 ; RV32I-NEXT: and a0, a0, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: li a1, 0 ; RV32I-NEXT: call __addsf3@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: mv s2, a0 ; RV32I-NEXT: and a0, s1, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: li a1, 0 ; RV32I-NEXT: call __addsf3@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: mv s1, a0 ; RV32I-NEXT: and a0, s2, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s2, a0 ; RV32I-NEXT: and a0, s1, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv a1, a0 ; RV32I-NEXT: mv a0, s2 ; RV32I-NEXT: call __mulsf3@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: mv s1, a0 ; RV32I-NEXT: and a0, s0, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s0, a0 ; RV32I-NEXT: and a0, s1, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv a1, a0 ; RV32I-NEXT: mv a0, s0 ; RV32I-NEXT: call __subsf3@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 28(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s0, 24(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s1, 20(sp) # 4-byte Folded Reload @@ -1883,36 +1883,36 @@ ; RV64I-NEXT: lui a1, 16 ; RV64I-NEXT: addiw s3, a1, -1 ; RV64I-NEXT: and a0, a0, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: li a1, 0 ; RV64I-NEXT: call __addsf3@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: mv s2, a0 ; RV64I-NEXT: and a0, s1, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: li a1, 0 ; RV64I-NEXT: call __addsf3@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: mv s1, a0 ; RV64I-NEXT: and a0, s2, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s2, a0 ; RV64I-NEXT: and a0, s1, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv a1, a0 ; RV64I-NEXT: mv a0, s2 ; RV64I-NEXT: call __mulsf3@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: mv s1, a0 ; RV64I-NEXT: and a0, s0, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s0, a0 ; RV64I-NEXT: and a0, s1, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv a1, a0 ; RV64I-NEXT: mv a0, s0 ; RV64I-NEXT: call __subsf3@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 40(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s0, 32(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s1, 24(sp) # 8-byte Folded Reload diff --git a/llvm/test/CodeGen/RISCV/half-convert.ll b/llvm/test/CodeGen/RISCV/half-convert.ll --- a/llvm/test/CodeGen/RISCV/half-convert.ll +++ b/llvm/test/CodeGen/RISCV/half-convert.ll @@ -39,7 +39,7 @@ ; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32I-NEXT: slli a0, a0, 16 ; RV32I-NEXT: srli a0, a0, 16 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: call __fixsfsi@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: addi sp, sp, 16 @@ -51,7 +51,7 @@ ; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64I-NEXT: slli a0, a0, 48 ; RV64I-NEXT: srli a0, a0, 48 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: call __fixsfdi@plt ; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64I-NEXT: addi sp, sp, 16 @@ -143,7 +143,7 @@ ; RV32I-NEXT: sw s3, 12(sp) # 4-byte Folded Spill ; RV32I-NEXT: slli a0, a0, 16 ; RV32I-NEXT: srli a0, a0, 16 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s0, a0 ; RV32I-NEXT: lui a1, 815104 ; RV32I-NEXT: call __gesf2@plt @@ -191,7 +191,7 @@ ; RV64I-NEXT: sd s3, 8(sp) # 8-byte Folded Spill ; RV64I-NEXT: slli a0, a0, 48 ; RV64I-NEXT: srli a0, a0, 48 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s0, a0 ; RV64I-NEXT: lui a1, 815104 ; RV64I-NEXT: call __gesf2@plt @@ -261,7 +261,7 @@ ; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32I-NEXT: slli a0, a0, 16 ; RV32I-NEXT: srli a0, a0, 16 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: call __fixunssfsi@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: addi sp, sp, 16 @@ -273,7 +273,7 @@ ; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64I-NEXT: slli a0, a0, 48 ; RV64I-NEXT: srli a0, a0, 48 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: call __fixunssfdi@plt ; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64I-NEXT: addi sp, sp, 16 @@ -338,7 +338,7 @@ ; RV32I-NEXT: lui a1, 16 ; RV32I-NEXT: addi s0, a1, -1 ; RV32I-NEXT: and a0, a0, s0 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s1, a0 ; RV32I-NEXT: li a1, 0 ; RV32I-NEXT: call __gesf2@plt @@ -378,7 +378,7 @@ ; RV64I-NEXT: lui a1, 16 ; RV64I-NEXT: addiw s0, a1, -1 ; RV64I-NEXT: and a0, a0, s0 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s1, a0 ; RV64I-NEXT: li a1, 0 ; RV64I-NEXT: call __gesf2@plt @@ -439,7 +439,7 @@ ; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32I-NEXT: slli a0, a0, 16 ; RV32I-NEXT: srli a0, a0, 16 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: call __fixsfsi@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: addi sp, sp, 16 @@ -451,7 +451,7 @@ ; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64I-NEXT: slli a0, a0, 48 ; RV64I-NEXT: srli a0, a0, 48 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: call __fixsfdi@plt ; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64I-NEXT: addi sp, sp, 16 @@ -516,7 +516,7 @@ ; RV32I-NEXT: sw s4, 8(sp) # 4-byte Folded Spill ; RV32I-NEXT: slli a0, a0, 16 ; RV32I-NEXT: srli a0, a0, 16 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s0, a0 ; RV32I-NEXT: lui a1, 847872 ; RV32I-NEXT: call __gesf2@plt @@ -566,7 +566,7 @@ ; RV64I-NEXT: sd s4, 0(sp) # 8-byte Folded Spill ; RV64I-NEXT: slli a0, a0, 48 ; RV64I-NEXT: srli a0, a0, 48 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s0, a0 ; RV64I-NEXT: lui a1, 847872 ; RV64I-NEXT: call __gesf2@plt @@ -637,7 +637,7 @@ ; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32I-NEXT: slli a0, a0, 16 ; RV32I-NEXT: srli a0, a0, 16 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: call __fixunssfsi@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: addi sp, sp, 16 @@ -649,7 +649,7 @@ ; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64I-NEXT: slli a0, a0, 48 ; RV64I-NEXT: srli a0, a0, 48 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: call __fixunssfdi@plt ; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64I-NEXT: addi sp, sp, 16 @@ -707,7 +707,7 @@ ; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32I-NEXT: slli a0, a0, 16 ; RV32I-NEXT: srli a0, a0, 16 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: call __fixunssfsi@plt ; RV32I-NEXT: mv a1, a0 ; RV32I-NEXT: li a0, 1 @@ -725,7 +725,7 @@ ; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64I-NEXT: slli a0, a0, 48 ; RV64I-NEXT: srli a0, a0, 48 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: call __fixunssfdi@plt ; RV64I-NEXT: mv a1, a0 ; RV64I-NEXT: li a0, 1 @@ -796,7 +796,7 @@ ; RV32I-NEXT: sw s2, 0(sp) # 4-byte Folded Spill ; RV32I-NEXT: slli a0, a0, 16 ; RV32I-NEXT: srli a0, a0, 16 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s0, a0 ; RV32I-NEXT: li a1, 0 ; RV32I-NEXT: call __gesf2@plt @@ -834,7 +834,7 @@ ; RV64I-NEXT: sd s2, 0(sp) # 8-byte Folded Spill ; RV64I-NEXT: slli a0, a0, 48 ; RV64I-NEXT: srli a0, a0, 48 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s0, a0 ; RV64I-NEXT: li a1, 0 ; RV64I-NEXT: call __gesf2@plt @@ -903,7 +903,7 @@ ; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32I-NEXT: slli a0, a0, 16 ; RV32I-NEXT: srli a0, a0, 16 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: call __fixsfdi@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: addi sp, sp, 16 @@ -915,7 +915,7 @@ ; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64I-NEXT: slli a0, a0, 48 ; RV64I-NEXT: srli a0, a0, 48 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: call __fixsfdi@plt ; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64I-NEXT: addi sp, sp, 16 @@ -1072,7 +1072,7 @@ ; RV32I-NEXT: sw s6, 0(sp) # 4-byte Folded Spill ; RV32I-NEXT: slli a0, a0, 16 ; RV32I-NEXT: srli a0, a0, 16 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s0, a0 ; RV32I-NEXT: lui a1, 913408 ; RV32I-NEXT: call __gesf2@plt @@ -1151,7 +1151,7 @@ ; RV64I-NEXT: sd s4, 0(sp) # 8-byte Folded Spill ; RV64I-NEXT: slli a0, a0, 48 ; RV64I-NEXT: srli a0, a0, 48 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s0, a0 ; RV64I-NEXT: lui a1, 913408 ; RV64I-NEXT: call __gesf2@plt @@ -1232,7 +1232,7 @@ ; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32I-NEXT: slli a0, a0, 16 ; RV32I-NEXT: srli a0, a0, 16 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: call __fixunssfdi@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: addi sp, sp, 16 @@ -1244,7 +1244,7 @@ ; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64I-NEXT: slli a0, a0, 48 ; RV64I-NEXT: srli a0, a0, 48 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: call __fixunssfdi@plt ; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64I-NEXT: addi sp, sp, 16 @@ -1374,7 +1374,7 @@ ; RV32I-NEXT: sw s5, 4(sp) # 4-byte Folded Spill ; RV32I-NEXT: slli a0, a0, 16 ; RV32I-NEXT: srli a0, a0, 16 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s0, a0 ; RV32I-NEXT: li a1, 0 ; RV32I-NEXT: call __gesf2@plt @@ -1434,7 +1434,7 @@ ; RV64I-NEXT: sd s2, 0(sp) # 8-byte Folded Spill ; RV64I-NEXT: slli a0, a0, 48 ; RV64I-NEXT: srli a0, a0, 48 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s0, a0 ; RV64I-NEXT: li a1, 0 ; RV64I-NEXT: call __gesf2@plt @@ -1504,7 +1504,7 @@ ; RV32I-NEXT: slli a0, a0, 16 ; RV32I-NEXT: srai a0, a0, 16 ; RV32I-NEXT: call __floatsisf@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: addi sp, sp, 16 ; RV32I-NEXT: ret @@ -1516,7 +1516,7 @@ ; RV64I-NEXT: slli a0, a0, 48 ; RV64I-NEXT: srai a0, a0, 48 ; RV64I-NEXT: call __floatsisf@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64I-NEXT: addi sp, sp, 16 ; RV64I-NEXT: ret @@ -1550,7 +1550,7 @@ ; RV32I-NEXT: addi sp, sp, -16 ; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32I-NEXT: call __floatsisf@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: addi sp, sp, 16 ; RV32I-NEXT: ret @@ -1560,7 +1560,7 @@ ; RV64I-NEXT: addi sp, sp, -16 ; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64I-NEXT: call __floatsisf@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64I-NEXT: addi sp, sp, 16 ; RV64I-NEXT: ret @@ -1604,7 +1604,7 @@ ; RV32I-NEXT: slli a0, a0, 16 ; RV32I-NEXT: srli a0, a0, 16 ; RV32I-NEXT: call __floatunsisf@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: addi sp, sp, 16 ; RV32I-NEXT: ret @@ -1616,7 +1616,7 @@ ; RV64I-NEXT: slli a0, a0, 48 ; RV64I-NEXT: srli a0, a0, 48 ; RV64I-NEXT: call __floatunsisf@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64I-NEXT: addi sp, sp, 16 ; RV64I-NEXT: ret @@ -1650,7 +1650,7 @@ ; RV32I-NEXT: addi sp, sp, -16 ; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32I-NEXT: call __floatunsisf@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: addi sp, sp, 16 ; RV32I-NEXT: ret @@ -1660,7 +1660,7 @@ ; RV64I-NEXT: addi sp, sp, -16 ; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64I-NEXT: call __floatunsisf@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64I-NEXT: addi sp, sp, 16 ; RV64I-NEXT: ret @@ -1694,7 +1694,7 @@ ; RV32I-NEXT: addi sp, sp, -16 ; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32I-NEXT: call __floatsisf@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: addi sp, sp, 16 ; RV32I-NEXT: ret @@ -1705,7 +1705,7 @@ ; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64I-NEXT: sext.w a0, a0 ; RV64I-NEXT: call __floatsisf@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64I-NEXT: addi sp, sp, 16 ; RV64I-NEXT: ret @@ -1744,7 +1744,7 @@ ; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32I-NEXT: lw a0, 0(a0) ; RV32I-NEXT: call __floatsisf@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: addi sp, sp, 16 ; RV32I-NEXT: ret @@ -1755,7 +1755,7 @@ ; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64I-NEXT: lw a0, 0(a0) ; RV64I-NEXT: call __floatsisf@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64I-NEXT: addi sp, sp, 16 ; RV64I-NEXT: ret @@ -1790,7 +1790,7 @@ ; RV32I-NEXT: addi sp, sp, -16 ; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32I-NEXT: call __floatunsisf@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: addi sp, sp, 16 ; RV32I-NEXT: ret @@ -1801,7 +1801,7 @@ ; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64I-NEXT: sext.w a0, a0 ; RV64I-NEXT: call __floatunsisf@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64I-NEXT: addi sp, sp, 16 ; RV64I-NEXT: ret @@ -1840,7 +1840,7 @@ ; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32I-NEXT: lw a0, 0(a0) ; RV32I-NEXT: call __floatunsisf@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: addi sp, sp, 16 ; RV32I-NEXT: ret @@ -1851,7 +1851,7 @@ ; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64I-NEXT: lw a0, 0(a0) ; RV64I-NEXT: call __floatunsisf@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64I-NEXT: addi sp, sp, 16 ; RV64I-NEXT: ret @@ -1894,7 +1894,7 @@ ; RV32I-NEXT: addi sp, sp, -16 ; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32I-NEXT: call __floatdisf@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: addi sp, sp, 16 ; RV32I-NEXT: ret @@ -1904,7 +1904,7 @@ ; RV64I-NEXT: addi sp, sp, -16 ; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64I-NEXT: call __floatdisf@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64I-NEXT: addi sp, sp, 16 ; RV64I-NEXT: ret @@ -1946,7 +1946,7 @@ ; RV32I-NEXT: addi sp, sp, -16 ; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32I-NEXT: call __floatundisf@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: addi sp, sp, 16 ; RV32I-NEXT: ret @@ -1956,7 +1956,7 @@ ; RV64I-NEXT: addi sp, sp, -16 ; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64I-NEXT: call __floatundisf@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64I-NEXT: addi sp, sp, 16 ; RV64I-NEXT: ret @@ -1989,7 +1989,7 @@ ; RV32I: # %bb.0: ; RV32I-NEXT: addi sp, sp, -16 ; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: addi sp, sp, 16 ; RV32I-NEXT: ret @@ -1998,7 +1998,7 @@ ; RV64I: # %bb.0: ; RV64I-NEXT: addi sp, sp, -16 ; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64I-NEXT: addi sp, sp, 16 ; RV64I-NEXT: ret @@ -2033,7 +2033,7 @@ ; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32I-NEXT: slli a0, a0, 16 ; RV32I-NEXT: srli a0, a0, 16 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: addi sp, sp, 16 ; RV32I-NEXT: ret @@ -2044,7 +2044,7 @@ ; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64I-NEXT: slli a0, a0, 48 ; RV64I-NEXT: srli a0, a0, 48 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64I-NEXT: addi sp, sp, 16 ; RV64I-NEXT: ret @@ -2139,7 +2139,7 @@ ; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32I-NEXT: slli a0, a0, 16 ; RV32I-NEXT: srli a0, a0, 16 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: call __extendsfdf2@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: addi sp, sp, 16 @@ -2151,7 +2151,7 @@ ; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64I-NEXT: slli a0, a0, 48 ; RV64I-NEXT: srli a0, a0, 48 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: slli a0, a0, 32 ; RV64I-NEXT: srli a0, a0, 32 ; RV64I-NEXT: call __extendsfdf2@plt @@ -2266,7 +2266,7 @@ ; RV32I-NEXT: addi s1, a0, 1 ; RV32I-NEXT: mv a0, s1 ; RV32I-NEXT: call __floatsisf@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: sh a0, 0(s0) ; RV32I-NEXT: mv a0, s1 ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload @@ -2285,7 +2285,7 @@ ; RV64I-NEXT: addiw s1, a0, 1 ; RV64I-NEXT: mv a0, s1 ; RV64I-NEXT: call __floatsisf@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: sh a0, 0(s0) ; RV64I-NEXT: mv a0, s1 ; RV64I-NEXT: ld ra, 24(sp) # 8-byte Folded Reload @@ -2339,7 +2339,7 @@ ; RV32I-NEXT: addi s1, a0, 1 ; RV32I-NEXT: mv a0, s1 ; RV32I-NEXT: call __floatunsisf@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: sh a0, 0(s0) ; RV32I-NEXT: mv a0, s1 ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload @@ -2358,7 +2358,7 @@ ; RV64I-NEXT: addiw s1, a0, 1 ; RV64I-NEXT: mv a0, s1 ; RV64I-NEXT: call __floatunsisf@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: sh a0, 0(s0) ; RV64I-NEXT: mv a0, s1 ; RV64I-NEXT: ld ra, 24(sp) # 8-byte Folded Reload @@ -2399,7 +2399,7 @@ ; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32I-NEXT: slli a0, a0, 16 ; RV32I-NEXT: srli a0, a0, 16 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: call __fixsfsi@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: addi sp, sp, 16 @@ -2411,7 +2411,7 @@ ; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64I-NEXT: slli a0, a0, 48 ; RV64I-NEXT: srli a0, a0, 48 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: call __fixsfdi@plt ; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64I-NEXT: addi sp, sp, 16 @@ -2503,7 +2503,7 @@ ; RV32I-NEXT: sw s3, 12(sp) # 4-byte Folded Spill ; RV32I-NEXT: slli a0, a0, 16 ; RV32I-NEXT: srli a0, a0, 16 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s0, a0 ; RV32I-NEXT: lui a1, 815104 ; RV32I-NEXT: call __gesf2@plt @@ -2552,7 +2552,7 @@ ; RV64I-NEXT: sd s3, 8(sp) # 8-byte Folded Spill ; RV64I-NEXT: slli a0, a0, 48 ; RV64I-NEXT: srli a0, a0, 48 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s0, a0 ; RV64I-NEXT: lui a1, 815104 ; RV64I-NEXT: call __gesf2@plt @@ -2622,7 +2622,7 @@ ; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32I-NEXT: slli a0, a0, 16 ; RV32I-NEXT: srli a0, a0, 16 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: call __fixunssfsi@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: addi sp, sp, 16 @@ -2634,7 +2634,7 @@ ; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64I-NEXT: slli a0, a0, 48 ; RV64I-NEXT: srli a0, a0, 48 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: call __fixunssfdi@plt ; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64I-NEXT: addi sp, sp, 16 @@ -2699,7 +2699,7 @@ ; RV32I-NEXT: lui a1, 16 ; RV32I-NEXT: addi s2, a1, -1 ; RV32I-NEXT: and a0, a0, s2 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s0, a0 ; RV32I-NEXT: li a1, 0 ; RV32I-NEXT: call __gesf2@plt @@ -2740,7 +2740,7 @@ ; RV64I-NEXT: lui a1, 16 ; RV64I-NEXT: addiw s2, a1, -1 ; RV64I-NEXT: and a0, a0, s2 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s0, a0 ; RV64I-NEXT: li a1, 0 ; RV64I-NEXT: call __gesf2@plt @@ -2801,7 +2801,7 @@ ; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32I-NEXT: slli a0, a0, 16 ; RV32I-NEXT: srli a0, a0, 16 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: call __fixsfsi@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: addi sp, sp, 16 @@ -2813,7 +2813,7 @@ ; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64I-NEXT: slli a0, a0, 48 ; RV64I-NEXT: srli a0, a0, 48 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: call __fixsfdi@plt ; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64I-NEXT: addi sp, sp, 16 @@ -2905,7 +2905,7 @@ ; RV32I-NEXT: sw s3, 12(sp) # 4-byte Folded Spill ; RV32I-NEXT: slli a0, a0, 16 ; RV32I-NEXT: srli a0, a0, 16 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s0, a0 ; RV32I-NEXT: lui a1, 798720 ; RV32I-NEXT: call __gesf2@plt @@ -2953,7 +2953,7 @@ ; RV64I-NEXT: sd s3, 8(sp) # 8-byte Folded Spill ; RV64I-NEXT: slli a0, a0, 48 ; RV64I-NEXT: srli a0, a0, 48 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s0, a0 ; RV64I-NEXT: lui a1, 798720 ; RV64I-NEXT: call __gesf2@plt @@ -3023,7 +3023,7 @@ ; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32I-NEXT: slli a0, a0, 16 ; RV32I-NEXT: srli a0, a0, 16 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: call __fixunssfsi@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: addi sp, sp, 16 @@ -3035,7 +3035,7 @@ ; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64I-NEXT: slli a0, a0, 48 ; RV64I-NEXT: srli a0, a0, 48 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: call __fixunssfdi@plt ; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64I-NEXT: addi sp, sp, 16 @@ -3098,7 +3098,7 @@ ; RV32I-NEXT: sw s2, 0(sp) # 4-byte Folded Spill ; RV32I-NEXT: slli a0, a0, 16 ; RV32I-NEXT: srli a0, a0, 16 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s0, a0 ; RV32I-NEXT: li a1, 0 ; RV32I-NEXT: call __gesf2@plt @@ -3135,7 +3135,7 @@ ; RV64I-NEXT: sd s2, 0(sp) # 8-byte Folded Spill ; RV64I-NEXT: slli a0, a0, 48 ; RV64I-NEXT: srli a0, a0, 48 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s0, a0 ; RV64I-NEXT: li a1, 0 ; RV64I-NEXT: call __gesf2@plt diff --git a/llvm/test/CodeGen/RISCV/half-intrinsics.ll b/llvm/test/CodeGen/RISCV/half-intrinsics.ll --- a/llvm/test/CodeGen/RISCV/half-intrinsics.ll +++ b/llvm/test/CodeGen/RISCV/half-intrinsics.ll @@ -47,9 +47,9 @@ ; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32I-NEXT: slli a0, a0, 16 ; RV32I-NEXT: srli a0, a0, 16 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: call sqrtf@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: addi sp, sp, 16 ; RV32I-NEXT: ret @@ -60,9 +60,9 @@ ; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64I-NEXT: slli a0, a0, 48 ; RV64I-NEXT: srli a0, a0, 48 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: call sqrtf@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64I-NEXT: addi sp, sp, 16 ; RV64I-NEXT: ret @@ -127,10 +127,10 @@ ; RV32I-NEXT: mv s0, a1 ; RV32I-NEXT: slli a0, a0, 16 ; RV32I-NEXT: srli a0, a0, 16 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv a1, s0 ; RV32I-NEXT: call __powisf2@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s0, 8(sp) # 4-byte Folded Reload ; RV32I-NEXT: addi sp, sp, 16 @@ -144,10 +144,10 @@ ; RV64I-NEXT: mv s0, a1 ; RV64I-NEXT: slli a0, a0, 48 ; RV64I-NEXT: srli a0, a0, 48 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: sext.w a1, s0 ; RV64I-NEXT: call __powisf2@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s0, 0(sp) # 8-byte Folded Reload ; RV64I-NEXT: addi sp, sp, 16 @@ -209,9 +209,9 @@ ; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32I-NEXT: slli a0, a0, 16 ; RV32I-NEXT: srli a0, a0, 16 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: call sinf@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: addi sp, sp, 16 ; RV32I-NEXT: ret @@ -222,9 +222,9 @@ ; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64I-NEXT: slli a0, a0, 48 ; RV64I-NEXT: srli a0, a0, 48 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: call sinf@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64I-NEXT: addi sp, sp, 16 ; RV64I-NEXT: ret @@ -285,9 +285,9 @@ ; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32I-NEXT: slli a0, a0, 16 ; RV32I-NEXT: srli a0, a0, 16 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: call cosf@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: addi sp, sp, 16 ; RV32I-NEXT: ret @@ -298,9 +298,9 @@ ; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64I-NEXT: slli a0, a0, 48 ; RV64I-NEXT: srli a0, a0, 48 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: call cosf@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64I-NEXT: addi sp, sp, 16 ; RV64I-NEXT: ret @@ -400,24 +400,24 @@ ; RV32I-NEXT: lui a1, 16 ; RV32I-NEXT: addi s2, a1, -1 ; RV32I-NEXT: and a0, a0, s2 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s0, a0 ; RV32I-NEXT: call sinf@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: mv s1, a0 ; RV32I-NEXT: mv a0, s0 ; RV32I-NEXT: call cosf@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: mv s0, a0 ; RV32I-NEXT: and a0, s1, s2 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s1, a0 ; RV32I-NEXT: and a0, s0, s2 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv a1, a0 ; RV32I-NEXT: mv a0, s1 ; RV32I-NEXT: call __addsf3@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s0, 8(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s1, 4(sp) # 4-byte Folded Reload @@ -435,24 +435,24 @@ ; RV64I-NEXT: lui a1, 16 ; RV64I-NEXT: addiw s2, a1, -1 ; RV64I-NEXT: and a0, a0, s2 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s0, a0 ; RV64I-NEXT: call sinf@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: mv s1, a0 ; RV64I-NEXT: mv a0, s0 ; RV64I-NEXT: call cosf@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: mv s0, a0 ; RV64I-NEXT: and a0, s1, s2 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s1, a0 ; RV64I-NEXT: and a0, s0, s2 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv a1, a0 ; RV64I-NEXT: mv a0, s1 ; RV64I-NEXT: call __addsf3@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 24(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s0, 16(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s1, 8(sp) # 8-byte Folded Reload @@ -527,14 +527,14 @@ ; RV32I-NEXT: lui a1, 16 ; RV32I-NEXT: addi s2, a1, -1 ; RV32I-NEXT: and a0, a0, s2 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s1, a0 ; RV32I-NEXT: and a0, s0, s2 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv a1, a0 ; RV32I-NEXT: mv a0, s1 ; RV32I-NEXT: call powf@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s0, 8(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s1, 4(sp) # 4-byte Folded Reload @@ -553,14 +553,14 @@ ; RV64I-NEXT: lui a1, 16 ; RV64I-NEXT: addiw s2, a1, -1 ; RV64I-NEXT: and a0, a0, s2 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s1, a0 ; RV64I-NEXT: and a0, s0, s2 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv a1, a0 ; RV64I-NEXT: mv a0, s1 ; RV64I-NEXT: call powf@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 24(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s0, 16(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s1, 8(sp) # 8-byte Folded Reload @@ -624,9 +624,9 @@ ; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32I-NEXT: slli a0, a0, 16 ; RV32I-NEXT: srli a0, a0, 16 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: call expf@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: addi sp, sp, 16 ; RV32I-NEXT: ret @@ -637,9 +637,9 @@ ; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64I-NEXT: slli a0, a0, 48 ; RV64I-NEXT: srli a0, a0, 48 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: call expf@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64I-NEXT: addi sp, sp, 16 ; RV64I-NEXT: ret @@ -700,9 +700,9 @@ ; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32I-NEXT: slli a0, a0, 16 ; RV32I-NEXT: srli a0, a0, 16 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: call exp2f@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: addi sp, sp, 16 ; RV32I-NEXT: ret @@ -713,9 +713,9 @@ ; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64I-NEXT: slli a0, a0, 48 ; RV64I-NEXT: srli a0, a0, 48 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: call exp2f@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64I-NEXT: addi sp, sp, 16 ; RV64I-NEXT: ret @@ -776,9 +776,9 @@ ; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32I-NEXT: slli a0, a0, 16 ; RV32I-NEXT: srli a0, a0, 16 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: call logf@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: addi sp, sp, 16 ; RV32I-NEXT: ret @@ -789,9 +789,9 @@ ; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64I-NEXT: slli a0, a0, 48 ; RV64I-NEXT: srli a0, a0, 48 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: call logf@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64I-NEXT: addi sp, sp, 16 ; RV64I-NEXT: ret @@ -852,9 +852,9 @@ ; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32I-NEXT: slli a0, a0, 16 ; RV32I-NEXT: srli a0, a0, 16 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: call log10f@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: addi sp, sp, 16 ; RV32I-NEXT: ret @@ -865,9 +865,9 @@ ; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64I-NEXT: slli a0, a0, 48 ; RV64I-NEXT: srli a0, a0, 48 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: call log10f@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64I-NEXT: addi sp, sp, 16 ; RV64I-NEXT: ret @@ -928,9 +928,9 @@ ; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32I-NEXT: slli a0, a0, 16 ; RV32I-NEXT: srli a0, a0, 16 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: call log2f@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: addi sp, sp, 16 ; RV32I-NEXT: ret @@ -941,9 +941,9 @@ ; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64I-NEXT: slli a0, a0, 48 ; RV64I-NEXT: srli a0, a0, 48 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: call log2f@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64I-NEXT: addi sp, sp, 16 ; RV64I-NEXT: ret @@ -987,18 +987,18 @@ ; RV32I-NEXT: lui a1, 16 ; RV32I-NEXT: addi s3, a1, -1 ; RV32I-NEXT: and a0, a0, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s2, a0 ; RV32I-NEXT: and a0, s1, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s1, a0 ; RV32I-NEXT: and a0, s0, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv a2, a0 ; RV32I-NEXT: mv a0, s2 ; RV32I-NEXT: mv a1, s1 ; RV32I-NEXT: call fmaf@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 28(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s0, 24(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s1, 20(sp) # 4-byte Folded Reload @@ -1020,18 +1020,18 @@ ; RV64I-NEXT: lui a1, 16 ; RV64I-NEXT: addiw s3, a1, -1 ; RV64I-NEXT: and a0, a0, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s2, a0 ; RV64I-NEXT: and a0, s1, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s1, a0 ; RV64I-NEXT: and a0, s0, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv a2, a0 ; RV64I-NEXT: mv a0, s2 ; RV64I-NEXT: mv a1, s1 ; RV64I-NEXT: call fmaf@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 40(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s0, 32(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s1, 24(sp) # 8-byte Folded Reload @@ -1079,23 +1079,23 @@ ; RV32I-NEXT: lui a1, 16 ; RV32I-NEXT: addi s3, a1, -1 ; RV32I-NEXT: and a0, a0, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s2, a0 ; RV32I-NEXT: and a0, s1, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv a1, a0 ; RV32I-NEXT: mv a0, s2 ; RV32I-NEXT: call __mulsf3@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: mv s1, a0 ; RV32I-NEXT: and a0, s0, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s0, a0 ; RV32I-NEXT: and a0, s1, s3 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv a1, s0 ; RV32I-NEXT: call __addsf3@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 28(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s0, 24(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s1, 20(sp) # 4-byte Folded Reload @@ -1117,23 +1117,23 @@ ; RV64I-NEXT: lui a1, 16 ; RV64I-NEXT: addiw s3, a1, -1 ; RV64I-NEXT: and a0, a0, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s2, a0 ; RV64I-NEXT: and a0, s1, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv a1, a0 ; RV64I-NEXT: mv a0, s2 ; RV64I-NEXT: call __mulsf3@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: mv s1, a0 ; RV64I-NEXT: and a0, s0, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s0, a0 ; RV64I-NEXT: and a0, s1, s3 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv a1, s0 ; RV64I-NEXT: call __addsf3@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 40(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s0, 32(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s1, 24(sp) # 8-byte Folded Reload @@ -1217,14 +1217,14 @@ ; RV32I-NEXT: lui a1, 16 ; RV32I-NEXT: addi s2, a1, -1 ; RV32I-NEXT: and a0, a0, s2 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s1, a0 ; RV32I-NEXT: and a0, s0, s2 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv a1, a0 ; RV32I-NEXT: mv a0, s1 ; RV32I-NEXT: call fminf@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s0, 8(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s1, 4(sp) # 4-byte Folded Reload @@ -1243,14 +1243,14 @@ ; RV64I-NEXT: lui a1, 16 ; RV64I-NEXT: addiw s2, a1, -1 ; RV64I-NEXT: and a0, a0, s2 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s1, a0 ; RV64I-NEXT: and a0, s0, s2 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv a1, a0 ; RV64I-NEXT: mv a0, s1 ; RV64I-NEXT: call fminf@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 24(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s0, 16(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s1, 8(sp) # 8-byte Folded Reload @@ -1295,14 +1295,14 @@ ; RV32I-NEXT: lui a1, 16 ; RV32I-NEXT: addi s2, a1, -1 ; RV32I-NEXT: and a0, a0, s2 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s1, a0 ; RV32I-NEXT: and a0, s0, s2 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv a1, a0 ; RV32I-NEXT: mv a0, s1 ; RV32I-NEXT: call fmaxf@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s0, 8(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s1, 4(sp) # 4-byte Folded Reload @@ -1321,14 +1321,14 @@ ; RV64I-NEXT: lui a1, 16 ; RV64I-NEXT: addiw s2, a1, -1 ; RV64I-NEXT: and a0, a0, s2 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s1, a0 ; RV64I-NEXT: and a0, s0, s2 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv a1, a0 ; RV64I-NEXT: mv a0, s1 ; RV64I-NEXT: call fmaxf@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 24(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s0, 16(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s1, 8(sp) # 8-byte Folded Reload @@ -1453,9 +1453,9 @@ ; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32I-NEXT: slli a0, a0, 16 ; RV32I-NEXT: srli a0, a0, 16 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: call floorf@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: addi sp, sp, 16 ; RV32I-NEXT: ret @@ -1466,9 +1466,9 @@ ; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64I-NEXT: slli a0, a0, 48 ; RV64I-NEXT: srli a0, a0, 48 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: call floorf@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64I-NEXT: addi sp, sp, 16 ; RV64I-NEXT: ret @@ -1529,9 +1529,9 @@ ; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32I-NEXT: slli a0, a0, 16 ; RV32I-NEXT: srli a0, a0, 16 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: call ceilf@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: addi sp, sp, 16 ; RV32I-NEXT: ret @@ -1542,9 +1542,9 @@ ; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64I-NEXT: slli a0, a0, 48 ; RV64I-NEXT: srli a0, a0, 48 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: call ceilf@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64I-NEXT: addi sp, sp, 16 ; RV64I-NEXT: ret @@ -1605,9 +1605,9 @@ ; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32I-NEXT: slli a0, a0, 16 ; RV32I-NEXT: srli a0, a0, 16 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: call truncf@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: addi sp, sp, 16 ; RV32I-NEXT: ret @@ -1618,9 +1618,9 @@ ; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64I-NEXT: slli a0, a0, 48 ; RV64I-NEXT: srli a0, a0, 48 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: call truncf@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64I-NEXT: addi sp, sp, 16 ; RV64I-NEXT: ret @@ -1681,9 +1681,9 @@ ; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32I-NEXT: slli a0, a0, 16 ; RV32I-NEXT: srli a0, a0, 16 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: call rintf@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: addi sp, sp, 16 ; RV32I-NEXT: ret @@ -1694,9 +1694,9 @@ ; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64I-NEXT: slli a0, a0, 48 ; RV64I-NEXT: srli a0, a0, 48 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: call rintf@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64I-NEXT: addi sp, sp, 16 ; RV64I-NEXT: ret @@ -1757,9 +1757,9 @@ ; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32I-NEXT: slli a0, a0, 16 ; RV32I-NEXT: srli a0, a0, 16 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: call nearbyintf@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: addi sp, sp, 16 ; RV32I-NEXT: ret @@ -1770,9 +1770,9 @@ ; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64I-NEXT: slli a0, a0, 48 ; RV64I-NEXT: srli a0, a0, 48 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: call nearbyintf@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64I-NEXT: addi sp, sp, 16 ; RV64I-NEXT: ret @@ -1833,9 +1833,9 @@ ; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32I-NEXT: slli a0, a0, 16 ; RV32I-NEXT: srli a0, a0, 16 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: call roundf@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: addi sp, sp, 16 ; RV32I-NEXT: ret @@ -1846,9 +1846,9 @@ ; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64I-NEXT: slli a0, a0, 48 ; RV64I-NEXT: srli a0, a0, 48 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: call roundf@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64I-NEXT: addi sp, sp, 16 ; RV64I-NEXT: ret @@ -1909,9 +1909,9 @@ ; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill ; RV32I-NEXT: slli a0, a0, 16 ; RV32I-NEXT: srli a0, a0, 16 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: call roundevenf@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: addi sp, sp, 16 ; RV32I-NEXT: ret @@ -1922,9 +1922,9 @@ ; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill ; RV64I-NEXT: slli a0, a0, 48 ; RV64I-NEXT: srli a0, a0, 48 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: call roundevenf@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64I-NEXT: addi sp, sp, 16 ; RV64I-NEXT: ret diff --git a/llvm/test/CodeGen/RISCV/rv32i-rv64i-half.ll b/llvm/test/CodeGen/RISCV/rv32i-rv64i-half.ll --- a/llvm/test/CodeGen/RISCV/rv32i-rv64i-half.ll +++ b/llvm/test/CodeGen/RISCV/rv32i-rv64i-half.ll @@ -21,20 +21,20 @@ ; RV32I-NEXT: lui a1, 16 ; RV32I-NEXT: addi s2, a1, -1 ; RV32I-NEXT: and a0, a0, s2 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s1, a0 ; RV32I-NEXT: and a0, s0, s2 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv s0, a0 ; RV32I-NEXT: mv a0, s1 ; RV32I-NEXT: mv a1, s0 ; RV32I-NEXT: call __addsf3@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: and a0, a0, s2 -; RV32I-NEXT: call __gnu_h2f_ieee@plt +; RV32I-NEXT: call __extendhfsf2@plt ; RV32I-NEXT: mv a1, s0 ; RV32I-NEXT: call __divsf3@plt -; RV32I-NEXT: call __gnu_f2h_ieee@plt +; RV32I-NEXT: call __truncsfhf2@plt ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s0, 8(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s1, 4(sp) # 4-byte Folded Reload @@ -53,20 +53,20 @@ ; RV64I-NEXT: lui a1, 16 ; RV64I-NEXT: addiw s2, a1, -1 ; RV64I-NEXT: and a0, a0, s2 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s1, a0 ; RV64I-NEXT: and a0, s0, s2 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv s0, a0 ; RV64I-NEXT: mv a0, s1 ; RV64I-NEXT: mv a1, s0 ; RV64I-NEXT: call __addsf3@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: and a0, a0, s2 -; RV64I-NEXT: call __gnu_h2f_ieee@plt +; RV64I-NEXT: call __extendhfsf2@plt ; RV64I-NEXT: mv a1, s0 ; RV64I-NEXT: call __divsf3@plt -; RV64I-NEXT: call __gnu_f2h_ieee@plt +; RV64I-NEXT: call __truncsfhf2@plt ; RV64I-NEXT: ld ra, 24(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s0, 16(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s1, 8(sp) # 8-byte Folded Reload