]> git.ipfire.org Git - thirdparty/gcc.git/commit
rs6000: Disassemble opaque modes using subregs to allow optimizations
authorPeter Bergner <bergner@linux.ibm.com>
Mon, 30 Jun 2025 13:31:25 +0000 (19:01 +0530)
committerKishan Parmar <kishan@linux.ibm.com>
Mon, 30 Jun 2025 13:34:49 +0000 (19:04 +0530)
commit69a2c243dd2cf9f77150c0eb86dfbc0931876bc1
treef3395d8158a0d024c295307bd069a997304a60db
parent139c6d1804bd7e1f37fb591a9327d72a0d1560fe
rs6000: Disassemble opaque modes using subregs to allow optimizations

PR109116  reveals  missed optimizations  when using  unspecs to  extract
vector  components  from opaque-mode  variables. Since RTL optimizers do
not understand unspecs, this leads to redundant register copies. Replace
unspecs with subregs, which  are well understood by RTL passes, allowing
optimizations to take place.

2025-06-30  Peter Bergner  <bergner@linux.ibm.com>

gcc/
PR target/109116
* config/rs6000/mma.md (unspec): Delete UNSPEC_MMA_EXTRACT.
(vsx_disassemble_pair): Expand into a vector register sized subreg.
(mma_disassemble_acc): Likewise.
(*vsx_disassemble_pair): Delete.
(*mma_disassemble_acc): Likewise.
gcc/config/rs6000/mma.md