Displaying 20 results from an estimated 22 matches for "arrayidx10".
Did you mean:
arrayidx1
2017 Dec 19
4
MemorySSA question
...i32 %sub to i64
br label %for.body8
for.body8: ; preds = %
for.body8.lr.ph, %for.body8
*; 4 = MemoryPhi({for.body8.lr.ph
<http://for.body8.lr.ph>,1},{for.body8,2})*
%indvars.iv = phi i64 [ 0, %for.body8.lr.ph ], [ %indvars.iv.next,
%for.body8 ]
%arrayidx10 = getelementptr inbounds i32, i32* %a, i64 %indvars.iv
*; MemoryUse(4)*
%5 = load i32, i32* %arrayidx10, align 4, !tbaa !2
%arrayidx12 = getelementptr inbounds i32, i32* %d, i64 %indvars.iv
; MemoryUse(4)
%6 = load i32, i32* %arrayidx12, align 4, !tbaa !2
%mul = mul nsw i32 %6, %5
%arrayi...
2014 Sep 18
2
[LLVMdev] [Vectorization] Mis match in code generated
...dd nsw i32 %add3, %3 %arrayidx6 = getelementptr
> inbounds i32* %a, i32 4 %4 = load i32* %arrayidx6, align 4, !tbaa !1
> %add7 = add nsw i32 %add5, %4 %arrayidx8 = getelementptr inbounds i32* %a,
> i32 5 %5 = load i32* %arrayidx8, align 4, !tbaa !1 %add9 = add nsw i32
> %add7, %5 %arrayidx10 = getelementptr inbounds i32* %a, i32 6 %6 = load
> i32* %arrayidx10, align 4, !tbaa !1 %add11 = add nsw i32 %add9, %6
> %arrayidx12 = getelementptr inbounds i32* %a, i32 7 %7 = load i32*
> %arrayidx12, align 4, !tbaa !1 %add13 = add nsw i32 %add11, %7
> %arrayidx14 = getelementptr...
2014 Sep 19
3
[LLVMdev] [Vectorization] Mis match in code generated
...%add5 = add nsw i32 %add3, %3
%arrayidx6 = getelementptr inbounds i32* %a, i32 4
%4 = load i32* %arrayidx6, align 4, !tbaa !1
%add7 = add nsw i32 %add5, %4
%arrayidx8 = getelementptr inbounds i32* %a, i32 5
%5 = load i32* %arrayidx8, align 4, !tbaa !1
%add9 = add nsw i32 %add7, %5
%arrayidx10 = getelementptr inbounds i32* %a, i32 6
%6 = load i32* %arrayidx10, align 4, !tbaa !1
%add11 = add nsw i32 %add9, %6
%arrayidx12 = getelementptr inbounds i32* %a, i32 7
%7 = load i32* %arrayidx12, align 4, !tbaa !1
%add13 = add nsw i32 %add11, %7
%arrayidx14 = getelementptr inbounds i32...
2014 Sep 18
2
[LLVMdev] [Vectorization] Mis match in code generated
...!tbaa !1 %add5 = add nsw i32 %add3, %3 %arrayidx6 = getelementptr
inbounds i32* %a, i32 4 %4 = load i32* %arrayidx6, align 4, !tbaa !1
%add7 = add nsw i32 %add5, %4 %arrayidx8 = getelementptr inbounds i32* %a,
i32 5 %5 = load i32* %arrayidx8, align 4, !tbaa !1 %add9 = add nsw i32
%add7, %5 %arrayidx10 = getelementptr inbounds i32* %a, i32 6 %6 = load
i32* %arrayidx10, align 4, !tbaa !1 %add11 = add nsw i32 %add9, %6
%arrayidx12 = getelementptr inbounds i32* %a, i32 7 %7 = load i32*
%arrayidx12, align 4, !tbaa !1 %add13 = add nsw i32 %add11, %7
%arrayidx14 = getelementptr inbounds i32* %a, i3...
2013 Nov 08
1
[LLVMdev] loop vectorizer and storing to uniform addresses
...= load i64* %i, align 8
%inc7 = add nsw i64 %12, 1
store i64 %inc7, i64* %i, align 8
br label %for.cond
for.end8: ; preds = %for.cond
%arrayidx9 = getelementptr inbounds [4 x float]* %sum, i32 0, i64 0
%13 = load float* %arrayidx9, align 4
%arrayidx10 = getelementptr inbounds [4 x float]* %sum, i32 0, i64 1
%14 = load float* %arrayidx10, align 4
%add11 = fadd float %13, %14
%arrayidx12 = getelementptr inbounds [4 x float]* %sum, i32 0, i64 2
%15 = load float* %arrayidx12, align 4
%add13 = fadd float %add11, %15
%arrayidx14 = ge...
2013 Oct 28
2
[LLVMdev] loop vectorizer says Bad stride
...add5 to i64
%12 = load float** %a.addr, align 8
%arrayidx7 = getelementptr inbounds float* %12, i64 %idxprom6
%13 = load float* %arrayidx7, align 4
%14 = load i32* %i, align 4
%add8 = add nsw i32 256, %14
%idxprom9 = sext i32 %add8 to i64
%15 = load float** %b.addr, align 8
%arrayidx10 = getelementptr inbounds float* %15, i64 %idxprom9
%16 = load float* %arrayidx10, align 4
%add11 = fadd float %13, %16
%17 = load i32* %i, align 4
%add12 = add nsw i32 256, %17
%idxprom13 = sext i32 %add12 to i64
%18 = load float** %c.addr, align 8
%arrayidx14 = getelementptr i...
2014 Nov 10
2
[LLVMdev] [Vectorization] Mis match in code generated
...> > %4 = load i32* %arrayidx6, align 4, !tbaa !1
> > > %add7 = add nsw i32 %add5, %4
> > > %arrayidx8 = getelementptr inbounds i32* %a, i32 5
> > > %5 = load i32* %arrayidx8, align 4, !tbaa !1
> > > %add9 = add nsw i32 %add7, %5
> > > %arrayidx10 = getelementptr inbounds i32* %a, i32 6
> > > %6 = load i32* %arrayidx10, align 4, !tbaa !1
> > > %add11 = add nsw i32 %add9, %6
> > > %arrayidx12 = getelementptr inbounds i32* %a, i32 7
> > > %7 = load i32* %arrayidx12, align 4, !tbaa !1
> > >...
2017 Dec 19
2
MemorySSA question
...; preds = %
>> for.body8.lr.ph, %for.body8
>> *; 4 = MemoryPhi({for.body8.lr.ph
>> <http://for.body8.lr.ph>,1},{for.body8,2})*
>> %indvars.iv = phi i64 [ 0, %for.body8.lr.ph ], [ %indvars.iv.next,
>> %for.body8 ]
>> %arrayidx10 = getelementptr inbounds i32, i32* %a, i64 %indvars.iv
>> *; MemoryUse(4)*
>> %5 = load i32, i32* %arrayidx10, align 4, !tbaa !2
>> %arrayidx12 = getelementptr inbounds i32, i32* %d, i64 %indvars.iv
>> ; MemoryUse(4)
>> %6 = load i32, i32* %arrayidx12, align 4, !...
2013 Oct 28
2
[LLVMdev] Loop vectorizer dosen't find loop bounds
...runtime check ptr: %arrayidx = getelementptr inbounds
float* %a, i64 %indvars.iv
LV: Found a runtime check ptr: %arrayidx2 = getelementptr inbounds
float* %b, i64 %indvars.iv
LV: Found a runtime check ptr: %arrayidx7 = getelementptr inbounds
float* %a, i64 %2
LV: Found a runtime check ptr: %arrayidx10 = getelementptr inbounds
float* %b, i64 %2
LV: We need to do 10 pointer comparisons.
LV: We can't vectorize because we can't find the array bounds.
LV: Can't vectorize due to memory conflicts
LV: Not vectorizing.
Is there any chance to make this work?
Frank
2013 Oct 28
0
[LLVMdev] loop vectorizer says Bad stride
...load float** %a.addr, align 8
> %arrayidx7 = getelementptr inbounds float* %12, i64 %idxprom6
> %13 = load float* %arrayidx7, align 4
> %14 = load i32* %i, align 4
> %add8 = add nsw i32 256, %14
> %idxprom9 = sext i32 %add8 to i64
> %15 = load float** %b.addr, align 8
> %arrayidx10 = getelementptr inbounds float* %15, i64 %idxprom9
> %16 = load float* %arrayidx10, align 4
> %add11 = fadd float %13, %16
> %17 = load i32* %i, align 4
> %add12 = add nsw i32 256, %17
> %idxprom13 = sext i32 %add12 to i64
> %18 = load float** %c.addr, align 8
> %arrayid...
2014 Dec 11
5
[LLVMdev] dynamic data dependence extraction using llvm
...of simplified llvm-IR*
entry:
...
store i32 0, i32* %j, align4
br label %for.cond
for.cond:
...
br ...
for.body:
store i32 1, i32* %i, align4
br ...
for.cond1:
...
for.body3:
...
%temp4 = load[10 x i32]** %a.addr, align 8
...
store i32 %add, i32* %arrayidx10, align4
br ...
... ...
*End of simplified llvm-IR*
The general idea to obtain the dynamic data dependence is that 1. get and
record corresponding load/store addresses; 2. analyze load/store addresses
in different iterations to figure out RAW, WAR or WAW dependence.
However, as we can see in...
2013 Oct 28
0
[LLVMdev] Loop vectorizer dosen't find loop bounds
...idx = getelementptr inbounds
> float* %a, i64 %indvars.iv
> LV: Found a runtime check ptr: %arrayidx2 = getelementptr inbounds
> float* %b, i64 %indvars.iv
> LV: Found a runtime check ptr: %arrayidx7 = getelementptr inbounds
> float* %a, i64 %2
> LV: Found a runtime check ptr: %arrayidx10 = getelementptr inbounds
> float* %b, i64 %2
> LV: We need to do 10 pointer comparisons.
> LV: We can't vectorize because we can't find the array bounds.
> LV: Can't vectorize due to memory conflicts
> LV: Not vectorizing.
>
> Is there any chance to make this work?...
2013 Nov 08
0
[LLVMdev] loop vectorizer and storing to uniform addresses
On 7 November 2013 17:18, Frank Winter <fwinter at jlab.org> wrote:
> LV: We don't allow storing to uniform addresses
>
This is triggering because it didn't recognize as a reduction variable
during the canVectorizeInstrs() but did recognize that sum[q] is loop
invariant in canVectorizeMemory().
I'm guessing the nested loop was unrolled because of the low trip-count,
and
2013 Oct 28
2
[LLVMdev] Loop vectorizer dosen't find loop bounds
...unds
>> float* %a, i64 %indvars.iv
>> LV: Found a runtime check ptr: %arrayidx2 = getelementptr inbounds
>> float* %b, i64 %indvars.iv
>> LV: Found a runtime check ptr: %arrayidx7 = getelementptr inbounds
>> float* %a, i64 %2
>> LV: Found a runtime check ptr: %arrayidx10 = getelementptr inbounds
>> float* %b, i64 %2
>> LV: We need to do 10 pointer comparisons.
>> LV: We can't vectorize because we can't find the array bounds.
>> LV: Can't vectorize due to memory conflicts
>> LV: Not vectorizing.
>>
>> Is there an...
2013 Nov 08
3
[LLVMdev] loop vectorizer and storing to uniform addresses
I am trying my luck on this global reduction kernel:
float foo( int start , int end , float * A )
{
float sum[4] = {0.,0.,0.,0.};
for (int i = start ; i < end ; ++i ) {
for (int q = 0 ; q < 4 ; ++q )
sum[q] += A[i*4+q];
}
return sum[0]+sum[1]+sum[2]+sum[3];
}
LV: Checking a loop in "foo"
LV: Found a loop: for.cond1
LV: Found an induction variable.
LV: We
2014 Dec 11
2
[LLVMdev] dynamic data dependence extraction using llvm
...;
>
>
> for.body:
>
> store i32 1, i32* %i, align4
>
> br ...
>
>
>
> for.cond1:
>
> ...
>
>
>
> for.body3:
>
> ...
>
> %temp4 = load[10 x i32]** %a.addr, align 8
>
> ...
>
> store i32 %add, i32* %arrayidx10, align4
>
> br ...
>
>
>
> ... ...
>
> *End of simplified llvm-IR*
>
>
>
> The general idea to obtain the dynamic data dependence is that 1. get and
> record corresponding load/store addresses; 2. analyze load/store addresses
> in different iterations t...
2013 Oct 28
0
[LLVMdev] Loop vectorizer dosen't find loop bounds
...; LV: Found a runtime check ptr: %arrayidx2 = getelementptr
> >> inbounds
> >> float* %b, i64 %indvars.iv
> >> LV: Found a runtime check ptr: %arrayidx7 = getelementptr
> >> inbounds
> >> float* %a, i64 %2
> >> LV: Found a runtime check ptr: %arrayidx10 = getelementptr
> >> inbounds
> >> float* %b, i64 %2
> >> LV: We need to do 10 pointer comparisons.
> >> LV: We can't vectorize because we can't find the array bounds.
> >> LV: Can't vectorize due to memory conflicts
> >> LV: Not vec...
2013 Oct 29
2
[LLVMdev] Loop vectorizer dosen't find loop bounds
...ime check ptr: %arrayidx2 = getelementptr
>>>> inbounds
>>>> float* %b, i64 %indvars.iv
>>>> LV: Found a runtime check ptr: %arrayidx7 = getelementptr
>>>> inbounds
>>>> float* %a, i64 %2
>>>> LV: Found a runtime check ptr: %arrayidx10 = getelementptr
>>>> inbounds
>>>> float* %b, i64 %2
>>>> LV: We need to do 10 pointer comparisons.
>>>> LV: We can't vectorize because we can't find the array bounds.
>>>> LV: Can't vectorize due to memory conflicts
>>&g...
2014 Dec 12
2
[LLVMdev] dynamic data dependence extraction using llvm
...;
>
>
> for.body:
>
> store i32 1, i32* %i, align4
>
> br ...
>
>
>
> for.cond1:
>
> ...
>
>
>
> for.body3:
>
> ...
>
> %temp4 = load[10 x i32]** %a.addr, align 8
>
> ...
>
> store i32 %add, i32* %arrayidx10, align4
>
> br ...
>
>
>
> ... ...
>
> *End of simplified llvm-IR*
>
>
>
> The general idea to obtain the dynamic data dependence is that 1. get and
> record corresponding load/store addresses; 2. analyze load/store addresses
> in different iterations t...
2013 Oct 30
0
[LLVMdev] loop vectorizer
...Found an induction variable.
LV: We need to do 0 pointer comparisons.
LV: Checking memory dependencies
LV: Bad stride - Not an AddRecExpr pointer %arrayidx6 = getelementptr
inbounds float* %c, i64 %add2 SCEV: ((4 * %add2)<nsw> + %c)<nsw>
LV: Bad stride - Not an AddRecExpr pointer %arrayidx10 = getelementptr
inbounds float* %c, i64 %add312 SCEV: ((4 * %add312)<nsw> + %c)<nsw>
LV: Src Scev: ((4 * %add2)<nsw> + %c)<nsw>Sink Scev: ((4 * %add312)<nsw>
+ %c)<nsw>(Induction step: 0)
LV: Distance for store float %add5, float* %arrayidx6, align 4 to
st...