http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52607
--- Comment #13 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-03-20 16:26:08 UTC --- Author: jakub Date: Tue Mar 20 16:25:54 2012 New Revision: 185577 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=185577 Log: 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. Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/i386.c trunk/gcc/config/i386/i386.md trunk/gcc/config/i386/sse.md