diff options
author | Richard Earnshaw <rearnsha@arm.com> | 2025-09-03 18:08:49 +0100 |
---|---|---|
committer | Richard Earnshaw <rearnsha@arm.com> | 2025-09-04 14:58:59 +0100 |
commit | 593e9ee05d683587c737df4fa7815a03f2c076c3 (patch) | |
tree | 8c234520e27f78d0c8ecc29331fa440babeba257 /libgo/go/debug/elf/testdata/go-relocation-test-clang-arm.obj | |
parent | 7f7f1878eedd8093d382e1e7b74649d7e97d5918 (diff) | |
download | gcc-593e9ee05d683587c737df4fa7815a03f2c076c3.zip gcc-593e9ee05d683587c737df4fa7815a03f2c076c3.tar.gz gcc-593e9ee05d683587c737df4fa7815a03f2c076c3.tar.bz2 |
arm: wrong code from vset_lane_* [PR121775]
Insufficient validation of the operands in vec_set_<mode>_internal
means that the optimizers can transform the exanded code into
something that is invalid. We then emit code based on the incorrect
RTL assuming that it is still valid. A valid pattern can only have a
single bit set in the immediate operand, representing the lane to be
written.
gcc/ChangeLog:
PR target/121775
* config/arm/neon.md (vec_set<mode>_internal, all variants):
validate the immediate operand that indicates the lane to
modify.
gcc/testsuite/ChangeLog:
PR target/121775
* gcc.target/arm/simd/vset_lane_u8.c: New test.
Diffstat (limited to 'libgo/go/debug/elf/testdata/go-relocation-test-clang-arm.obj')
0 files changed, 0 insertions, 0 deletions