]> gcc.gnu.org Git - gcc.git/commit
rs6000: Skip unnecessary vector extract for certain elements.
authorHaochen Gui <guihaoc@gcc.gnu.org>
Wed, 16 Aug 2023 06:29:36 +0000 (14:29 +0800)
committerHaochen Gui <guihaoc@gcc.gnu.org>
Wed, 16 Aug 2023 06:54:20 +0000 (14:54 +0800)
commitd471bdb0453de7b738f49148b66d57cb5871937d
tree5083a63fa5d9a5f9ec7754e3447a901cc680cc5e
parenta79cf858b39e01c80537bc5d47a5e9004418c267
rs6000: Skip unnecessary vector extract for certain elements.

If the extracted element index is:
  - for byte, 7 on BE while 8 on LE;
  - for half word, 3 on BE while 4 on LE;

the element to be stored is already in the corresponding place for
stxsi[hb]x. We don't need a redundant vector extraction at all.

gcc/
PR target/110429
* config/rs6000/vsx.md (*vsx_extract_<mode>_store_p9): Skip vector
extract when the element is 7 on BE while 8 on LE for byte or 3 on
BE while 4 on LE for halfword.

gcc/testsuite/
PR target/110429
* gcc.target/powerpc/pr110429.c: New.
gcc/config/rs6000/vsx.md
gcc/testsuite/gcc.target/powerpc/pr110429.c [new file with mode: 0644]
This page took 0.06115 seconds and 6 git commands to generate.