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