Displaying 2 results from an estimated 2 matches for "a_ind".
Did you mean:
a_int
2013 Oct 23
0
[LLVMdev] First attempt at recognizing pointer reduction
...rom the vectorized reduction.
%a_red = phi <2 x i32*> [preheader, <%a, 0>], [loop, %a_red_next]
%a = horizontal_add %a_red // This is executed on every iteration.
= load a
…
%a_red_next = gep %a_red, <3, 3>
Something like the above wants to be a simple induction
%a_ind = phi i32* [preheader, %a], [loop, %a_next]
… use of %a_ind
...
%a_next = gep %a_ind, 6
The horizontal reduction i mention above is not needed if you have no use inside the loop like in the case of:
r=0
for (i = …) {
r += a[i];
}
return r;
This is simply (i am leaving out the induction...
2013 Oct 23
2
[LLVMdev] First attempt at recognizing pointer reduction
On 23 October 2013 16:05, Arnold Schwaighofer <aschwaighofer at apple.com>wrote:
> In the examples you gave there are no reduction variables in the loop
> vectorizer’s sense. But, they all have memory accesses that are strided.
>
This is what I don't get. As far as I understood, a reduction variable is
the one that aggregates the computation done by the loop, and is used