]> git.ipfire.org Git - thirdparty/gcc.git/commit
i386.c (expand_vec_perm_vpshufb2_vpermq_even_odd): Use d->op1 instead of d->op0 for...
authorJakub Jelinek <jakub@redhat.com>
Wed, 19 Oct 2011 22:08:21 +0000 (00:08 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Wed, 19 Oct 2011 22:08:21 +0000 (00:08 +0200)
commitf33fa066984c6f29eee20db130133354a5ec995c
treed8b9e0a54a1bf75a7bb04ff70bb70da7d6527ded
parent24ef84f6c3041346d50c6a6ea2f54812e48963a7
i386.c (expand_vec_perm_vpshufb2_vpermq_even_odd): Use d->op1 instead of d->op0 for the second vpshufb.

* config/i386/i386.c (expand_vec_perm_vpshufb2_vpermq_even_odd): Use
d->op1 instead of d->op0 for the second vpshufb.
(expand_vec_perm_even_odd_1): For V8SImode fix vpshufd immediates.
(ix86_expand_vec_perm_const): If mask indicates two operands are
needed, but both are the same and expanding them as d.op0 == d.op1
failed, retry with d.op0 != d.op1.
(ix86_expand_vec_perm_builtin): Likewise.  Handle sorry printing
also for d.nelt == 32.

* gcc.dg/torture/vshuf-32.inc: Add interleave permutations.
* gcc.dg/torture/vshuf-16.inc: Likewise.
* gcc.dg/torture/vshuf-8.inc: Likewise.
* gcc.dg/torture/vshuf-4.inc: Likewise.

From-SVN: r180212
gcc/ChangeLog
gcc/config/i386/i386.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/torture/vshuf-16.inc
gcc/testsuite/gcc.dg/torture/vshuf-32.inc
gcc/testsuite/gcc.dg/torture/vshuf-4.inc
gcc/testsuite/gcc.dg/torture/vshuf-8.inc