[llvm] [RISCV]: Implemented softening of `FCANONICALIZE` (PR #169234)
Sam Elliott via llvm-commits
llvm-commits at lists.llvm.org
Mon Nov 24 10:47:46 PST 2025
================
@@ -10,6 +11,42 @@ declare float @llvm.fcanonicalize.f32(float)
declare double @llvm.fcanonicalize.f64(double)
define half @fcanonicalize_f16(half %x) {
+; RV64-SOFT-LABEL: fcanonicalize_f16:
+; RV64-SOFT: # %bb.0:
+; RV64-SOFT-NEXT: addi sp, sp, -16
+; RV64-SOFT-NEXT: .cfi_def_cfa_offset 16
+; RV64-SOFT-NEXT: sd ra, 8(sp) # 8-byte Folded Spill
+; RV64-SOFT-NEXT: .cfi_offset ra, -8
+; RV64-SOFT-NEXT: slli a0, a0, 48
+; RV64-SOFT-NEXT: srli a0, a0, 48
+; RV64-SOFT-NEXT: call __extendhfsf2
+; RV64-SOFT-NEXT: mv a1, a0
+; RV64-SOFT-NEXT: call fminimum_numf
----------------
lenary wrote:
I think this says it's present after glibc 2.34? I'm not sure. https://www.gnu.org/software/gnulib/manual/html_node/fminimum_005fnumf.html
https://github.com/llvm/llvm-project/pull/169234
More information about the llvm-commits
mailing list