[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
================
@@ -20,7 +20,8 @@ bool TargetInfo::isAggregateTypeForABI(const Type *Ty) const {
return isAggregateTypeForABI(AT->getValueType());
// Check for fundamental scalar types.
- if (Ty->isInteger() || Ty->isFloat() || Ty->isPointer() || Ty->isVector())
+ if (Ty->isInteger() || Ty->isFloat() || Ty->isPointer() || Ty->isVector() ||
----------------
madhur13490 wrote:
This affects every target, and it's what routes SVE tuples through the direct path on Darwin and Windows, but nothing tests it yet. SVInt32x2 gets added to the test class but no test uses it, and the new SVE clang test has no tuple types.
Could you add a unit test that passes and returns SVInt32x2? It should come out direct on DarwinPCS and Win64, and still hit the NYI path on AAPCS. A predicate tuple would be good to cover too.
It'd also be good to have a couple of tuple arguments in abi-classify-sve-types.c (__clang_svint32x2_t, __clang_svboolx2_t). They'd need to go behind an #ifdef that only the Darwin and Windows RUN lines turn on, since on AAPCS they'll print the NYI warning and fail the implicit-check-not.
If tuples are meant for a follow-up, maybe just drop SVInt32x2 from this patch.
https://github.com/llvm/llvm-project/pull/225201
More information about the llvm-commits
mailing list