* config/i386/sse.md (vec_extract_hi_<mode>,
commit0212e2b8cf843db6baff1d1f6afd63175462d8d2
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 16 Sep 2011 19:14:36 +0000 (16 19:14 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 16 Sep 2011 19:14:36 +0000 (16 19:14 +0000)
tree63520943d260db2da79353c5616960e263cdd8ba
parentc1195a2e7dcd2403031cc729971be48f2a461daf
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178915 138bc75d-0d04-0410-961f-82ee72b054a4
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]