On Thu, Dec 1, 2011 at 12:20 AM, Ira Rosen <ira.ro...@linaro.org> wrote:
> On 30 November 2011 02:33, Michael Hope <michael.h...@linaro.org> wrote:
>
>> I then converted the vld1 and vst1 to specifiy an alignment of 64
>> bits. See:
>>  http://people.linaro.org/~michaelh/incoming/set-alignment.png
>>
>> This improved the throughput in all cases and in cases for more than 50
>> words by 14 %.  This graph also shows the overhead of the runtime
>> peeling check.  The blue line is the vectoriser version which is
>> slower to pick up due the greater per call overhead.
>
> So, the auto-vectorized code doesn't have the alignment hints (peeling
> or not peeling), right? Is this how a hint is supposed to look like:
> vld1.i64 {d16-d17}, [r1 :"#_128"] , or am I looking for a wrong thing?

I had a look in the backend and the vld1/vst1 %A operand adds the
alignment if known.  It correctly adds [r1:64] if I feed in an array
of int64s.  The code checks based on MEM_ALIGN and MEM_SIZE of the
operand:
        align = MEM_ALIGN (x) >> 3;
        memsize = INTVAL (MEM_SIZE (x));

Not sure why the backend generates a vldmia instead of a vld1 though.

-- Michael

_______________________________________________
linaro-toolchain mailing list
linaro-toolchain@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-toolchain

Reply via email to