================
@@ -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
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to