https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105587
--- Comment #3 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:69c4b5c519f0df37e4903992644cc29682721bc1 commit r13-468-g69c4b5c519f0df37e4903992644cc29682721bc1 Author: liuhongt <hongtao....@intel.com> Date: Fri May 13 15:48:01 2022 +0800 Fix ICE caused by wrong condition. When d->perm[i] == d->perm[i-1] + 1 and d->perm[i] == nelt, it's not continuous. It should fail if there's more than 2 continuous areas. gcc/ChangeLog: PR target/105587 * config/i386/i386-expand.cc (expand_vec_perm_pslldq_psrldq_por): Fail when (d->perm[i] == d->perm[i-1] + 1) && d->perm[i] == nelt && start != -1. gcc/testsuite/ChangeLog: * gcc.target/i386/pr105587.c: New test.