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

Reply via email to