]> git.ipfire.org Git - thirdparty/gcc.git/commit
rs6000: Fix regression cases caused 16-byte by pieces move
authorHaochen Gui <guihaoc@gcc.gnu.org>
Fri, 17 Nov 2023 09:17:59 +0000 (17:17 +0800)
committerHaochen Gui <guihaoc@gcc.gnu.org>
Fri, 17 Nov 2023 09:19:41 +0000 (17:19 +0800)
commit10615c8a10d6b61e813254924d76be728dbd4688
tree82336995b983274e89d69424957b1501af7e8d88
parentcd295a80c91040fd4d826528c8e8e07fe909ae62
rs6000: Fix regression cases caused 16-byte by pieces move

The previous patch enables 16-byte by pieces move. Originally 16-byte
move is implemented via pattern.  expand_block_move does an optimization
on P8 LE to leverage V2DI reversed load/store for memory to memory move.
Now 16-byte move is implemented via by pieces move and finally split to
two DI load/store.  This patch creates an insn_and_split pattern to
retake the optimization.

gcc/
PR target/111449
* config/rs6000/vsx.md (*vsx_le_mem_to_mem_mov_ti): New.

gcc/testsuite/
PR target/111449
* gcc.target/powerpc/pr111449-2.c: New.
gcc/config/rs6000/vsx.md
gcc/testsuite/gcc.target/powerpc/pr111449-2.c [new file with mode: 0644]