sse.md (vec_extract_hi_<mode>, [...]): Use vextracti128 instead of vextractf128 for...
authorJakub Jelinek <jakub@redhat.com>
Fri, 16 Sep 2011 19:14:36 +0000 (21:14 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Fri, 16 Sep 2011 19:14:36 +0000 (21:14 +0200)
commit6e2cb3913952ef1b7fd31f4f5b8754f55f689d9a
tree63520943d260db2da79353c5616960e263cdd8ba
parent6deb519753e07d167eda75bced5a7987a57f0a03
sse.md (vec_extract_hi_<mode>, [...]): Use vextracti128 instead of vextractf128 for -mavx2 and integer vectors.

* config/i386/sse.md (vec_extract_hi_<mode>,
vec_extract_hi_v16hi, vec_extract_hi_v32qi): Use
vextracti128 instead of vextractf128 for -mavx2 and
integer vectors.  For V4DFmode fix up mode attribute.
(VEC_EXTRACT_MODE): For TARGET_AVX add 32-byte vectors.
(vec_set_lo_<mode>, vec_set_hi_<mode>): For VI8F_256 modes use V4DF
instead of V8SF mode attribute.
(avx2_extracti128): Change into define_expand.
* config/i386/i386.c (ix86_expand_vector_extract): Handle
32-byte vector modes if TARGET_AVX.

* gcc.target/i386/sse2-extract-1.c: New test.
* gcc.target/i386/avx-extract-1.c: New test.

From-SVN: r178915
gcc/ChangeLog
gcc/config/i386/i386.c
gcc/config/i386/sse.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/avx-extract-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/sse2-extract-1.c [new file with mode: 0644]