Displaying 6 results from an estimated 6 matches for "_loop".
Did you mean:
loop
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 b...
2013 Oct 21
0
[LLVMdev] First attempt at recognizing pointer reduction
...different patterns in memory, not just the stride vectorization.
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...
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
...different patterns in memory, not just the stride vectorization.
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...
2008 Jun 13
7
Rubyscript2exe undefined ''run'' method
After I ran my program through Rubyscript2exe, the Random.exe file that
it created is causing the following error:
D:\Ruby projects>random.exe
C:\DOCUME~1\JEDELS~1\eee\eee.Random.exe.2\app\Random.rb:59: undefined
method ''ru
n'' for Wxruby2::App (NoMethodError)
from
C:\DOCUME~1\JEDELS~1\eee\eee.Random.exe.2\bootstrap.rb:77:in `load''
from
2009 Dec 31
1
[PATCH] Autogenerate uureg opcode macros
...stant(ureg, i)
#define _CONST(v, s) UREG_CONST(v, ureg, s)
- #define _CONST_MAT3(v, s) UREG_CONST_MAT3(v, ureg, s)
+#define _CONST_MAT3(v, s) UREG_CONST_MAT3(v, ureg, s)
#define _CONST_MAT4(v, s) UREG_CONST_MAT4(v, ureg, s)
#define _ADDRESS(v) struct ureg_src v = ureg_DECL_address(ureg)
#define _LOOP(v) struct ureg_src v = ureg_DECL_loop(ureg)
@@ -88,6 +88,41 @@ static inline struct ureg_src _src(const struct ureg_src& src) {return src;}
#define _zy(v) _swz(v, Z, Y, Z, Y)
#define _zw(v) _swz(v, Z, W, Z, W)
+#define _ind(r, a) ureg_src_indirect(_src(r), _src(a))
+#define _abs(x) ureg_abs...