search for: arrayidx10

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...