Displaying 9 results from an estimated 9 matches for "cmp14".
Did you mean:
cmp1
2013 Oct 30
2
[LLVMdev] loop vectorizer
..., float* %arrayidx11, align 4 to
store float %add14, float* %arrayidx15, align 4: ((4 * %add8)<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.
Here the code:
entry:
%cmp14 = icmp ult i64 %start, %end
br i1 %cmp14, label %for.body, label %for.end
for.body: ; preds = %entry,
%for.body
%i.015 = phi i64 [ %inc, %for.body ], [ %start, %entry ]
%div = lshr i64 %i.015, 2
%mul = shl i64 %div, 3
%rem = and i64 %i.015, 3...
2013 Jul 05
0
[LLVMdev] Enabling vectorization with LLVM 3.3 for a DSL emitting LLVM IR
On 07/04/2013 01:39 PM, Stéphane Letz wrote:
> Hi,
>
> Our DSL can generate C or directly generate LLVM IR. With LLVM 3.3, we can vectorize the C produced code using clang with -O3, or clang with -O1 then opt -O3 -vectorize-loops. But the same program generating LLVM IR version cannot be vectorized with opt -O3 -vectorize-loops. So our guess is that our generated LLVM IR lacks some
2013 Jul 04
3
[LLVMdev] Enabling vectorization with LLVM 3.3 for a DSL emitting LLVM IR
Hi,
Our DSL can generate C or directly generate LLVM IR. With LLVM 3.3, we can vectorize the C produced code using clang with -O3, or clang with -O1 then opt -O3 -vectorize-loops. But the same program generating LLVM IR version cannot be vectorized with opt -O3 -vectorize-loops. So our guess is that our generated LLVM IR lacks some informations that are needed by the vectorization passes to
2013 Oct 30
0
[LLVMdev] loop vectorizer
...Vectorizing a list of length = 2.
SLP: Vectorizing a list of length = 2.
SLP: Vectorizing a list of length = 2.
IR produced:
define void @_Z3barmmPfS_S_(i64 %start, i64 %end, float* noalias
nocapture %c, float* noalias nocapture readonly %a, float* noalias
nocapture readonly %b) #3 {
entry:
%cmp14 = icmp ult i64 %start, %end
br i1 %cmp14, label %for.body, label %for.end
for.body: ; preds = %entry,
%for.body
%i.015 = phi i64 [ %inc, %for.body ], [ %start, %entry ]
%div = lshr i64 %i.015, 2
%mul = shl i64 %div, 3
%rem = and i64 %i.015, 3...
2013 Oct 30
0
[LLVMdev] loop vectorizer
...float %add14, float* %arrayidx15, align 4: ((4 * %add8)<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.
>
> Here the code:
>
> entry:
> %cmp14 = icmp ult i64 %start, %end
> br i1 %cmp14, label %for.body, label %for.end
>
> for.body: ; preds = %entry, %for.body
> %i.015 = phi i64 [ %inc, %for.body ], [ %start, %entry ]
> %div = lshr i64 %i.015, 2
> %mul = shl i64 %div, 3
>...
2013 Oct 30
3
[LLVMdev] loop vectorizer
----- Original Message -----
>
>
> I ran the BB vectorizer as I guess this is the SLP vectorizer.
No, while the BB vectorizer is doing a form of SLP vectorization, there is a separate SLP vectorization pass which uses a different algorithm. You can pass -vectorize-slp to opt.
-Hal
>
> BBV: using target information
> BBV: fusing loop #1 for for.body in _Z3barmmPfS_S_...
2013 Oct 30
2
[LLVMdev] loop vectorizer
...t; SLP: Vectorizing a list of length = 2.
> SLP: Vectorizing a list of length = 2.
>
> IR produced:
>
> define void @_Z3barmmPfS_S_(i64 %start, i64 %end, float* noalias nocapture %c, float* noalias nocapture readonly %a, float* noalias nocapture readonly %b) #3 {
> entry:
> %cmp14 = icmp ult i64 %start, %end
> br i1 %cmp14, label %for.body, label %for.end
>
> for.body: ; preds = %entry, %for.body
> %i.015 = phi i64 [ %inc, %for.body ], [ %start, %entry ]
> %div = lshr i64 %i.015, 2
> %mul = shl i64 %div, 3
>...
2013 Oct 30
0
[LLVMdev] loop vectorizer
...of length = 2.
>> SLP: Vectorizing a list of length = 2.
>>
>> IR produced:
>>
>> define void @_Z3barmmPfS_S_(i64 %start, i64 %end, float* noalias nocapture %c, float* noalias nocapture readonly %a, float* noalias nocapture readonly %b) #3 {
>> entry:
>> %cmp14 = icmp ult i64 %start, %end
>> br i1 %cmp14, label %for.body, label %for.end
>>
>> for.body: ; preds = %entry, %for.body
>> %i.015 = phi i64 [ %inc, %for.body ], [ %start, %entry ]
>> %div = lshr i64 %i.015, 2
>> %m...
2013 Feb 14
1
[LLVMdev] LiveIntervals analysis problem
...16* %incdec.ptr.9.i.i, align 2, !tbaa !5
%285 = load i16* %incdec.ptr1.10.i.i, align 2, !tbaa !5
store i16 %285, i16* %incdec.ptr.10.i.i, align 2, !tbaa !5
store i16 0, i16* %arrayidx147.i, align 2, !tbaa !5
%sub191.i = add nsw i32 %expon.5984.i, -1
%inc193.i = add nsw i32 %i.0983.i, 1
%cmp144.i = icmp slt i32 %inc193.i, 43
br i1 %cmp144.i, label %for.body146.i, label %for.end194.i
for.end194.i: ; preds = %if.end188.i, %while.end175.i, %for.body146.i
%expon.5.lcssa.i = phi i32 [ %expon.5984.i, %while.end175.i ], [ %expon.5984.i, %for.body146.i ],...