-
- Downloads
rs6000: Use subreg for QI/HI vector init
This patch is to use paradoxical subreg instead of zero_extend for promoting QI/HI to SI/DI when we want to construct one vector with these modes. Since we do the gpr->vsx movement and vector merge or pack later, the high part is useless and safe to use paradoxical subreg. It can avoid useless rlwinms generated for signed cases. Bootstrapped/regtested on powerpc64le-linux-gnu P9. gcc/ChangeLog: * config/rs6000/rs6000.c (rs6000_expand_vector_init): Use paradoxical subreg instead of zero_extend for QI/HI promotion. gcc/testsuite/ChangeLog: * gcc.target/powerpc/pr96933-1.c: Adjusted to check no rlwinm. * gcc.target/powerpc/pr96933-2.c: Likewise.
Showing
- gcc/config/rs6000/rs6000.c 3 additions, 11 deletionsgcc/config/rs6000/rs6000.c
- gcc/testsuite/gcc.target/powerpc/pr96933-1.c 1 addition, 0 deletionsgcc/testsuite/gcc.target/powerpc/pr96933-1.c
- gcc/testsuite/gcc.target/powerpc/pr96933-2.c 1 addition, 0 deletionsgcc/testsuite/gcc.target/powerpc/pr96933-2.c
Loading
Please register or sign in to comment