[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