PR target/52607
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 20 Mar 2012 16:25:54 +0000 (16:25 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 20 Mar 2012 16:25:54 +0000 (16:25 +0000)
commit541e350d51ba4016a752fce095ec62f89f2fbc1a
tree125a00826bd91bb2914b8a2b8c72e9e6c03b8776
parent1987d213e18b11c0acf6e7d04033f4ca2e3e2c8a
PR target/52607
* config/i386/i386.md ("isa" attribute): Add avx2 and noavx2.
("enabled" attribute): Handle avx2 and noavx2 isas.
* config/i386/sse.md (avx2_vec_dupv8sf_1, avx2_pbroadcast<mode>_1):
New insns.
(vec_dup<mode>): Add avx2 =x,x alternative.
(vec_dup<mode> splitter): Don't split if TARGET_AVX2.
(*avx_vperm_broadcast_<mode>): Don't split V4DFmode if TARGET_AVX2.
For TARGET_AVX2, V8SFmode and elt == 0 split into vbroadcastss.
* config/i386/i386.c (expand_vec_perm_pshufb): Emit also vpermps
for V8SFmode.
(expand_vec_perm_1): For broadcasts, use avx2_pbroadcast<mode>_1
if possible, handle also V8SFmode.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@185577 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/i386/i386.c
gcc/config/i386/i386.md
gcc/config/i386/sse.md