On Sat, May 12, 2012 at 1:39 PM, Toon Moene <t...@moene.org> wrote:
> On 05/12/2012 12:36 PM, Richard Guenther wrote:
>
>> On Sat, May 12, 2012 at 9:53 AM, Toon Moene<t...@moene.org>  wrote:
>
>
>>> On 05/11/2012 01:59 PM, Richard Guenther wrote:
>>>
>>>> This fixes the dependency of vectorization of strided loads on
>>>> gather support.  For that to work we need to lift the restriction
>>>> in data-ref analysis that requries a constant DR_STEP.  Fortunately
>>>> fallout is small.
>>>
>>>
>>>
>>> Would this also vectorize strided loops when the architecture doesn't
>>> have a
>>> gather instruction ?
>>
>>
>> gather is different from strided loops.  Gather is a[b[i]] while strided
>> loops
>> are for (i=0;; i+=stride) ...= a[i] with stride being non-constant.
>>
>> Your testcase requires gather support.
>
>
> Yep, apparently I didn't read your explanation correctly.
>
> On the other hand, I'm wondering if - in the absence of a gather
> *instruction* - one could do a gather-by-hand, i.e., load 8 32-bit floating
> point values in a (temporary) consecutive buffer, then load it into a vector
> register ...

Sure - gather and non-constant stride support is somewhat related.
We are also currently missing to handle non-power-of-two constant
strides (which can simply use the non-constant stride path as well).

Richard.

>
> --
> Toon Moene - e-mail: t...@moene.org - phone: +31 346 214290
> Saturnushof 14, 3738 XG  Maartensdijk, The Netherlands
> At home: http://moene.org/~toon/; weather: http://moene.org/~hirlam/
> Progress of GNU Fortran: http://gcc.gnu.org/wiki/GFortran#news

Reply via email to