]> git.ipfire.org Git - thirdparty/gcc.git/commit
Fix ICE caused by wrong condition.
authorliuhongt <hongtao.liu@intel.com>
Fri, 13 May 2022 07:48:01 +0000 (15:48 +0800)
committerliuhongt <hongtao.liu@intel.com>
Mon, 16 May 2022 00:30:34 +0000 (08:30 +0800)
commit69c4b5c519f0df37e4903992644cc29682721bc1
tree97e8833d73fd906c2533908f637e2d11954b4f2f
parentac6a32f663a6c3b11c205e7c599bd1d92f80f19a
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.
gcc/config/i386/i386-expand.cc
gcc/testsuite/gcc.target/i386/pr105587.c [new file with mode: 0644]