about summary refs log tree commit diff
path: root/tests/codegen-llvm/loongarch-abi
AgeCommit message (Collapse)AuthorLines
2025-09-05Rollup merge of #145709 - heiher:issue-145692-1, r=jackh726Trevor Gross-0/+44
Fix LoongArch C function ABI when passing/returning structs containing floats Similar to RISC-V, LoongArch passes structs containing only one or two floats (or a float–integer pair) in registers, as long as each element fits into a single corresponding register. Before this PR, Rust did not check the actual offset of the second float or integer; instead, it assumed the standard offset based on the default alignment. However, since the offset can be affected by `#[repr(align(N))]` and `#[repr(packed)]`, this led to miscompilations (see rust-lang/rust#145692). This PR fixes the issue by explicitly specifying the offset for the remainder of the cast.
2025-08-26Use captures(address) instead of captures(none) for indirect argsNikita Popov-2/+2
While provenance cannot be captured through these arguments, the address / object identity can.
2025-08-21Fix LoongArch C function ABI when passing/returning structs containing floatsWANG Rui-0/+44
2025-08-11Set dead_on_return attribute for indirect argumentsNikita Popov-1/+1
Set the dead_on_return attribute (added in LLVM 21) for arguments that are passed indirectly, but not byval. This indicates that the value of the argument on return does not matter, enabling additional dead store elimination.
2025-07-22Rename `tests/codegen` into `tests/codegen-llvm`Guillaume Gomez-0/+330