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