[clang] [Clang][AArch64] Fix Pure Scalables Types argument passing and return (PR #112747)
Momchil Velikov via cfe-commits
cfe-commits at lists.llvm.org
Thu Oct 24 09:27:52 PDT 2024
================
@@ -303,6 +368,20 @@ AArch64ABIInfo::classifyArgumentType(QualType Ty, bool IsVariadic,
if (EIT->getNumBits() > 128)
return getNaturalAlignIndirect(Ty, false);
+ if (const BuiltinType *BT = Ty->getAs<BuiltinType>()) {
+ if (BT->isSVEBool() || BT->isSVECount())
+ NPRN = std::min(NPRN + 1, 4u);
+ else if (BT->getKind() == BuiltinType::SveBoolx2)
+ NPRN = std::min(NPRN + 2, 4u);
+ else if (BT->getKind() == BuiltinType::SveBoolx4)
+ NPRN = std::min(NPRN + 4, 4u);
+ else if (BT->isFloatingPoint() || BT->isVectorType())
----------------
momchil-velikov wrote:
Fixed and tests added.
https://github.com/llvm/llvm-project/pull/112747
More information about the cfe-commits
mailing list