search for: scather

Displaying 4 results from an estimated 4 matches for "scather".

Did you mean: rather
2013 Oct 21
0
[LLVMdev] First attempt at recognizing pointer reduction
...To detect memory access patterns you will want to look at the SCEV of a pointer (or at a set of SCEVs/pointers). This way you get a canonical form. For example these should be the SCEVs of “int a[2*i] = ; a[2*i+1] =”: {ptr, +, 8}_loop {ptr+4, +, 8}_loop Each access on its own requires a gather/scather (2 loads/stores when vectorized (VF=2) + inserts/extracts). But when we look at both at once we see that we only need two load/store in total (plus some interleaving operations). What other patterns (than strided accesses) do you want to vectorize? > > For instance, even if the relationshi...
2013 Oct 21
2
[LLVMdev] First attempt at recognizing pointer reduction
Hi Arnold, To sum up my intentions, I want to understand how the reduction/induction variable detection works in LLVM, so that I can know better how to detect different patterns in memory, not just the stride vectorization. For instance, even if the relationship between each loop would be complicated, I know that in each loop, all three reads are sequential. So, at least, I could use a
2013 Oct 21
0
[LLVMdev] LLVMdev Digest, Vol 112, Issue 56
...To detect memory access patterns you will want to look at the SCEV of a pointer (or at a set of SCEVs/pointers). This way you get a canonical form. For example these should be the SCEVs of ?int a[2*i] = ; a[2*i+1] =?: {ptr,  +, 8}_loop {ptr+4, +, 8}_loop Each access on its own requires a gather/scather (2 loads/stores when vectorized (VF=2) + inserts/extracts). But when we look at both at once we see that we only need two load/store in total (plus some interleaving operations). What other patterns (than strided accesses) do you want to vectorize? > > For instance, even if the relationshi...
2013 Oct 21
1
[LLVMdev] First attempt at recognizing pointer reduction
On 21 October 2013 20:58, Arnold Schwaighofer <aschwaighofer at apple.com>wrote: > For example these should be the SCEVs of “int a[2*i] = ; a[2*i+1] =”: > > {ptr, +, 8}_loop > {ptr+4, +, 8}_loop > > Each access on its own requires a gather/scather (2 loads/stores when > vectorized (VF=2) + inserts/extracts). But when we look at both at once we > see that we only need two load/store in total (plus some interleaving > operations). > Yes, I've been studying SCEV when trying to understand some other patterns where the vectorize...