[clang] [Clang][AArch64] Fix Pure Scalables Types argument passing and return (PR #112747)

Momchil Velikov via cfe-commits cfe-commits at lists.llvm.org
Fri Oct 18 03:19:14 PDT 2024


================
@@ -353,6 +427,17 @@ AArch64ABIInfo::classifyArgumentType(QualType Ty, bool IsVariadic,
         nullptr, true, Align);
   }
 
+  // In AAPCS named arguments of a Pure Scalable Type are passed expanded in
+  // registers, or indirectly if there are not enough registers.
+  if (Kind == AArch64ABIKind::AAPCS && !IsVariadic) {
----------------
momchil-velikov wrote:

That's Rule C.7, that wants the argument to be named.

> If the argument is a Pure Scalable Type that consists of NV Scalable Vector Types and
> NP Scalable Predicate Types, **if the argument is named**, if NSRN+NV ≤ 8,
> and if NPRN+NP ≤ 4, then the Scalable Vector Types are


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


More information about the cfe-commits mailing list