This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Teach the vectorizer about multiple sizes

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?
> Thanks,
> Richard.

And this is actually the i386.c hunk missing from the previous post ...

> 2010-10-06  Richard Guenther  <>
> 	* config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
> 	V8SF to V8SI conversion builtin.

Index: gcc/config/i386/i386.c
--- 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
            case V8SFmode:
              return (TYPE_UNSIGNED (src_type)
                      ? NULL_TREE
-                     : ix86_builtins[IX86_BUILTIN_CVTDQ2PS]);
+                     : ix86_builtins[IX86_BUILTIN_CVTDQ2PS256]);
              return NULL_TREE;

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]