diff options
author | Haochen Gui <guihaoc@gcc.gnu.org> | 2023-08-16 14:29:36 +0800 |
---|---|---|
committer | Haochen Gui <guihaoc@gcc.gnu.org> | 2023-08-16 14:54:20 +0800 |
commit | d471bdb0453de7b738f49148b66d57cb5871937d (patch) | |
tree | 5083a63fa5d9a5f9ec7754e3447a901cc680cc5e /gcc/fold-const.cc | |
parent | a79cf858b39e01c80537bc5d47a5e9004418c267 (diff) | |
download | gcc-d471bdb0453de7b738f49148b66d57cb5871937d.zip gcc-d471bdb0453de7b738f49148b66d57cb5871937d.tar.gz gcc-d471bdb0453de7b738f49148b66d57cb5871937d.tar.bz2 |
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.
Diffstat (limited to 'gcc/fold-const.cc')
0 files changed, 0 insertions, 0 deletions