[llvm] [X86] Fix ABI for passing after i128 (PR #124134)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Fri Jan 24 00:57:53 PST 2025
================
@@ -1555,30 +1555,30 @@ define <4 x double> @fmuladd_contract_v4f64(<4 x double> %a, <4 x double> %b, <4
; SOFT-FLOAT-64-NEXT: .cfi_offset %r14, -32
; SOFT-FLOAT-64-NEXT: .cfi_offset %r15, -24
; SOFT-FLOAT-64-NEXT: .cfi_offset %rbp, -16
+; SOFT-FLOAT-64-NEXT: movq %r9, %rbp
----------------
nikic wrote:
Right. The previous implementation also (unintentionally) affected cases like an illegal `<4 x i64>` vector (or `<4 x double>` for softfloat) and wouldn't allow the *first* element of the vector to use r9. So the whole value could still be split across regs and stacks, just not between the 1st and 2nd element...
https://github.com/llvm/llvm-project/pull/124134
More information about the llvm-commits
mailing list