================ @@ -275,10 +276,14 @@ SparcV9ABIInfo::classifyType(QualType Ty, unsigned SizeLimit) const { // Try to use the original type for coercion. llvm::Type *CoerceTy = CB.isUsableType(StrTy) ? StrTy : CB.getType(); + // We use a pair of i64 for 9-16 byte aggregate with 8 byte alignment. + // For 9-16 byte aggregates with 16 byte alignment, we use i128. + llvm::Type *WideTy = llvm::Type::getIntNTy(getVMContext(), 128); + bool UseI128 = (Size > 64) && (Size <= 128) && (Alignment == 128); ---------------- efriedma-quic wrote:
What happens if the size is bigger than 16? Not sure how much it matters, since SizeLimit is 128 for arguments, but we should have some test coverage for return types. https://github.com/llvm/llvm-project/pull/155829 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits