[llvm] [SystemZ] Handle IR struct arguments correctly. (PR #169583)

Ulrich Weigand via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 1 05:04:23 PST 2025


================
@@ -0,0 +1,570 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 6
+; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
+; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z16 | FileCheck %s --check-prefix=VECTOR
+;
+; Test passing IR struct arguments, which do not adhere to the ABI but are
+; split up with each element passed like a separate argument.
+
+ at Fnptr = external global ptr
+ at Src = external global ptr
+ at Dst = external global ptr
+
+%Ty0 = type {i128}
+define fastcc void @fun0(%Ty0 %A) {
----------------
uweigand wrote:

Is there any particular reason for using `fastcc` everywhere?  This should work with the default calling convention just the same, shouldn't it?

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


More information about the llvm-commits mailing list