]> git.ipfire.org Git - thirdparty/gcc.git/commit
rs6000: Don't allow AltiVec address in movoo & movxo pattern [PR110411]
authorJeevitha <jeevitha@linux.ibm.com>
Thu, 31 Aug 2023 10:40:18 +0000 (05:40 -0500)
committerJeevitha <jeevitha@linux.ibm.com>
Thu, 31 Aug 2023 10:48:17 +0000 (05:48 -0500)
commit9ea1248604d7b65009af32103814332f35bd33e2
tree02cf64246d9dd69799cd705e98284f33156d2b83
parente69d050fd990f8e72e19e6dfb1bf7da2f09236f7
rs6000: Don't allow AltiVec address in movoo & movxo pattern [PR110411]

There are no instructions that do traditional AltiVec addresses (i.e.
with the low four bits of the address masked off) for OOmode and XOmode
objects. The solution is to modify the constraints used in the movoo and
movxo pattern to disallow these types of addresses, which assists LRA in
resolving this issue. Furthermore, the mode size 16 check has been
removed in vsx_quad_dform_memory_operand to allow OOmode and XOmode, and
quad_address_p already handles less than size 16.

2023-08-31  Jeevitha Palanisamy  <jeevitha@linux.ibm.com>

gcc/
PR target/110411
* config/rs6000/mma.md (define_insn_and_split movoo): Disallow
AltiVec address operands.
(define_insn_and_split movxo): Likewise.
* config/rs6000/predicates.md (vsx_quad_dform_memory_operand): Remove
redundant mode size check.

gcc/testsuite/
PR target/110411
* gcc.target/powerpc/pr110411-1.c: New testcase.
* gcc.target/powerpc/pr110411-2.c: New testcase.
gcc/config/rs6000/mma.md
gcc/config/rs6000/predicates.md
gcc/testsuite/gcc.target/powerpc/pr110411-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/powerpc/pr110411-2.c [new file with mode: 0644]