search for: cmp3

Displaying 20 results from an estimated 33 matches for "cmp3".

Did you mean: cmp
2013 Feb 07
2
[LLVMdev] Rotated loop identification
...(i = 0; i < b/2; ++i) { x(i); } return 0; } ///////////////////////////////////// the correspondent optimized IR is: /////////////////////////////////////////////////////////////////////////////// define i32 @foo_int(i32 %a, i32 %b) nounwind uwtable { entry: %div = sdiv i32 %b, 2 %cmp3 = icmp sgt i32 %b, 1 br i1 %cmp3, label %for.body, label %for.end for.body: ; preds = %entry, %for.body %i.04 = phi i32 [ %inc, %for.body ], [ 0, %entry ] tail call void @x(i32 %i.04) nounwind %inc = add nsw i32 %i.04, 1 %cmp = icmp slt i32 %inc, %...
2013 Feb 06
0
[LLVMdev] Rotated loop identification
On Feb 4, 2013, at 10:48 AM, Michele Scandale <michele.scandale at gmail.com> wrote: > Dear all, > > I'm working on a late IR target dependent optimization on loops. A part of this > optimization requires to derive "by hand" the trip-count expression of a given > loop. In order to handle correctly these cases I need to check if the loop has > an entry guard
2013 Feb 07
0
[LLVMdev] Rotated loop identification
...rn 0; > } > ///////////////////////////////////// > > the correspondent optimized IR is: > > /////////////////////////////////////////////////////////////////////////////// > define i32 @foo_int(i32 %a, i32 %b) nounwind uwtable { > entry: > %div = sdiv i32 %b, 2 > %cmp3 = icmp sgt i32 %b, 1 > br i1 %cmp3, label %for.body, label %for.end > > for.body: ; preds = %entry, %for.body > %i.04 = phi i32 [ %inc, %for.body ], [ 0, %entry ] > tail call void @x(i32 %i.04) nounwind > %inc = add nsw i32 %i.04, 1 &gt...
2013 Jul 03
2
[LLVMdev] [Polly] Assert in Scope construction
...*Comp) const { ... > ICmpInst *ICmp = dyn_cast<ICmpInst>(&V); > assert(ICmp && "Only ICmpInst of constant as condition supported!"); ... > > The code it chokes on looks like this (see below). The problem is this OR-ed > compare result: > > %cmp3 = icmp sgt i32 %j.0, 2 > %cmp5 = icmp eq i32 %j.0, 1 > %or.cond13 = or i1 %cmp3, %cmp5 > <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< == > Value V > > > My question - is th...
2013 Feb 04
3
[LLVMdev] Rotated loop identification
Dear all, I'm working on a late IR target dependent optimization on loops. A part of this optimization requires to derive "by hand" the trip-count expression of a given loop. In order to handle correctly these cases I need to check if the loop has an entry guard or not. The problem I have is that starting from the information I derive during my analysis (initial IV value, last IV
2013 Jul 05
0
[LLVMdev] [Polly] Assert in Scope construction
...mp = dyn_cast<ICmpInst>(&V); > > assert(ICmp && "Only ICmpInst of constant as condition supported!"); > ... > > > > The code it chokes on looks like this (see below). The problem is this > OR-ed > > compare result: > > > > %cmp3 = icmp sgt i32 %j.0, 2 > > %cmp5 = icmp eq i32 %j.0, 1 > > %or.cond13 = or i1 %cmp3, %cmp5 > > <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< == > > Value V > > > &...
2012 Nov 26
2
[LLVMdev] RFC: change BoundsChecking.cpp to use address-based tests
...i64* %ptr = getelementptr inbounds i64* %memobj, i64 %index %4 = load i64* %ptr, align 8 Currently, the IR for bounds checking this load looks like this: %size = mul i64 8, %elements %offset = mul i64 %index, 8 %objsize = sub i64 %size, %offset %cmp2 = icmp ult i64 %size, %offset %cmp3 = icmp ult i64 %objsize, 8 %cmp1 = icmp slt i64 %offset, 0 %9 = or i1 %cmp2, %cmp3 %11 = or i1 %cmp1, %9 br i1 %11, label %trap, label %12 ┆ ┆ │ │ ╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴┢━━━━━━━┪╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶ ↑ ┃ ┃...
2017 Mar 01
2
error en el cambio de formato desde factor a numerico USANDO LAPPLY
...Simplemente eliminando esa segunda fila, las columnas acaban teniendo la clase que deben.. #-------------------------------- Lectura del fichero de entrada sin corregir ----- > head(datIn) TIMESTAMP RECORD batt_volt WinVel WinDir Taire Haire BP_hPA cgr3_T_C cgr3_T_K Lnet long_up_corr CMP3 1 TS RN volts mV mV c % hPA deg_C NA NA W/m^2 W/m^2 2 2016-03-22 0.00 14.13 0.00 240.90 8.67 14.76 687.43 9.83 282.98 -141.02 222.56 767.82 3 2016-03-22 1.00 14.12 3.98 224.30 8.57 16.38 642.69 9.77 282.93 -140.14...
2012 Nov 26
0
[LLVMdev] RFC: change BoundsChecking.cpp to use address-based tests
...* %memobj, i64 %index > %4 = load i64* %ptr, align 8 > > Currently, the IR for bounds checking this load looks like this: > > %size = mul i64 8, %elements > %offset = mul i64 %index, 8 > %objsize = sub i64 %size, %offset > > %cmp2 = icmp ult i64 %size, %offset > %cmp3 = icmp ult i64 %objsize, 8 > %cmp1 = icmp slt i64 %offset, 0 > > %9 = or i1 %cmp2, %cmp3 > %11 = or i1 %cmp1, %9 > br i1 %11, label %trap, label %12 > > ┆ ┆ > │ │ > ╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴┢━━━━━━━┪╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶...
2013 Jul 02
0
[LLVMdev] [LNT] Question about results reliability in LNT infrustructure
On 07/01/2013 09:41 AM, Renato Golin wrote: > On 1 July 2013 02:02, Chris Matthews <chris.matthews at apple.com> wrote: > >> One thing that LNT is doing to help “smooth” the results for you is by >> presenting the min of the data at a particular revision, which (hopefully) >> is approximating the actual runtime without noise. >> > > That's an
2013 Jan 11
3
[LLVMdev] llvm get Value* iterators
...I need to use the value %c in some computations. First, I tried for (llvm::Value::use_iterator VI=(*I1->getOperand(0)).use_begin(), VE=(*I1->getOperand(0)).use_end(); VI != VE ; ++VI) { errs()<<"\n "<<**VI<<" \n"; //printed : %cmp3 = icmp ne i32 %3, 0 } But it is not getting Value* fields. Also, it is printing only one VI per for, so VI cannot increment. Second, it is a solution of taking the output of errs() in a string and parse the string for %c ? If so, how I can do it? I have problems while trying to declare `stat...
2019 Aug 26
2
SCEV related question
...for (; i < 16; i++) { a[i] = 1; } } Here is the IR before the pass where I expect SCEV to return trip-count value ; Function Attrs: nofree norecurse nounwind uwtable writeonly define dso_local void @topup(i32* nocapture %a, i64 %i) local_unnamed_addr #0 { entry: %cmp3 = icmp ult i64 %i, 16 br i1 %cmp3, label %for.body.preheader, label %for.end for.body.preheader: ; preds = %entry br label %for.body for.body: ; preds = %for.body.preheader, %for.body %i.addr.04 = phi i64 [ %inc, %fo...
2013 Jul 01
2
[LLVMdev] [LNT] Question about results reliability in LNT infrustructure
On 1 July 2013 02:02, Chris Matthews <chris.matthews at apple.com> wrote: > One thing that LNT is doing to help “smooth” the results for you is by > presenting the min of the data at a particular revision, which (hopefully) > is approximating the actual runtime without noise. > That's an interesting idea, as you said, if you run multiple times on every revision. On ARM,
2020 May 05
2
Missing vectorization of loop due to load late in the loop
....preheader ], [ %sub, %inner.body ] %hp.1 = getelementptr inbounds i32, i32* %h.pn4, i64 1 %0 = shl i32 %h.15, 16 %conv7 = ashr exact i32 %0, 16 %add = sub i32 %real.02, %h.15 %sub = add i32 %add, %conv7 %j.1 = add nuw nsw i16 %j.03, 1 %h.1 = load i32, i32* %hp.1, align 1, !tbaa !4 %cmp3 = icmp ult i16 %j.03, 99 br i1 %cmp3, label %inner.body, label %inner.end, !llvm.loop !8 And the vectorizer bails out since the load is placed "late" in the loop, so RecurrenceDescriptor::isFirstOrderRecurrence returns false. If we just move the load before the definition of %0 in th...
2016 Jul 27
2
Remove zext-unfolding from InstCombine
...` just before they are passed to InstCombine: ``` define signext i8 @foo_before_InstCombine(i8 signext %a, i8 signext %b) local_unnamed_addr #0 { entry: %conv = sext i8 %a to i32 %and = and i32 %conv, 1 %cmp = icmp eq i32 %and, 0 %conv1 = zext i1 %cmp to i32 %conv2 = sext i8 %b to i32 %cmp3 = icmp eq i32 %conv2, 0 %conv4 = zext i1 %cmp3 to i32 %or = or i32 %conv1, %conv4 %conv5 = trunc i32 %or to i8 ret i8 %conv5 } ; Function Attrs: nounwind ssp uwtable define signext i8 @goo_before_InstCombine(i8 signext %a, i8 signext %b) local_unnamed_addr #0 { entry: %conv = sext i8 %a...
2013 Jan 11
2
[LLVMdev] LLVM Instruction*->getOperand() not working properly for ICMP
...ed. Now I want to get %c from the previous to use "%c" in comparisons. I tried : for (llvm::Value::use_iterator VI=(*I1->getOperand(0)).use_begin(), VE=(*I1->getOperand(0)).use_end(); VI != VE ; ++VI) { errs()<<"\n "<<**VI<<" \n"; // %cmp3 = icmp ne i32 %3, 0 } Not as expected. It is printing the I1 instruction. Do you know how I can get %c from the "load instruction"? Thank you a lot ! On Thu, Jan 10, 2013 at 11:21 AM, Duncan Sands <baldrick at free.fr> wrote: > Hi, > > > On 10/01/13 10:56, Ale...
2013 Aug 16
2
[LLVMdev] [Polly] Analysis of extra compile-time overhead for simple nested loops
...bitcast (i32 (...)* @atoi to i32 (i8*, >> ...)*)(i8* %0) #3 >> %cmp117 = icmp sgt i32 %call, 0 >> br i1 %cmp117, label %for.cond2.preheader.lr.ph, label %for.end8 >> for.cond2.preheader.lr.ph: >> %cond22 = phi i32 [ %call, %cond.end ], [ 46, %entry ] >> %cmp314 = icmp sgt i32 %cond22, 0 >> br label %for.cond2.preheader >> for.cond2.preheader: >> %x.019 = phi i32 [ 0, %for.cond2.preheader.lr.ph ], [ %x.1.lcssa, >> %for.inc6 ] >> %a.018 = phi i32 [ 0, %for.cond2.preheader.lr.ph ], [ %inc7, %for.inc6 ] >> br i1 %...
2013 Aug 15
0
[LLVMdev] [Polly] Analysis of extra compile-time overhead for simple nested loops
...ail call i32 (i8*, ...)* bitcast (i32 (...)* @atoi to i32 (i8*, > ...)*)(i8* %0) #3 > %cmp117 = icmp sgt i32 %call, 0 > br i1 %cmp117, label %for.cond2.preheader.lr.ph, label %for.end8 > for.cond2.preheader.lr.ph: > %cond22 = phi i32 [ %call, %cond.end ], [ 46, %entry ] > %cmp314 = icmp sgt i32 %cond22, 0 > br label %for.cond2.preheader > for.cond2.preheader: > %x.019 = phi i32 [ 0, %for.cond2.preheader.lr.ph ], [ %x.1.lcssa, > %for.inc6 ] > %a.018 = phi i32 [ 0, %for.cond2.preheader.lr.ph ], [ %inc7, %for.inc6 ] > br i1 %cmp314, label %for.body4...
2013 Jan 11
0
[LLVMdev] LLVM Instruction*->getOperand() not working properly for ICMP
...ious to use "%c" in > comparisons. I tried : > > for (llvm::Value::use_iterator VI=(*I1->getOperand(0)).use_begin(), > VE=(*I1->getOperand(0)).use_end(); VI != VE ; ++VI) > { > > errs()<<"\n "<<**VI<<" \n"; > // %cmp3 = icmp ne i32 %3, 0 > } > > Not as expected. It is printing the I1 instruction. > > Do you know how I can get %c from the "load instruction"? In this case, you get %c starting from I1 this way: I1->getOperand(0)->getOperand(0) because "%3 = load i32* %c, al...
2013 Aug 16
0
[LLVMdev] [Polly] Analysis of extra compile-time overhead for simple nested loops
...;>> (i8*, >>> ...)*)(i8* %0) #3 >>> %cmp117 = icmp sgt i32 %call, 0 >>> br i1 %cmp117, label %for.cond2.preheader.lr.ph, label %for.end8 >>> for.cond2.preheader.lr.ph: >>> %cond22 = phi i32 [ %call, %cond.end ], [ 46, %entry ] >>> %cmp314 = icmp sgt i32 %cond22, 0 >>> br label %for.cond2.preheader >>> for.cond2.preheader: >>> %x.019 = phi i32 [ 0, %for.cond2.preheader.lr.ph ], [ %x.1.lcssa, >>> %for.inc6 ] >>> %a.018 = phi i32 [ 0, %for.cond2.preheader.lr.ph ], [ %inc7, %for.inc6...