Displaying 6 results from an estimated 6 matches for "index_1".
Did you mean:
index1
2013 Oct 30
2
[LLVMdev] loop vectorizer
...; preds = %for.body,
%entry
ret void
Why is it saying Bad stride?Are the 'rem' and 'div' instruction asking
too much from it?
The code should be vectorizable. Here the index access for start=0, end=16:
loop count i = 0 index_0 = 0 index_1 = 4
loop count i = 1 index_0 = 1 index_1 = 5
loop count i = 2 index_0 = 2 index_1 = 6
loop count i = 3 index_0 = 3 index_1 = 7
loop count i = 4 index_0 = 8 index_1 = 12
loop count i = 5 index_0 = 9 index_1 = 13
loop count i = 6 index_0 = 10 index_1 = 14
loop count i = 7 in...
2013 Oct 30
0
[LLVMdev] loop vectorizer
...; preds = %for.body, %entry
> ret void
>
> Why is it saying Bad stride?Are the 'rem' and 'div' instruction asking too much from it?
>
> The code should be vectorizable. Here the index access for start=0, end=16:
>
> loop count i = 0 index_0 = 0 index_1 = 4
> loop count i = 1 index_0 = 1 index_1 = 5
> loop count i = 2 index_0 = 2 index_1 = 6
> loop count i = 3 index_0 = 3 index_1 = 7
> loop count i = 4 index_0 = 8 index_1 = 12
> loop count i = 5 index_0 = 9 index_1 = 13
> loop count i = 6 index_0 = 10 inde...
2013 Oct 31
0
[LLVMdev] loop vectorizer
...sses. Is this something you could do ?
>
Hi Nadav,
the only option I see is to unroll the loop by hand. Since the array
access is consecutive over 4 loop iterations I gave it a try and
unrolled the loop by a factor of 4. Which gives the following array
accesses:
loop iter 0:
index_0 = 0 index_1 = 4
index_0 = 1 index_1 = 5
index_0 = 2 index_1 = 6
index_0 = 3 index_1 = 7
loop iter 1:
index_0 = 8 index_1 = 12
index_0 = 9 index_1 = 13
index_0 = 10 index_1 = 14
index_0 = 11 index_1 = 15
For completeness, here the code:
void bar(std::uint64_t start, std::uint64_t end, float * _...
2013 Oct 31
2
[LLVMdev] loop vectorizer
...er <fwinter at jlab.org> wrote:
> the only option I see is to unroll the loop by hand. Since the array access is consecutive over 4 loop iterations I gave it a try and unrolled the loop by a factor of 4. Which gives the following array accesses:
>
> loop iter 0:
> index_0 = 0 index_1 = 4
> index_0 = 1 index_1 = 5
> index_0 = 2 index_1 = 6
> index_0 = 3 index_1 = 7
>
> loop iter 1:
> index_0 = 8 index_1 = 12
> index_0 = 9 index_1 = 13
> index_0 = 10 index_1 = 14
> index_0 = 11 index_1 = 15
The SLP-vectorizer detects 8 stores, but it can...
2013 Oct 31
0
[LLVMdev] loop vectorizer
...t; the only option I see is to unroll the loop by hand. Since the array
>> access is consecutive over 4 loop iterations I gave it a try and
>> unrolled the loop by a factor of 4. Which gives the following array
>> accesses:
>>
>> loop iter 0:
>> index_0 = 0 index_1 = 4
>> index_0 = 1 index_1 = 5
>> index_0 = 2 index_1 = 6
>> index_0 = 3 index_1 = 7
>>
>> loop iter 1:
>> index_0 = 8 index_1 = 12
>> index_0 = 9 index_1 = 13
>> index_0 = 10 index_1 = 14
>> index_0 = 11 index_1 = 15
>
> The...
2013 Oct 30
3
[LLVMdev] loop vectorizer
Hi Frank,
> We are looking at a variety of target architectures. Ultimately we aim to run on BG/Q and Intel Xeon Phi (native). However, running on those architectures with the LLVM technology is planned in some future. As a first step we would target vanilla x86 with SSE/AVX 128/256 as a proof-of-concept.
Great! It should be easy to support these targets. When you said wide-vectors I assumed