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