Hi Segher & Will, Thanks for your review comments!
on 2021/2/19 上午2:33, Segher Boessenkool wrote: > Hi! > > On Wed, Feb 03, 2021 at 02:37:05PM +0800, Kewen.Lin wrote: >> This patch merges the previously approved one[1] and its relied patch >> made by Segher here[2], it's to make unsigned int vector init go with >> rldimi to merge two integers instead of shift and ior. > >> gcc/ChangeLog: >> >> 2020-02-03 Segher Boessenkool <seg...@kernel.crashing.org> >> Kewen Lin <li...@gcc.gnu.org> >> >> * config/rs6000/rs6000.md (*rotl<mode>3_insert_3): Renamed to... >> (rotl<mode>3_insert_3): ...this. >> (plus_ior_xor): New code_iterator. >> (define_split for GPR rl*imi): New splitter. >> * config/rs6000/vsx.md (vsx_init_v4si): Use gen_rotldi3_insert_3 >> for integer merging. >> >> gcc/testsuite/ChangeLog: >> >> * gcc.target/powerpc/vec-init-10.c: New test. > > Is there a PR you should mention here? I thought this is trivial so didn't file one upstream PR. I did a searching in upstream bugzilla, PR93453 looks similar but different. I confirmed that the current patch can't make it pass (just two insns instead of three insns). Do you happen to have one related in mind? If no, I will commit it without PR. > >> +/* { dg-final { scan-assembler-not "sldi" } } */ >> +/* { dg-final { scan-assembler-not "or" } } */ >> +/* { dg-final { scan-assembler-times {\mrldimi\M} 4 } } */ > > /* { dg-final { scan-assembler-not {\msldi\M} } } */ > /* { dg-final { scan-assembler-not {\mor\M} } } */ > /* { dg-final { scan-assembler-times {\mrldimi\M} 4 } } */ > > Okay for trunk with that tweak. Thanks! > Will fix it, thanks! BR, Kewen