================
@@ -133,6 +133,7 @@ struct TransferrableTargetInfo {
   unsigned short SuitableAlign;
   unsigned short NewAlign;
   unsigned MaxVectorAlign;
----------------
Fznamznon wrote:

`MaxVectorAlign` is set for x86 targets. I can use it as a limit as well, but 
note that this patch also makes indirect return value if size of the argument 
exceeds the limit. So, some changes can be caused to the current behavior and 
test changes like in for exampe `CodeGen/X86/x86-vec-i128.c`:

```
define{{.*}} <4 x i64> @test_v32u128(ptr noundef byval(<4 x i64>) align 32 
%{{.*}}, ptr noundef byval(<2 x i128>) align 32 %{{.*}})
note: possible intended match here
define dso_local void @test_v32u128(ptr dead_on_unwind noalias writable sret(<4 
x i64>) align 32 %agg.result, ptr noundef byval(<4 x i64>) align 32 %0, ptr 
noundef byval(<2 x i128>) align 32 %1)
``

If that is correct, I can use `MaxVectorAlign` for sure.

https://github.com/llvm/llvm-project/pull/98629
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to