search for: add5

Displaying 19 results from an estimated 19 matches for "add5".

Did you mean: add
2010 Feb 17
2
[LLVMdev] Source Code Location of an Instruction
...%tmp3 = load i32* getelementptr inbounds ([5 x i32]* @array, i64 0, i64 1) ; <i32> [#uses=1] %mul = mul i32 %add, %tmp3 ; <i32> [#uses=2] store i32 %mul, i32* getelementptr inbounds ([5 x i32]* @array, i64 0, i64 0) ; array.c:6: array[2] = array[0] + 1; %add5 = add nsw i32 %mul, 1 ; <i32> [#uses=2] store i32 %add5, i32* getelementptr inbounds ([5 x i32]* @array, i64 0, i64 2) ; array.c:7: return array[2]; ret i32 %add5 } When lines get re-arranged with basic optimizations, the output could be messy, but at least on -O0,...
2010 Feb 16
0
[LLVMdev] Source Code Location of an Instruction
On Feb 13, 2010, at 7:22 AM, Jingyue Wu wrote: > I would like to know how to locate an LLVM instruction in the source > code, i.e. to get the line number of its corresponding source code > statement. I remember in LLVM 2.4, DbgStopPointInst is designed to > help this locating, but it seems deprecated in the latest LLVM. We were discussing that a few days ago:
2010 Feb 13
2
[LLVMdev] Source Code Location of an Instruction
Hi, I would like to know how to locate an LLVM instruction in the source code, i.e. to get the line number of its corresponding source code statement. I remember in LLVM 2.4, DbgStopPointInst is designed to help this locating, but it seems deprecated in the latest LLVM. Thanks, Jingyue -- Jingyue Wu Department of Computer Science Columbia University New York, NY 10027
2014 Sep 18
2
[LLVMdev] [Vectorization] Mis match in code generated
...ayidx1, align 4, !tbaa !1 %add = add nsw i32 %1, %0 > %arrayidx2 = getelementptr inbounds i32* %a, i32 2 %2 = load i32* > %arrayidx2, align 4, !tbaa !1 %add3 = add nsw i32 %add, %2 %arrayidx4 = > getelementptr inbounds i32* %a, i32 3 %3 = load i32* %arrayidx4, align 4, > !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, %...
2014 Sep 19
3
[LLVMdev] [Vectorization] Mis match in code generated
...ad i32* %arrayidx1, align 4, !tbaa !1 %add = add nsw i32 %1, %0 %arrayidx2 = getelementptr inbounds i32* %a, i32 2 %2 = load i32* %arrayidx2, align 4, !tbaa !1 %add3 = add nsw i32 %add, %2 %arrayidx4 = getelementptr inbounds i32* %a, i32 3 %3 = load i32* %arrayidx4, align 4, !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 %arrayidx...
2014 Sep 18
2
[LLVMdev] [Vectorization] Mis match in code generated
...%1 = load i32* %arrayidx1, align 4, !tbaa !1 %add = add nsw i32 %1, %0 %arrayidx2 = getelementptr inbounds i32* %a, i32 2 %2 = load i32* %arrayidx2, align 4, !tbaa !1 %add3 = add nsw i32 %add, %2 %arrayidx4 = getelementptr inbounds i32* %a, i32 3 %3 = load i32* %arrayidx4, align 4, !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 = get...
2013 Nov 08
1
[LLVMdev] loop vectorizer and storing to uniform addresses
...nsw i64 %mul, %6 %7 = load float** %A.addr, align 8 %arrayidx = getelementptr inbounds float* %7, i64 %add %8 = load float* %arrayidx, align 4 %9 = load i64* %q, align 8 %arrayidx4 = getelementptr inbounds [4 x float]* %sum, i32 0, i64 %9 %10 = load float* %arrayidx4, align 4 %add5 = fadd float %10, %8 store float %add5, float* %arrayidx4, align 4 br label %for.inc for.inc: ; preds = %for.body3 %11 = load i64* %q, align 8 %inc = add nsw i64 %11, 1 store i64 %inc, i64* %q, align 8 br label %for.cond1 for.end:...
2013 Oct 28
2
[LLVMdev] loop vectorizer says Bad stride
...%arrayidx2, align 4 %add = fadd float %5, %8 %9 = load i32* %i, align 4 %idxprom3 = sext i32 %9 to i64 %10 = load float** %c.addr, align 8 %arrayidx4 = getelementptr inbounds float* %10, i64 %idxprom3 store float %add, float* %arrayidx4, align 4 %11 = load i32* %i, align 4 %add5 = add nsw i32 256, %11 %idxprom6 = sext i32 %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 t...
2014 Nov 10
2
[LLVMdev] [Vectorization] Mis match in code generated
...dx2 = getelementptr inbounds i32* %a, i32 2 > > > %2 = load i32* %arrayidx2, align 4, !tbaa !1 > > > %add3 = add nsw i32 %add, %2 > > > %arrayidx4 = getelementptr inbounds i32* %a, i32 3 > > > %3 = load i32* %arrayidx4, align 4, !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...
2013 Oct 28
0
[LLVMdev] loop vectorizer says Bad stride
...; %add = fadd float %5, %8 > %9 = load i32* %i, align 4 > %idxprom3 = sext i32 %9 to i64 > %10 = load float** %c.addr, align 8 > %arrayidx4 = getelementptr inbounds float* %10, i64 %idxprom3 > store float %add, float* %arrayidx4, align 4 > %11 = load i32* %i, align 4 > %add5 = add nsw i32 256, %11 > %idxprom6 = sext i32 %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 > %idxpro...
2010 Feb 17
0
[LLVMdev] Source Code Location of an Instruction
...<i32> [#uses=1] %mul = mul i32 %tmp2, %tmp3, !dbg !12 ; <i32> [#uses=1] store i32 %mul, i32* getelementptr inbounds ([5 x i32]* @array, i32 0, i32 0), !dbg !12 %tmp4 = load i32* getelementptr inbounds ([5 x i32]* @array, i32 0, i32 0), !dbg !13 ; <i32> [#uses=1] %add5 = add nsw i32 %tmp4, 1, !dbg !13 ; <i32> [#uses=1] store i32 %add5, i32* getelementptr inbounds ([5 x i32]* @array, i32 0, i64 2), !dbg !13 %tmp6 = load i32* getelementptr inbounds ([5 x i32]* @array, i32 0, i64 2), !dbg !14 ; <i32> [#uses=1] store i32 %tmp6, i32* %retval...
2017 Feb 13
2
RFC: Representing unions in TBAA
...%3 %conv = sitofp i32 %add2 to float %4 = load float, float* bitcast (%union.U* @u to float*), align 4, !tbaa !11 %add3 = fadd float %conv, %4 %5 = load i32, i32* getelementptr inbounds (%struct.Q, %struct.Q* @q, i32 0, i32 1, i32 0), align 4, !tbaa !2 %conv4 = sitofp i32 %5 to float %add5 = fadd float %add3, %conv4 %6 = load float, float* bitcast (%union.U* getelementptr inbounds (%struct.Q, %struct.Q* @q, i32 0, i32 1) to float*), align 4, !tbaa !11 %add6 = fadd float %add5, %6 %7 = load i32, i32* getelementptr inbounds (%struct.Q, %struct.Q* @q, i32 0, i32 0), align 4, !tb...
2013 Oct 31
2
[LLVMdev] SCEV and GEP NSW flag
...%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %for.body.preheader ] %add = add nsw i64 %indvars.iv, %k %arrayidx = getelementptr inbounds i32* %a, i64 %add %0 = load i32* %arrayidx, align 4, !tbaa !1 ... %arrayidx7 = getelementptr inbounds i32* %a, i64 %indvars.iv store i32 %add5, i32* %arrayidx7, align 4, !tbaa !1 ... My goal here is to detect that, within the loop, (&a[i] - &a[i + k]) is negative, as the explicit loop guard guarantees. On the path toward that goal, I've run into the following: The SCEV for &a[i] looks like this: {%a,+,4}<nsw><%f...
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 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
2013 Nov 02
0
[LLVMdev] SCEV and GEP NSW flag
...indvars.iv.next, %for.body ], [ 0, %for.body.preheader ] > %add = add nsw i64 %indvars.iv, %k > %arrayidx = getelementptr inbounds i32* %a, i64 %add > %0 = load i32* %arrayidx, align 4, !tbaa !1 > ... > %arrayidx7 = getelementptr inbounds i32* %a, i64 %indvars.iv > store i32 %add5, i32* %arrayidx7, align 4, !tbaa !1 > ... > > My goal here is to detect that, within the loop, (&a[i] - &a[i + k]) is negative, as the explicit loop guard guarantees. On the path toward that goal, I've run into the following: > > The SCEV for &a[i] looks like this:...
2013 Nov 02
2
[LLVMdev] SCEV and GEP NSW flag
...gt; %for.body.preheader ] > > %add = add nsw i64 %indvars.iv, %k > > %arrayidx = getelementptr inbounds i32* %a, i64 %add > > %0 = load i32* %arrayidx, align 4, !tbaa !1 > > ... > > %arrayidx7 = getelementptr inbounds i32* %a, i64 %indvars.iv > > store i32 %add5, i32* %arrayidx7, align 4, !tbaa !1 > > ... > > > > My goal here is to detect that, within the loop, (&a[i] - &a[i + > > k]) is negative, as the explicit loop guard guarantees. On the > > path toward that goal, I've run into the following: > > >...
2013 Oct 30
0
[LLVMdev] loop vectorizer
...- 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 store float %add9, float* %arrayidx10, align 4: ((4 * %add312)<nsw> + (-4 * %add2)) Non-consecutive pointer access LV: We don't need a runtime memory check. LV: Can't vectorize due to memory conflicts LV: Not vectorizing. To answer Nadav's quest...
2013 Oct 30
2
[LLVMdev] loop vectorizer
...;>> %storemerge10 = phi i64 [ %inc, %for.body ], [ %start, %entry ] >>> %div = lshr i64 %storemerge10, 2 >>> %mul1 = shl i64 %div, 3 >>> %rem = and i64 %storemerge10, 3 >>> %add2 = or i64 %mul1, %rem >>> %0 = lshr i64 %storemerge10, 1 >>> %add51 = shl i64 %0, 2 >>> %mul6 = or i64 %rem, %add51 >>> %add8 = or i64 %mul6, 4 >>> %arrayidx = getelementptr inbounds float* %a, i64 %add2 >>> %1 = load float* %arrayidx, align 4 >>> %arrayidx9 = getelementptr inbounds float* %b, i64 %add2 >>> %2...