re PR target/68655 (SSE2 cannot vec_perm of low and high part)
authorJakub Jelinek <jakub@redhat.com>
Fri, 4 Dec 2015 08:25:24 +0000 (09:25 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Fri, 4 Dec 2015 08:25:24 +0000 (09:25 +0100)
commite315eea9d086ffef705ae96a04ef1b15cfec7745
tree66a206f2410fa1fee6325a6afb029b5952cbd15a
parent5505978ab31300aa02f321f97af9512916ed8595
re PR target/68655 (SSE2 cannot vec_perm of low and high part)

PR target/68655
* config/i386/i386.c (canonicalize_vector_int_perm): New function.
(expand_vec_perm_1): Use it and recurse if everything else
failed.  Use nd.perm instead of perm2.
(expand_vec_perm_even_odd_1): If testing_p, use gen_raw_REG
instead of gen_lowpart for the target.
(ix86_expand_vec_perm_const_1): Use canonicalize_vector_int_perm
and recurse if everything else failed.

* gcc.dg/torture/vshuf-4.inc (TESTS): Add one extra test.
* gcc.dg/torture/vshuf-4.inc (TESTS): Add two extra tests.

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