https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102868
--- Comment #2 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Xiong Hu Luo <luo...@gcc.gnu.org>: https://gcc.gnu.org/g:146b83e14a0a76a9ce8a4cb79997a078f437f779 commit r12-4781-g146b83e14a0a76a9ce8a4cb79997a078f437f779 Author: Xionghu Luo <luo...@linux.ibm.com> Date: Thu Oct 28 21:28:43 2021 -0500 rs6000: Optimize __builtin_shuffle when it's used to zero the upper bits [PR102868] If the second operand of __builtin_shuffle is const vector 0, and with specific mask, it can be optimized to vspltisw+xxpermdi instead of lxv. gcc/ChangeLog: PR target/102868 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Add patterns match and emit for VSX xxpermdi. gcc/testsuite/ChangeLog: PR target/102868 * gcc.target/powerpc/pr102868.c: New test.