This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH] Teach the vectorizer about multiple sizes
- From: Richard Guenther <rguenther at suse dot de>
- To: gcc-patches at gcc dot gnu dot org
- Cc: irar at il dot ibm dot com
- Date: Wed, 6 Oct 2010 15:05:55 +0200 (CEST)
- Subject: Re: [PATCH] Teach the vectorizer about multiple sizes
- References: <alpine.LNX.firstname.lastname@example.org>
On Wed, 6 Oct 2010, Richard Guenther wrote:
> This teaches the vectorizer about multiple possible SIMD vector sizes
> as for example supported by x86 with AVX and SSE. This is the least
> intrusive approach of adding support for autovectorizing using AVX
> without regressing compared to what loops are vectorized with SSE
> (because we'll fall back to SSE if AVX doesn't work).
> Bootstrapped and tested on x86_64-unknown-linux-gnu.
> I also built SPEC CPU 2006 with -mavx and fixed the fallout - a
> bogus builtin used for V8SF -> V8SI vectorization and us rejecting
> shuffle masks (int!) for 32byte floating-point shuffles (oh well ...).
> Ok for trunk?
And this is actually the i386.c hunk missing from the previous post ...
> 2010-10-06 Richard Guenther <email@example.com>
> * config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
> V8SF to V8SI conversion builtin.
--- gcc/config/i386/i386.c.orig 2010-10-06 14:29:58.000000000 +0200
+++ gcc/config/i386/i386.c 2010-10-06 14:30:13.000000000 +0200
@@ -26272,7 +26272,7 @@ ix86_vectorize_builtin_conversion (unsig
return (TYPE_UNSIGNED (src_type)
- : ix86_builtins[IX86_BUILTIN_CVTDQ2PS]);
+ : ix86_builtins[IX86_BUILTIN_CVTDQ2PS256]);