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.
>

Reply via email to