Hi, This patch is to make unsigned int vector init go with rldimi to merge two integers instead of shift and ior. I tried to use nonzero_bits in md file to make it more general, but the testing shows it isn't doable. The reason is that some passes would replace some pseudos with other pseudos and do the recog again, but at that time the nonzero_bits could get rough information and lead the recog fails unexpectedly. btw, the test case would reply on the combine patch[1]. Bootstrapped/regtested on powerpc64le-linux-gnu P9. BR, Kewen [1] https://gcc.gnu.org/pipermail/gcc-patches/2020-December/561413.html gcc/ChangeLog: * config/rs6000/rs6000.md (*rotl3_insert_3): Renamed to... (rotl3_insert_3): ...this. * 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. -----