On Thu, Mar 24, 2011 at 2:50 PM, Simon Chopin <chopin.si...@googlemail.com> wrote: > On Thu, Mar 24, 2011 at 12:55:44PM +0100, Richard Guenther wrote: >> There are no vector of complex types and GCC internally does not handle >> this case as well. Instead GCC lowers complex operations to > Yep, sorry, my mistake. I meant array of complex. >> piecewise scalar operations, thus vectorization would have vectors >> of the complex components. There are a number of bugs in bugzilla >> for complex vectorization, like PR37021 or PR40770. > > And yet, when trying to multiply numbers, gcc says that complex isn't a > supported type.
_Complex float should work. Complex is a c99 feature and requires you to include complex.h > From the links you provided, part of the solution would > be to associate the complex type and the vector type of its scalar type. > While it should work for most operations, providing support for the > IMAGPART_EXPR and REALPART_EXPR, the multiplication and division > operations are implemented as separated functions of libgcc. Because of > that, they wouldn't gain from the vectorization, or I am mistaken > (again) ? Multiplication is inlined for -fcx-fortran-rules for example. Yes, division is always out-of-line. Richard. > Cheers, > > Simon > > P.S. I am not aware of the list policy regarding the CCs, but I assumed > you were already subscribed. >