[llvm] [CodeGen][Mips] Remove fp128 libcall list (PR #153798)

Nikita Popov via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 15 05:46:16 PDT 2025


================
@@ -49,13 +49,11 @@ define float @fmuladd_intrinsic_f32(float %a, float %b, float %c) #0 {
 ; SOFT-FLOAT-64-NEXT:    sd $16, 0($sp) # 8-byte Folded Spill
 ; SOFT-FLOAT-64-NEXT:    .cfi_offset 31, -8
 ; SOFT-FLOAT-64-NEXT:    .cfi_offset 16, -16
-; SOFT-FLOAT-64-NEXT:    move $16, $6
-; SOFT-FLOAT-64-NEXT:    sll $4, $4, 0
 ; SOFT-FLOAT-64-NEXT:    jal __mulsf3
-; SOFT-FLOAT-64-NEXT:    sll $5, $5, 0
-; SOFT-FLOAT-64-NEXT:    sll $4, $2, 0
+; SOFT-FLOAT-64-NEXT:    move $16, $6
+; SOFT-FLOAT-64-NEXT:    move $4, $2
 ; SOFT-FLOAT-64-NEXT:    jal __addsf3
-; SOFT-FLOAT-64-NEXT:    sll $5, $16, 0
+; SOFT-FLOAT-64-NEXT:    move $5, $16
----------------
nikic wrote:

I believe what is happening here is that we're no longer unnecessarily sign extending these values, as we now correctly hit the logic for softened floats here: https://github.com/llvm/llvm-project/blob/263e45827357f416435e42e99c7323ca723549be/llvm/lib/Target/Mips/MipsCallingConv.td#L131

The output now matches what you'd get for a plain multiply and add: https://clang.godbolt.org/z/dsYoYEnc9



https://github.com/llvm/llvm-project/pull/153798


More information about the llvm-commits mailing list