https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100267
--- Comment #7 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by hongtao Liu <liuho...@gcc.gnu.org>: https://gcc.gnu.org/g:f51618f301664d02cc41205f1386c0c9b9a29a54 commit r12-1706-gf51618f301664d02cc41205f1386c0c9b9a29a54 Author: liuhongt <hongtao....@intel.com> Date: Thu Apr 29 18:27:09 2021 +0800 Optimize vpexpand* to mask mov when mask have all ones in it's lower part (including 0 and -1). gcc/ChangeLog: PR target/100267 * config/i386/i386-builtin.def (BDESC): Adjust builtin name. * config/i386/sse.md (<avx512>_expand<mode>_mask): Rename to .. (expand<mode>_mask): this .. (*expand<mode>_mask): New pre_reload splitter to transform v{,p}expand* to vmov* when mask is zero, all ones, or has all ones in it's lower part, otherwise still generate v{,p}expand*. gcc/testsuite/ChangeLog: PR target/100267 * gcc.target/i386/avx512bw-pr100267-1.c: New test. * gcc.target/i386/avx512bw-pr100267-b-2.c: New test. * gcc.target/i386/avx512bw-pr100267-d-2.c: New test. * gcc.target/i386/avx512bw-pr100267-q-2.c: New test. * gcc.target/i386/avx512bw-pr100267-w-2.c: New test. * gcc.target/i386/avx512f-pr100267-1.c: New test. * gcc.target/i386/avx512f-pr100267-pd-2.c: New test. * gcc.target/i386/avx512f-pr100267-ps-2.c: New test. * gcc.target/i386/avx512vl-pr100267-1.c: New test. * gcc.target/i386/avx512vl-pr100267-pd-2.c: New test. * gcc.target/i386/avx512vl-pr100267-ps-2.c: New test. * gcc.target/i386/avx512vlbw-pr100267-1.c: New test. * gcc.target/i386/avx512vlbw-pr100267-b-2.c: New test. * gcc.target/i386/avx512vlbw-pr100267-d-2.c: New test. * gcc.target/i386/avx512vlbw-pr100267-q-2.c: New test. * gcc.target/i386/avx512vlbw-pr100267-w-2.c: New test.