[clang] [llvm] [LLVMABI][AARCH64] Handle vector types (PR #225201)
Madhur Amilkanthwar via llvm-commits
llvm-commits at lists.llvm.org
Mon Sep 28 01:47:20 PDT 2026
================
@@ -79,9 +89,15 @@ ArgInfo AArch64TargetInfo::classifyReturnType(const Type *RetTy,
if (RetTy->isVoid())
return ArgInfo::getIgnore();
- if (RetTy->isVector()) {
- reportNYI("Vector return type handling");
- return ArgInfo::getIgnore();
+ if (const auto *VT = dyn_cast<VectorType>(RetTy)) {
+ if (VT->isFixedLengthSVEData() || VT->isFixedLengthSVEPredicate()) {
+ unsigned NSRN = 0, NPRN = 0;
+ return coerceIllegalVector(VT, NSRN, NPRN);
+ }
+
+ // Large vector types should be returned via memory.
+ if (VT->getABISizeInBits() > 128)
+ return getNaturalAlignIndirect(RetTy);
----------------
madhur13490 wrote:
Same rebase issue here. This one won't compile against main because AddrSpace has no default:
`return getNaturalAlignIndirect(RetTy, getAllocaAddrSpace());`
https://github.com/llvm/llvm-project/pull/225201
More information about the llvm-commits
mailing list