aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/c-c++-common/Wstringop-overflow.c
diff options
context:
space:
mode:
authorPeter Bergner <bergner@linux.ibm.com>2021-03-08 12:20:41 -0600
committerPeter Bergner <bergner@linux.ibm.com>2021-03-08 12:21:39 -0600
commitcb25dea3ef2c7768007bffc56f0e31e1c42b44e2 (patch)
tree53110f8a8226b7d1a8606e84dc070df93114b210 /gcc/testsuite/c-c++-common/Wstringop-overflow.c
parentded6a1953dd7f43229c44e5d0d17c264338a3f4c (diff)
downloadgcc-cb25dea3ef2c7768007bffc56f0e31e1c42b44e2.zip
gcc-cb25dea3ef2c7768007bffc56f0e31e1c42b44e2.tar.gz
gcc-cb25dea3ef2c7768007bffc56f0e31e1c42b44e2.tar.bz2
rs6000: Fix invalid splits when using Altivec style addresses [PR98959]
The rs6000_emit_le_vsx_* functions assume they are not passed an Altivec style "& ~16" address. However, some of our expanders and splitters do not verify we do not have an Altivec style address before calling those functions, leading to an ICE. The solution here is to guard the expanders and splitters to ensure we do not call them if we're given an Altivec style address. 2021-03-08 Peter Bergner <bergner@linux.ibm.com> gcc/ PR target/98959 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_permute): Add an assert to ensure we do not have an Altivec style address. * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>): Disable if passed an Altivec style address. (*vsx_le_perm_store_<mode>): Likewise. (splitters after *vsx_le_perm_store_<mode>): Likewise. (vsx_load_<mode>): Disable special expander if passed an Altivec style address. (vsx_store_<mode>): Likewise. gcc/testsuite/ PR target/98959 * gcc.target/powerpc/pr98959.c: New test.
Diffstat (limited to 'gcc/testsuite/c-c++-common/Wstringop-overflow.c')
0 files changed, 0 insertions, 0 deletions