Displaying 5 results from an estimated 5 matches for "shr1".
Did you mean:
shr
2014 Sep 09
4
[LLVMdev] poison and select
...int x1 = foo(arg);
printf("%x\n", x1);
return 0;
}
This program has no UB and it should print "1'.
Clang at -O2 turns foo() into this:
define i32 @foo(i32 %x0) #0 {
entry:
%shr = ashr i32 %x0, 27
%sub = add nsw i32 %shr, -27
%tobool = icmp ne i32 %sub, 0
%shr1 = lshr i32 1, %sub
%cond = select i1 %tobool, i32 %sub, i32 %shr1
%cmp = icmp ne i32 %cond, 0
%conv = zext i1 %cmp to i32
ret i32 %conv
}
Although the translation is very straightforward, there's a problem:
%shr1 is a poison value and although it is not selected, it propagates
th...
2004 Aug 30
0
SAS ODBC & R
...ever, if I try sqlTables(connect) then I get 0 rows and consequently no
datasets can be read.
I maybe missing something here and will be happy to provide more
information if necessary.
However, note that if I use MS Access to connect, I get the following
message in the SAS log:
98 SAS server SHR1 started.
30AUG2004:14:13:25.229 User pbagchi(1) has connected to server SHR1.
30AUG2004:14:13:25.229 User pbagchi(1) is executing release 2.1 of the
Remote Engine Emulator (41) of SAS (r) on SAME architecture
host type: .
30AUG2004:14:13:25.229 pbagchi(1) in "ODBCAPPL&q...
2012 Apr 16
0
[LLVMdev] InstCombine adds bit masks, confuses self, others
On Tue, Apr 17, 2012 at 12:23 AM, Jakob Stoklund Olesen <stoklund at 2pi.dk>wrote:
> I am not sure how best to fix this. If possible, InstCombine's
> canonicalization shouldn't hide arithmetic progressions behind bit masks.
The entire concept of cleverly converting arithmetic to bit masks seems
like the perfect domain for DAGCombine instead of InstCombine:
1) We know the
2012 Apr 16
5
[LLVMdev] InstCombine adds bit masks, confuses self, others
Look at this silly function:
$ cat small.c
unsigned f(unsigned a, unsigned *p) {
unsigned x = a/4;
p[0] = x;
p[1] = x+x;
return p[1] - 2*p[0];
}
GCC turns this into straightforward code and figures out the 0 return value:
shrl $2, %edi
movl %edi, (%rsi)
addl %edi, %edi
movl %edi, 4(%rsi)
movl $0, %eax
ret
LLVM optimizes the code:
$ clang -O -S -o- small.c -emit-llvm
define i32
2013 Feb 14
1
[LLVMdev] LiveIntervals analysis problem
...; preds = %if.end113.i, %do.end.i
%expon.2.i = phi i32 [ %expon.1.i, %do.end.i ], [ %expon.3.i, %if.end113.i ]
%p.1.i = phi i16* [ getelementptr inbounds ([13 x [10 x i16]]* @etens, i32 0, i32 0, i32 0), %do.end.i ], [ %add.ptr122.i, %if.end113.i ]
%m.1.i = phi i16 [ 4096, %do.end.i ], [ %shr115493.i, %if.end113.i ]
%call99.i = call fastcc i32 @ecmp(i16* getelementptr inbounds ([13 x [10 x i16]]* @etens, i32 0, i32 12, i32 0), i16* %arraydecay60.i) nounwind
%cmp100.i = icmp slt i32 %call99.i, 1
br i1 %cmp100.i, label %while.body.i, label %isone.i
while.body.i:...