Just like the patch against gcc.target/aarch64/movk.c, the issue here is the two functions, foo32 and foo64 needed to mark as noipa so that IPA-VRP cannot propagate the return value.
gcc/testsuite/ChangeLog: * gcc.target/aarch64/simd/vmulx.x (foo32): Mark as noipa rather than noinline. (foo4): Likewise. --- gcc/testsuite/gcc.target/aarch64/simd/vmulx.x | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gcc/testsuite/gcc.target/aarch64/simd/vmulx.x b/gcc/testsuite/gcc.target/aarch64/simd/vmulx.x index 8968a64a95c..869e7485646 100644 --- a/gcc/testsuite/gcc.target/aarch64/simd/vmulx.x +++ b/gcc/testsuite/gcc.target/aarch64/simd/vmulx.x @@ -33,13 +33,13 @@ while (0) \ /* Functions used to return values that won't be optimised away. */ -float32_t __attribute__ ((noinline)) +float32_t __attribute__ ((noipa)) foo32 () { return 1.0; } -float64_t __attribute__ ((noinline)) +float64_t __attribute__ ((noipa)) foo64 () { return 1.0; -- 2.34.1