http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44180
--- Comment #2 from hjl at gcc dot gnu.org <hjl at gcc dot gnu.org> 2010-10-13 21:20:12 UTC --- Author: hjl Date: Wed Oct 13 21:20:07 2010 New Revision: 165436 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=165436 Log: Addd 256bit AVX vectorizer patterns. 2010-10-13 H.J. Lu <hongjiu...@intel.com> * config/i386/i386.c (ix86_build_const_vector): Check vector mode instead of scalar mode. (ix86_build_signbit_mask): Likewise. (ix86_expand_fp_absneg_operator): Updated. (ix86_expand_copysign): Likewise. (ix86_expand_int_vcond): Likewise. (ix86_emit_swdivsf): Likewise. (ix86_sse_copysign_to_positive): Likewise. (ix86_expand_sse_fabs): Likewise. * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise. * config/i386/sse.md (copysign<mode>3): Likewise. (sse2_cvtudq2ps): Likewise. (vec_unpacku_float_hi_v4si): Likewise. (vec_unpacku_float_lo_v4si): Likewise. * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256. (bdesc_args): Likewise. (ix86_builtin_vectorized_function): Support IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256, IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256, and IX86_BUILTIN_CVTPS2DQ256. (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256. * config/i386/sse.md (STORENT_MODE): New. (VEC_FLOAT_MODE): Likewise. (VEC_EXTRACT_MODE): Likewise. (*avx_cvtdq2pd256_2): Likewise. (vec_pack_trunc_v4df): Likewise. (vec_interleave_highv8sf): Likewise. (vec_interleave_lowv8sf): Likewise. (storent<mode>): Macroized. (<code><mode>2: absneg): Likewise. (copysign<mode>3): Likewise. (vec_extract<mode>): Likewise. PR target/44180 * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten for V8SFmode. 2010-10-13 Richard Guenther <rguent...@suse.de> H.J. Lu <hongjiu...@intel.com> * config/i386/sse.md (reduc_splus_v8sf): Add. (reduc_splus_v4df): Likewise. (vec_unpacks_hi_v8sf): Likewise. (vec_unpacks_lo_v8sf): Likewise. (*avx_cvtps2pd256_2): Likewise. (vec_unpacks_float_hi_v8si): Likewise. (vec_unpacks_float_lo_v8si): Likewise. (vec_interleave_highv4df): Likewise. (vec_interleave_lowv4df): Likewise. Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/i386.c trunk/gcc/config/i386/i386.md trunk/gcc/config/i386/sse.md