[AArch64] Prevent argument promotion of vector with size > 128 bits (#70034)
commit926173c614784149889b2c975adccf52bcece75b
authorKAWASHIMA Takahiro <t-kawashima@fujitsu.com>
Thu, 26 Oct 2023 05:51:20 +0000 (26 14:51 +0900)
committerGitHub <noreply@github.com>
Thu, 26 Oct 2023 05:51:20 +0000 (26 14:51 +0900)
tree11161cd0994b843cb74cc33116e7db81dac42750
parentf5063bf7edbb6368deb7354b4340eb62b8329d2e
[AArch64] Prevent argument promotion of vector with size > 128 bits (#70034)

This patch prevents argument promotion from promoting pointers to
fixed-length vector types larger than 128 bits like `<8 x float>` into
the values of the pointees.

Such vector types are used for SVE VLS but there is no ABI for SVE VLS
arguments and the backend cannot lower such value arguments.

Fixes #69147
llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
llvm/test/CodeGen/AArch64/arg_promotion.ll [new file with mode: 0644]