-; RUN: llvm-upgrade < %s | llvm-as | opt -dse | llvm-dis | grep 'store int 0'
+; RUN: llvm-upgrade < %s | llvm-as | opt -dse | llvm-dis | grep 'store i32 0'
void %test({int,int }* %P) {
%Q = getelementptr {int,int}* %P, int 1
-; RUN: llvm-upgrade < %s | llvm-as | opt -basicaa -load-vn -gcse -instcombine | llvm-dis | grep 'load int\* %A'
+; RUN: llvm-upgrade < %s | llvm-as | opt -basicaa -load-vn -gcse -instcombine | llvm-dis | grep 'load i32\* %A'
declare double* %useit(int*)
-; RUN: llvm-upgrade < %s | llvm-as | opt -basicaa -load-vn -gcse -instcombine | llvm-dis | grep 'ret int 0'
+; RUN: llvm-upgrade < %s | llvm-as | opt -basicaa -load-vn -gcse -instcombine | llvm-dis | grep 'ret i32 0'
declare void %foo(int*)
declare void %bar()
-; RUN: llvm-upgrade < %s | llvm-as | opt -globalsmodref-aa -load-vn -gcse -instcombine | llvm-dis | grep 'ret int 0'
+; RUN: llvm-upgrade < %s | llvm-as | \
+; RUN: opt -globalsmodref-aa -load-vn -gcse -instcombine | llvm-dis | \
+; RUN: grep 'ret i32 0'
%G = internal global int* null
implementation
; Check to make sure that Value Numbering doesn't merge casts of different
; flavors.
; RUN: llvm-upgrade < %s | llvm-as | opt -load-vn -gcse | llvm-dis | \
-; RUN: grep '[sz]ext' | wc -l | grep 2
+; RUN: grep '[sz]ext' | wc -l | grep 2
declare void %external(int)
; This file takes about 48 __MINUTES__ to assemble using as. This is WAY too
; long. The type resolution code needs to be sped up a lot.
-; RUN: ulimit -t 20; llvm-as < %s
+; RUN: ulimit -t 20; llvm-upgrade < %s | llvm-as
%ALL_INTERSECTIONS_METHOD = type int (%OBJECT*, %RAY*, %ISTACK*)*
%BBOX = type { %BBOX_VECT, %BBOX_VECT }
-; RUN: (llvm-as < %s 2>&1) | grep Expected
+; RUN: llvm-upgrade < %s | llvm-as 2>&1 >/dev/null | grep Expected
; Test the case of a misformed constant initializer
; This should cause an assembler error, not an assertion failure!
%X = constant {int} { float 1.0 }
; Found by inspection of the code
-; RUN: llvm-upgrade < %s | llvm-as -o /dev/null -f 2>&1 | grep "Shift constant expression"
+; RUN: llvm-upgrade < %s | llvm-as 2>&1 > /dev/null | grep "Shift constant expression"
global int shr (float 1.0, ubyte 2)
; Found by inspection of the code
-; RUN: llvm-as < %s 2>&1 | grep "Illegal"
+; RUN: llvm-upgrade < %s | llvm-as 2>&1 > /dev/null | grep "Illegal"
global {} { int 7, float 1.0, int 7, int 8 }
-; RUN: llvm-upgrade < %s | llvm-as | llvm-dis | grep ' bitcast ('
+; RUN: llvm-upgrade < %s | llvm-as | llvm-dis | not grep ' bitcast ('
%.Base64_1 = external constant [4 x sbyte]
-ubyte %test(sbyte %X) { ; No predecessors!
- %X = cast sbyte %X to ubyte ; <ubyte> [#uses=1]
+ubyte %test(sbyte %Y) { ; No predecessors!
+ %X = cast sbyte %Y to ubyte ; <ubyte> [#uses=1]
%tmp.13 = add ubyte %X, cast (sbyte sub (sbyte 0, sbyte cast ([4 x sbyte]* %.Base64_1 to sbyte)) to ubyte) ; <ubyte> [#uses=1]
ret ubyte %tmp.13
}
-; RUN: llvm-as < %s 2>&1 | grep 'Reference to an undefined type'
+; RUN: llvm-upgrade < %s | llvm-as -o /dev/null -f 2>&1 | \
+; RUN: grep 'Reference to an undefined type'
%d_reduction_0_dparser_gram = global { int (sbyte*, sbyte**, int, int, { %struct.Grammar*, void (\4, %struct.d_loc_t*, sbyte**)*, %struct.D_Scope*, void (\4)*, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }* (\4, int, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\9, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }**)*, void ({ int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }*)*, %struct.d_loc_t, int, int, int, int, int, int, int, int, int, int, int, int }*)*, int (sbyte*, sbyte**, int, int, { %struct.Grammar*, void (\4, %struct.d_loc_t*, sbyte**)*, %struct.D_Scope*, void (\4)*, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }* (\4, int, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\9, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }**)*, void ({ int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }*)*, %struct.d_loc_t, int, int, int, int, int, int, int, int, int, int, int, int }*)** } { int (sbyte*, sbyte**, int, int, { %struct.Grammar*, void (\4, %struct.d_loc_t*, sbyte**)*, %struct.D_Scope*, void (\4)*, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }* (\4, int, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\9, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }**)*, void ({ int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }*)*, %struct.d_loc_t, int, int, int, int, int, int, int, int, int, int, int, int }*)* null, int (sbyte*, sbyte**, int, int, { %struct.Grammar*, void (\4, %struct.d_loc_t*, sbyte**)*, %struct.D_Scope*, void (\4)*, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }* (\4, int, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\9, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }**)*, void ({ int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }*)*, %struct.d_loc_t, int, int, int, int, int, int, int, int, int, int, int, int }*)** null }
;; The bytecode writer was trying to treat undef values as ConstantArray's when
;; they looked like strings.
-;; RUN: llvm-as < %s -o /dev/null -f
+;; RUN: llvm-upgrade < %s | llvm-as -o /dev/null -f
%G = internal global [8 x sbyte] undef
// XFAIL: llvmgcc3
-// RUN: %llvmgxx -O0 -emit-llvm -S -g -o - %s | grep 'uint 1,' &&
-// RUN: %llvmgxx -O0 -emit-llvm -S -g -o - %s | grep 'uint 2,'
+// RUN: %llvmgxx -O0 -emit-llvm -S -g -o - %s | grep 'i32 1,' &&
+// RUN: %llvmgxx -O0 -emit-llvm -S -g -o - %s | grep 'i32 2,'
class A {
public:
-// RUN: %llvmgcc %s -S -g -o - | grep 'llvm.dbg.stoppoint.*uint 14'
+// RUN: %llvmgcc %s -S -g -o - | grep 'llvm.dbg.stoppoint.*i32 14'
// PR664: ensure that line #'s are emitted for declarations
-// RUN: %llvmgcc -S %s -o - | grep 'llvm.ctlz.i32(uint' &&
-// RUN: %llvmgcc -S %s -o - | not grep 'llvm.ctlz.i32(int'
+// RUN: %llvmgcc -S %s -o - | grep 'llvm.ctlz.i32(i32'
+// RUNMEIFWEHADSIGNEDTYPES: %llvmgcc -S %s -o - | not grep 'llvm.ctlz.i32(i32'
unsigned t2(unsigned X) {
return __builtin_clz(X);
-// RUN: %llvmgcc %s -S -o - | gccas | llvm-dis | grep nate | grep 'global int 0'
+// RUN: %llvmgcc %s -S -o - | gccas | llvm-dis | grep nate | grep 'global i32 0'
struct X { int *XX; int Y;};
implementation ; Functions:
-void %f(int %a, ...) {
+void %f(int %a_arg, ...) {
entry:
- %a = cast int %a to uint ; <uint> [#uses=1]
+ %a = cast int %a_arg to uint ; <uint> [#uses=1]
%l1 = alloca sbyte*, align 4 ; <sbyte**> [#uses=5]
%l2 = alloca sbyte*, align 4 ; <sbyte**> [#uses=4]
%memtmp = alloca sbyte* ; <sbyte**> [#uses=2]
call void %llvm.va_start( sbyte** %l1 )
- %tmp22 = seteq int %a, 0 ; <bool> [#uses=1]
+ %tmp22 = seteq int %a_arg, 0 ; <bool> [#uses=1]
%tmp23 = volatile load sbyte** %l1 ; <sbyte*> [#uses=2]
br bool %tmp22, label %bb8, label %bb
; Make sure this testcase codegens to the bic instruction
-; RUN: llvm-upgrade < %s | llvm-as | llc -march=alpha | grep 'zapnot'
+; RUN: llvm-as < %s | llc -march=alpha | grep 'zapnot'
implementation ; Functions:
-ushort %foo(long %y) {
+define i16 @zext %foo(i64 %y) {
entry:
- %tmp.1 = cast long %y to ushort ; <ushort> [#uses=1]
- ret ushort %tmp.1
+ %tmp.1 = trunc i64 %y to i16 ; <ushort> [#uses=1]
+ ret i16 %tmp.1
}
-
; RUN: llvm-upgrade < %s | llvm-as | llc
-float %t(long %u) {
- %u = cast long %u to ulong ; <ulong> [#uses=1]
+float %t(long %u_arg) {
+ %u = cast long %u_arg to ulong ; <ulong> [#uses=1]
%tmp5 = add ulong %u, 9007199254740991 ; <ulong> [#uses=1]
%tmp = setgt ulong %tmp5, 18014398509481982 ; <bool> [#uses=1]
br bool %tmp, label %T, label %F
ret void
bb1876: ; preds = %bb1808
- %tmp1877 = load int* %which_alternative ; <int> [#uses=4]
- %tmp1877 = cast int %tmp1877 to uint ; <uint> [#uses=1]
+ %tmp1877signed = load int* %which_alternative ; <int> [#uses=4]
+ %tmp1877 = cast int %tmp1877signed to uint ; <uint> [#uses=1]
%bothcond699 = setlt uint %tmp1877, 2 ; <bool> [#uses=1]
- %tmp1888 = seteq int %tmp1877, 2 ; <bool> [#uses=1]
+ %tmp1888 = seteq int %tmp1877signed, 2 ; <bool> [#uses=1]
%bothcond700 = or bool %bothcond699, %tmp1888 ; <bool> [#uses=1]
%bothcond700.not = xor bool %bothcond700, true ; <bool> [#uses=1]
- %tmp1894 = seteq int %tmp1877, 3 ; <bool> [#uses=1]
+ %tmp1894 = seteq int %tmp1877signed, 3 ; <bool> [#uses=1]
%bothcond701 = or bool %tmp1894, %bothcond700.not ; <bool> [#uses=1]
%bothcond702 = or bool %bothcond701, false ; <bool> [#uses=1]
br bool %bothcond702, label %UnifiedReturnBlock, label %cond_next1902
cond_next1902: ; preds = %bb1876
- switch int %tmp1877, label %cond_next1937 [
+ switch int %tmp1877signed, label %cond_next1937 [
int 0, label %bb1918
int 1, label %bb1918
int 2, label %bb1918
]
bb7: ; preds = %bb, %bb
- %tmp = cast sbyte %tmp to ubyte ; <ubyte> [#uses=1]
tail call void %foo( ubyte %tmp )
ret sbyte* %tmp2
}
; RUN: llvm-upgrade < %s | llvm-as | llc
void %iterative_hash_host_wide_int() {
- %zero = alloca int ; <int*> [#uses=2]
- %b = alloca uint ; <uint*> [#uses=1]
+ %zero = alloca int ; <int*> [#uses=2]
+ %b = alloca uint ; <uint*> [#uses=1]
store int 0, int* %zero
- %tmp = load int* %zero ; <int> [#uses=1]
+ %tmp = load int* %zero ; <int> [#uses=1]
%tmp5 = cast int %tmp to uint ; <uint> [#uses=1]
- %tmp6 = add uint %tmp5, 32 ; <uint> [#uses=1]
- %tmp6 = cast uint %tmp6 to int ; <int> [#uses=1]
- %tmp7 = load long* null ; <long> [#uses=1]
+ %tmp6.u = add uint %tmp5, 32 ; <uint> [#uses=1]
+ %tmp6 = cast uint %tmp6.u to int ; <int> [#uses=1]
+ %tmp7 = load long* null ; <long> [#uses=1]
%tmp6 = cast int %tmp6 to ubyte ; <ubyte> [#uses=1]
- %tmp8 = shr long %tmp7, ubyte %tmp6 ; <long> [#uses=1]
+ %tmp8 = shr long %tmp7, ubyte %tmp6 ; <long> [#uses=1]
%tmp8 = cast long %tmp8 to uint ; <uint> [#uses=1]
store uint %tmp8, uint* %b
unreachable
ret void
}
-ushort %test2(ushort %crc) { ; No and's should be needed for the ushorts here.
+ushort @zext %test2(ushort @zext %crc) {
+ ; No and's should be needed for the ushorts here.
%tmp.1 = shr ushort %crc, ubyte 1
%tmp.7 = xor ushort %tmp.1, 40961
ret ushort %tmp.7
void %foo(int %W, int %X, int %Y, int %Z) {
entry:
- %X = cast int %X to uint ; <uint> [#uses=1]
- %Y = cast int %Y to uint ; <uint> [#uses=1]
- %Z = cast int %Z to uint ; <uint> [#uses=1]
- %W = cast int %W to uint ; <uint> [#uses=1]
+ %X.u = cast int %X to uint ; <uint> [#uses=1]
+ %Y.u = cast int %Y to uint ; <uint> [#uses=1]
+ %Z.u = cast int %Z to uint ; <uint> [#uses=1]
+ %W.u = cast int %W to uint ; <uint> [#uses=1]
%tmp1 = and int %W, 1 ; <int> [#uses=1]
%tmp1 = seteq int %tmp1, 0 ; <bool> [#uses=1]
br bool %tmp1, label %cond_false, label %bb5
%indvar77 = phi uint [ %indvar.next78, %bb ], [ 0, %bb5 ] ; <uint> [#uses=1]
%tmp2 = tail call int (...)* %bar( ) ; <int> [#uses=0]
%indvar.next78 = add uint %indvar77, 1 ; <uint> [#uses=2]
- %exitcond79 = seteq uint %indvar.next78, %X ; <bool> [#uses=1]
+ %exitcond79 = seteq uint %indvar.next78, %X.u ; <bool> [#uses=1]
br bool %exitcond79, label %cond_next48, label %bb
bb5: ; preds = %entry
%indvar72 = phi uint [ %indvar.next73, %bb12 ], [ 0, %bb16 ] ; <uint> [#uses=1]
%tmp13 = tail call int (...)* %bar( ) ; <int> [#uses=0]
%indvar.next73 = add uint %indvar72, 1 ; <uint> [#uses=2]
- %exitcond74 = seteq uint %indvar.next73, %Y ; <bool> [#uses=1]
+ %exitcond74 = seteq uint %indvar.next73, %Y.u ; <bool> [#uses=1]
br bool %exitcond74, label %cond_next48, label %bb12
bb16: ; preds = %cond_false
%indvar67 = phi uint [ %indvar.next68, %bb25 ], [ 0, %bb29 ] ; <uint> [#uses=1]
%tmp26 = tail call int (...)* %bar( ) ; <int> [#uses=0]
%indvar.next68 = add uint %indvar67, 1 ; <uint> [#uses=2]
- %exitcond69 = seteq uint %indvar.next68, %Z ; <bool> [#uses=1]
+ %exitcond69 = seteq uint %indvar.next68, %Z.u ; <bool> [#uses=1]
br bool %exitcond69, label %cond_next48, label %bb25
bb29: ; preds = %cond_false20
bb42: ; preds = %cond_false33, %bb38
%indvar = phi uint [ %indvar.next, %bb38 ], [ 0, %cond_false33 ] ; <uint> [#uses=3]
- %indvar = cast uint %indvar to int ; <int> [#uses=1]
%W_addr.0 = sub int %W, %indvar ; <int> [#uses=1]
- %exitcond = seteq uint %indvar, %W ; <bool> [#uses=1]
+ %exitcond = seteq uint %indvar, %W.u ; <bool> [#uses=1]
br bool %exitcond, label %cond_next48, label %bb38
cond_next48: ; preds = %bb, %bb12, %bb25, %bb42, %cond_false33, %bb29, %bb16, %bb5
int %rotlw(uint %x, int %sh) {
entry:
%tmp.3 = cast int %sh to ubyte ; <ubyte> [#uses=1]
- %x = cast uint %x to int ; <int> [#uses=1]
+ %x.s = cast uint %x to int ; <int> [#uses=1]
%tmp.7 = sub int 32, %sh ; <int> [#uses=1]
%tmp.9 = cast int %tmp.7 to ubyte ; <ubyte> [#uses=1]
%tmp.10 = shr uint %x, ubyte %tmp.9 ; <uint> [#uses=1]
- %tmp.4 = shl int %x, ubyte %tmp.3 ; <int> [#uses=1]
- %tmp.10 = cast uint %tmp.10 to int ; <int> [#uses=1]
+ %tmp.4 = shl int %x.s, ubyte %tmp.3 ; <int> [#uses=1]
%tmp.12 = or int %tmp.10, %tmp.4 ; <int> [#uses=1]
ret int %tmp.12
}
%tmp.4 = shr uint %x, ubyte %tmp.3 ; <uint> [#uses=1]
%tmp.7 = sub int 32, %sh ; <int> [#uses=1]
%tmp.9 = cast int %tmp.7 to ubyte ; <ubyte> [#uses=1]
- %x = cast uint %x to int ; <int> [#uses=1]
- %tmp.4 = cast uint %tmp.4 to int ; <int> [#uses=1]
- %tmp.10 = shl int %x, ubyte %tmp.9 ; <int> [#uses=1]
+ %x.s = cast uint %x to int ; <int> [#uses=1]
+ %tmp.10 = shl int %x.s, ubyte %tmp.9 ; <int> [#uses=1]
%tmp.12 = or int %tmp.4, %tmp.10 ; <int> [#uses=1]
ret int %tmp.12
}
int %rotlwi(uint %x) {
entry:
- %x = cast uint %x to int ; <int> [#uses=1]
+ %x.s = cast uint %x to int ; <int> [#uses=1]
%tmp.7 = shr uint %x, ubyte 27 ; <uint> [#uses=1]
- %tmp.3 = shl int %x, ubyte 5 ; <int> [#uses=1]
- %tmp.7 = cast uint %tmp.7 to int ; <int> [#uses=1]
+ %tmp.3 = shl int %x.s, ubyte 5 ; <int> [#uses=1]
%tmp.9 = or int %tmp.3, %tmp.7 ; <int> [#uses=1]
ret int %tmp.9
}
int %rotrwi(uint %x) {
entry:
%tmp.3 = shr uint %x, ubyte 5 ; <uint> [#uses=1]
- %x = cast uint %x to int ; <int> [#uses=1]
- %tmp.3 = cast uint %tmp.3 to int ; <int> [#uses=1]
- %tmp.7 = shl int %x, ubyte 27 ; <int> [#uses=1]
+ %x.s = cast uint %x to int ; <int> [#uses=1]
+ %tmp.7 = shl int %x.s, ubyte 27 ; <int> [#uses=1]
%tmp.9 = or int %tmp.3, %tmp.7 ; <int> [#uses=1]
ret int %tmp.9
}
-
; RUN: llvm-upgrade < %s | llvm-as | llc -march=ppc32 &&
; RUN: llvm-upgrade < %s | llvm-as | llc -march=ppc32 | not grep 'extsh\|rlwinm'
-declare short %foo()
+declare short @sext %foo()
-int %test1(short %X) {
+int %test1(short @sext %X) {
%Y = cast short %X to int ;; dead
ret int %Y
}
-int %test2(ushort %X) {
+int %test2(ushort @zext %X) {
%Y = cast ushort %X to int
%Z = and int %Y, 65535 ;; dead
ret int %Z
ret uint %tmp.2
}
-ushort %test7(float %a) {
+ushort @zext %test7(float %a) {
%tmp.1 = cast float %a to ushort
ret ushort %tmp.1
}
-
void %spltish(<16 x ubyte>* %A, <16 x ubyte>* %B) {
; Gets converted to 16 x ubyte
%tmp = load <16 x ubyte>* %B
- %tmp = cast <16 x ubyte> %tmp to <16 x sbyte>
- %tmp4 = sub <16 x sbyte> %tmp, cast (<8 x short> < short 15, short 15, short 15, short 15, short 15, short 15, short 15, short 15 > to <16 x sbyte>)
- %tmp4 = cast <16 x sbyte> %tmp4 to <16 x ubyte>
- store <16 x ubyte> %tmp4, <16 x ubyte>* %A
+ %tmp.s = cast <16 x ubyte> %tmp to <16 x sbyte>
+ %tmp4 = sub <16 x sbyte> %tmp.s, cast (<8 x short> < short 15, short 15, short 15, short 15, short 15, short 15, short 15, short 15 > to <16 x sbyte>)
+ %tmp4.u = cast <16 x sbyte> %tmp4 to <16 x ubyte>
+ store <16 x ubyte> %tmp4.u, <16 x ubyte>* %A
ret void
}
%tmp4 = getelementptr ubyte* %tmp, uint %tmp3 ; <ubyte*> [#uses=1]
%tmp7 = load uint* %tmp ; <uint> [#uses=1]
%tmp8 = getelementptr ubyte* %tmp, uint %tmp7 ; <ubyte*> [#uses=1]
- %tmp8 = cast ubyte* %tmp8 to sbyte* ; <sbyte*> [#uses=1]
- %tmp4 = cast ubyte* %tmp4 to sbyte* ; <sbyte*> [#uses=1]
- %tmp = tail call int %memcmp( sbyte* %tmp8, sbyte* %tmp4, uint %tmp ) ; <int> [#uses=1]
- ret int %tmp
+ %result = tail call int %memcmp( sbyte* %tmp8, sbyte* %tmp4, uint %tmp ) ; <int> [#uses=1]
+ ret int %result
}
declare int %memcmp(sbyte*, sbyte*, uint)
%tmp24.i = load int* null ; <int> [#uses=1]
%tmp13.i12.i = tail call double %ldexp( double 0.000000e+00, int 0 ) ; <double> [#uses=1]
%tmp13.i13.i = cast double %tmp13.i12.i to float ; <float> [#uses=1]
- %tmp11.i = load int* null ; <int> [#uses=1]
- %tmp11.i = cast int %tmp11.i to uint ; <uint> [#uses=1]
+ %tmp11.s = load int* null ; <int> [#uses=1]
+ %tmp11.i = cast int %tmp11.s to uint ; <uint> [#uses=1]
%n.i = cast int %tmp24.i to uint ; <uint> [#uses=1]
%tmp13.i7 = mul uint %tmp11.i, %n.i ; <uint> [#uses=1]
%tmp.i8 = tail call sbyte* %calloc( uint %tmp13.i7, uint 4 ) ; <sbyte*> [#uses=0]
implementation ; Functions:
-void %foo(int %N) {
+void %foo(int %N.in) {
entry:
- %N = cast int %N to uint ; <uint> [#uses=1]
+ %N = cast int %N.in to uint ; <uint> [#uses=1]
br label %cond_true
cond_true: ; preds = %cond_true, %entry
%A = internal global [16 x [16 x int]] zeroinitializer, align 32
-void %test(int %row, int %N) {
+void %test(int %row, int %N.in) {
entry:
- %N = cast int %N to uint
- %tmp5 = setgt int %N, 0
+ %N = cast int %N.in to uint
+ %tmp5 = setgt int %N.in, 0
br bool %tmp5, label %cond_true, label %return
cond_true:
; An integer truncation to bool should be done with an and instruction to make
; sure only the LSBit survives. Test that this is the case both for a returned
; value and as the operand of a branch.
-; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 &&
-; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 | grep '\(and\)\|\(test.*\$1\)' | wc -l | grep 6
-bool %test1(int %X) {
- %Y = trunc int %X to bool
+; RUN: llvm-as < %s | llc -march=x86 &&
+; RUN: llvm-as < %s | llc -march=x86 | grep '\(and\)\|\(test.*\$1\)' | \
+; RUN: wc -l | grep 6
+
+define bool @zext %test1(i32 %X) {
+ %Y = trunc i32 %X to bool
ret bool %Y
}
-bool %test2(int %val, int %mask) {
+define bool %test2(i32 %val, i32 %mask) {
entry:
- %mask = trunc int %mask to ubyte
- %shifted = ashr int %val, ubyte %mask
- %anded = and int %shifted, 1
- %trunced = trunc int %anded to bool
+ %mask = trunc i32 %mask to i8
+ %shifted = ashr i32 %val, i8 %mask
+ %anded = and i32 %shifted, 1
+ %trunced = trunc i32 %anded to bool
br bool %trunced, label %ret_true, label %ret_false
ret_true:
ret bool true
ret bool false
}
-int %test3(sbyte* %ptr) {
- %val = load sbyte* %ptr
- %tmp = trunc sbyte %val to bool ; %<bool> [#uses=1]
+define i32 %test3(i8* %ptr) {
+ %val = load i8* %ptr
+ %tmp = trunc i8 %val to bool
br bool %tmp, label %cond_true, label %cond_false
cond_true:
- ret int 21
+ ret i32 21
cond_false:
- ret int 42
+ ret i32 42
}
-int %test4(sbyte* %ptr) {
- %tmp = ptrtoint sbyte* %ptr to bool
+define i32 %test4(i8* %ptr) {
+ %tmp = ptrtoint i8* %ptr to bool
br bool %tmp, label %cond_true, label %cond_false
cond_true:
- ret int 21
+ ret i32 21
cond_false:
- ret int 42
+ ret i32 42
}
-int %test5(float %f) {
+define i32 %test5(float %f) {
%tmp = fptoui float %f to bool
br bool %tmp, label %cond_true, label %cond_false
cond_true:
- ret int 21
+ ret i32 21
cond_false:
- ret int 42
+ ret i32 42
}
-int %test6(double %d) {
+define i32 %test6(double %d) {
%tmp = fptosi double %d to bool
br bool %tmp, label %cond_true, label %cond_false
cond_true:
- ret int 21
+ ret i32 21
cond_false:
- ret int 42
+ ret i32 42
}
+
; RUN: llvm-upgrade < %s | llvm-as | opt -scalarrepl -instcombine | \
-; RUN: llc -march=x86 -mcpu=yonah &&
+; RUN: llc -march=x86 -mcpu=yonah &&
; RUN: llvm-upgrade < %s | llvm-as | opt -scalarrepl -instcombine | \
-; RUN: llc -march=x86 -mcpu=yonah | not grep sub.*esp
+; RUN: llc -march=x86 -mcpu=yonah | not grep sub.*esp
; This checks that various insert/extract idiom work without going to the
; stack.
-; RUN: llvm-as -f %s -o %t.bc
+; RUN: llvm-upgrade < %s | llvm-as -f -o %t.bc
; RUN: lli %t.bc > /dev/null
int %main() {
-; RUN: llvm-as -f %s -o %t.bc
+; RUN: llvm-upgrade < %s | llvm-as -f -o %t.bc
; RUN: lli %t.bc > /dev/null
target endian = little
-; RUN: llvm-as -f %s -o %t.bc
+; RUN: llvm-upgrade < %s | llvm-as -f -o %t.bc
; RUN: lli %t.bc > /dev/null
; Testcase distilled from 256.bzip2.
-; RUN: llvm-as -f %s -o %t.bc
+; RUN: llvm-upgrade < %s | llvm-as -f -o %t.bc
; RUN: lli %t.bc > /dev/null
; This testcase failed to work because two variable sized allocas confused the
-; RUN: llvm-as -f %s -o %t.bc
+; RUN: llvm-upgrade < %s | llvm-as -f -o %t.bc
; RUN: lli %t.bc > /dev/null
; This testcase exposes a bug in the local register allocator where it runs out
-; RUN: llvm-as -f %s -o %t.bc
+; RUN: llvm-upgrade < %s | llvm-as -f -o %t.bc
; RUN: lli %t.bc > /dev/null
%.LC0 = internal global [12 x sbyte] c"Hello World\00"
-; RUN: llvm-as -f %s -o %t.bc
+; RUN: llvm-upgrade < %s | llvm-as -f -o %t.bc
; RUN: lli %t.bc > /dev/null
-; RUN: llvm-as -f %s -o %t.bc
+; RUN: llvm-upgrade < %s | llvm-as -f -o %t.bc
; RUN: lli %t.bc > /dev/null
-; RUN: llvm-as -f %s -o %t.bc
+; RUN: llvm-upgrade < %s | llvm-as -f -o %t.bc
; RUN: lli %t.bc > /dev/null
implementation
-; RUN: llvm-as -f %s -o %t.bc
+; RUN: llvm-upgrade < %s | llvm-as -f -o %t.bc
; RUN: lli %t.bc > /dev/null
-; RUN: llvm-as -f %s -o %t.bc
+; RUN: llvm-upgrade < %s | llvm-as -f -o %t.bc
; RUN: lli %t.bc > /dev/null
-; RUN: llvm-as -f %s -o %t.bc
+; RUN: llvm-upgrade < %s | llvm-as -f -o %t.bc
; RUN: lli %t.bc > /dev/null
-; RUN: llvm-as -f %s -o %t.bc
+; RUN: llvm-upgrade < %s | llvm-as -f -o %t.bc
; RUN: lli %t.bc > /dev/null
; test return instructions
-void %test() { ret void }
-sbyte %test() { ret sbyte 1 }
-ubyte %test() { ret ubyte 1 }
-short %test() { ret short -1 }
-ushort %test() { ret ushort 65535 }
+void %test1() { ret void }
+sbyte %test2() { ret sbyte 1 }
+ubyte %test3() { ret ubyte 1 }
+short %test4() { ret short -1 }
+ushort %test5() { ret ushort 65535 }
int %main() { ret int 0 }
-uint %test() { ret uint 4 }
-long %test() { ret long 0 }
-ulong %test() { ret ulong 0 }
-float %test() { ret float 1.0 }
-double %test() { ret double 2.0 }
+uint %test6() { ret uint 4 }
+long %test7() { ret long 0 }
+ulong %test8() { ret ulong 0 }
+float %test9() { ret float 1.0 }
+double %test10() { ret double 2.0 }
%shamt = add ubyte 0, 1
; Left shifts...
- %t1 = shl int 1, ubyte %shamt
- %t2 = shl int 1, ubyte 4
+ %t1.s = shl int 1, ubyte %shamt
+ %t2.s = shl int 1, ubyte 4
%t1 = shl uint 1, ubyte %shamt
%t2 = shl uint 1, ubyte 5
;%t1 = shl long 1, ubyte %shamt
- %t2 = shl long 1, ubyte 4
+ %t2.s = shl long 1, ubyte 4
;%t1 = shl ulong 1, ubyte %shamt
%t2 = shl ulong 1, ubyte 5
; Right shifts...
- %tr1 = shr int 1, ubyte %shamt
- %tr2 = shr int 1, ubyte 4
+ %tr1.s = shr int 1, ubyte %shamt
+ %tr2.s = shr int 1, ubyte 4
%tr1 = shr uint 1, ubyte %shamt
%tr2 = shr uint 1, ubyte 5
;%tr1 = shr long 1, ubyte %shamt
- %tr1 = shr long 1, ubyte 4
- %tr2 = shr long 1, ubyte %shamt
- %tr3 = shl long 1, ubyte 4
- %tr4 = shl long 1, ubyte %shamt
+ %tr1.l = shr long 1, ubyte 4
+ %tr2.l = shr long 1, ubyte %shamt
+ %tr3.l = shl long 1, ubyte 4
+ %tr4.l = shl long 1, ubyte %shamt
;%t1 = shr ulong 1, ubyte %shamt
- %tr1 = shr ulong 1, ubyte 5
- %tr2 = shr ulong 1, ubyte %shamt
- %tr3 = shl ulong 1, ubyte 5
- %tr4 = shl ulong 1, ubyte %shamt
+ %tr1.u = shr ulong 1, ubyte 5
+ %tr2.u = shr ulong 1, ubyte %shamt
+ %tr3.u = shl ulong 1, ubyte 5
+ %tr4.u = shl ulong 1, ubyte %shamt
ret int 0
}
-; RUN: llvm-as < %s > %t.bc
+; RUN: llvm-upgrade < %s | llvm-as > %t.bc
; RUN: echo | llvm-as > %t.tmp.bc
; RUN: llvm-link %t.tmp.bc %t.bc
; This fails linking when it is linked with an empty file as the first object file
; RUN: llvm-as > %t1.bc < /dev/null
-; RUN: llvm-as < %s > %t2.bc
+; RUN: llvm-upgrade < %s | llvm-as > %t2.bc
; RUN: llvm-link %t[12].bc
%work = global int (int, int)* %zip
; This fails linking when it is linked with an empty file as the first object file
; RUN: llvm-as > %t.LinkTest.bc < /dev/null
-; RUN: llvm-as < %s > %t.bc
+; RUN: llvm-upgrade < %s | llvm-as > %t.bc
; RUN: llvm-link %t.LinkTest.bc %t.bc
%work = global int 4
; This one fails because the LLVM runtime is allowing two null pointers of
; the same type to be created!
-; RUN: echo "%T = type int" | llvm-as > %t.2.bc
+; RUN: echo "%T = type int" | llvm-upgrade | llvm-as > %t.2.bc
; RUN: llvm-upgrade < %s | llvm-as -f > %t.1.bc
; RUN: llvm-link %t.[12].bc
; This one fails because the LLVM runtime is allowing two null pointers of
; the same type to be created!
-; RUN: echo "%S = type { %T*} %T = type opaque" | llvm-as > %t.2.bc
-; RUN: llvm-as < %s > %t.1.bc
+; RUN: echo "%S = type { %T*} %T = type opaque" | llvm-upgrade | llvm-as > %t.2.bc
+; RUN: llvm-upgrade < %s | llvm-as > %t.1.bc
; RUN: llvm-link %t.[12].bc
%S = type { %T* }
-; RUN: echo "%T = type opaque" | llvm-as > %t.2.bc
-; RUN: llvm-as < %s > %t.1.bc
+; RUN: echo "%T = type opaque" | llvm-upgrade | llvm-as > %t.2.bc
+; RUN: llvm-upgrade < %s | llvm-as > %t.1.bc
; RUN: llvm-link %t.[12].bc
%T = type opaque
-; RUN: echo "%T = type int" | llvm-as > %t.1.bc
-; RUN: llvm-as < %s > %t.2.bc
+; RUN: echo "%T = type int" | llvm-upgrade | llvm-as > %t.1.bc
+; RUN: llvm-upgrade < %s | llvm-as > %t.2.bc
; RUN: llvm-link %t.[12].bc
%T = type opaque
-; RUN: llvm-as < %s > %t.out1.bc
-; RUN: echo "%S = type { int, int* }" | llvm-as > %t.out2.bc
+; RUN: llvm-upgrade < %s | llvm-as > %t.out1.bc
+; RUN: echo "%S = type { int, int* }" | llvm-upgrade | llvm-as > %t.out2.bc
; RUN: llvm-link %t.out[12].bc
%T = type opaque
-; RUN: llvm-as < %s > %t.out1.bc
-; RUN: echo "%S = external global { int, opaque* } declare void %F(opaque*)" | llvm-as > %t.out2.bc
+; RUN: llvm-upgrade < %s | llvm-as > %t.out1.bc
+; RUN: echo "%S = external global { int, opaque* } declare void %F(opaque*)" | llvm-upgrade | llvm-as > %t.out2.bc
; RUN: llvm-link %t.out[12].bc | llvm-dis | not grep opaque
; After linking this testcase, there should be no opaque types left. The two
; It's a bad idea to go recursively traipsing through types without a safety
; net.
-; RUN: llvm-as < %s > %t.out1.bc
-; RUN: echo "%S = type { %S*, int* }" | llvm-as > %t.out2.bc
+; RUN: llvm-upgrade < %s | llvm-as > %t.out1.bc
+; RUN: echo "%S = type { %S*, int* }" | llvm-upgrade | llvm-as > %t.out2.bc
; RUN: llvm-link %t.out[12].bc
%S = type { %S*, opaque* }
-; RUN: llvm-as < %s > %t.out1.bc
-; RUN: echo "%S = type [8 x int] external global %S " | llvm-as > %t.out2.bc
+; RUN: llvm-upgrade < %s | llvm-as > %t.out1.bc
+; RUN: echo "%S = type [8 x int] external global %S " | llvm-upgrade | llvm-as > %t.out2.bc
; RUN: llvm-link %t.out[12].bc | llvm-dis | grep %S | grep '{'
%S = type { int }
; The linker should merge link-once globals into strong external globals,
; just like it does for weak symbols!
-; RUN: echo "%X = global int 7" | llvm-as > %t.2.bc
-; RUN: llvm-as < %s > %t.1.bc
+; RUN: echo "%X = global int 7" | llvm-upgrade | llvm-as > %t.2.bc
+; RUN: llvm-upgrade < %s | llvm-as > %t.1.bc
; RUN: llvm-link %t.[12].bc
%X = linkonce global int 7
-; RUN: llvm-as < %s > %t.out2.bc
-; RUN: echo "%me = global int* null" | llvm-as > %t.out1.bc
+; RUN: llvm-upgrade < %s | llvm-as > %t.out2.bc
+; RUN: echo "%me = global int* null" | llvm-upgrade | llvm-as > %t.out1.bc
; RUN: llvm-link %t.out[12].bc -o /dev/null -f
%me = weak global int * null
; Test that a prototype can be marked const, and the definition is allowed
; to be nonconst.
-; RUN: echo "%X = external constant int" | llvm-as > %t.2.bc
-; RUN: llvm-as < %s > %t.1.bc
-; RUN: llvm-link %t.[12].bc | llvm-dis | grep 'global int 7'
+; RUN: echo "%X = external constant int" | llvm-upgrade | llvm-as > %t.2.bc
+; RUN: llvm-upgrade < %s | llvm-as > %t.1.bc
+; RUN: llvm-link %t.[12].bc | llvm-dis | grep 'global i32 7'
%X = global int 7
; Test that a prototype can be marked const, and the definition is allowed
; to be nonconst.
-; RUN: echo "%X = global int 7" | llvm-as > %t.2.bc
-; RUN: llvm-as < %s > %t.1.bc
-; RUN: llvm-link %t.[12].bc | llvm-dis | grep 'global int 7'
+; RUN: echo "%X = global int 7" | llvm-upgrade | llvm-as > %t.2.bc
+; RUN: llvm-upgrade < %s | llvm-as > %t.1.bc
+; RUN: llvm-link %t.[12].bc | llvm-dis | grep 'global i32 7'
%X = external constant int
-; RUN: echo "%G = appending global [0 x int] zeroinitializer" | llvm-as > %t.out2.bc
-; RUN: llvm-as < %s > %t.out1.bc
+; RUN: echo "%G = appending global [0 x int] zeroinitializer" | llvm-upgrade | llvm-as > %t.out2.bc
+; RUN: llvm-upgrade < %s | llvm-as > %t.out1.bc
; RUN: llvm-link %t.out[12].bc | llvm-dis | grep '%G ='
; When linked, the globals should be merged, and the result should still
-; RUN: llvm-as %s -f -o %s.bc ; llvm-link -f -o %s.linked %s.bc
+; RUN: llvm-upgrade < %s | llvm-as -f -o %s.bc ; llvm-link -f -o %s.linked %s.bc
target endian = big
target pointersize = 32
; The linker should choose the largest alignment when linking.
-; RUN: echo "%X = global int 7, align 8" | llvm-as > %t.2.bc
-; RUN: llvm-as < %s > %t.1.bc
+; RUN: echo "%X = global int 7, align 8" | llvm-upgrade | llvm-as > %t.2.bc
+; RUN: llvm-upgrade < %s | llvm-as > %t.1.bc
; RUN: llvm-link %t.[12].bc | llvm-dis | grep 'align 8'
%X = weak global int 7, align 4
; Test that appending linkage works correctly when arrays are the same size.
-; RUN: echo "%X = appending global [1x int] [int 8]" | llvm-as > %t.2.bc
-; RUN: llvm-as < %s > %t.1.bc
+; RUN: echo "%X = appending global [1x int] [int 8]" | llvm-upgrade | llvm-as > %t.2.bc
+; RUN: llvm-upgrade < %s | llvm-as > %t.1.bc
; RUN: llvm-link %t.[12].bc | llvm-dis | grep 7 | grep 8
%X = appending global [1 x int] [int 7]
; Test that appending linkage works correctly when arrays are the same size.
-; RUN: echo "%X = constant [1x int] [int 8]" | llvm-as > %t.2.bc
-; RUN: llvm-upgrade %s | llvm-as > %t.1.bc
+; RUN: echo "%X = constant [1x int] [int 8]" | llvm-upgrade | llvm-as > %t.2.bc
+; RUN: llvm-upgrade < %s | llvm-as > %t.1.bc
; RUN: llvm-link %t.[12].bc | llvm-dis | grep constant
%X = uninitialized global [1 x int]
; Test that appending linkage works correctly when arrays are the same size.
-; RUN: echo "%X = external global [1x int]" | llvm-as > %t.2.bc
-; RUN: llvm-upgrade %s | llvm-as > %t.1.bc
+; RUN: echo "%X = external global [1x int]" | llvm-upgrade | llvm-as > %t.2.bc
+; RUN: llvm-upgrade %s -o - | llvm-as > %t.1.bc
; RUN: llvm-link %t.[12].bc | llvm-dis | grep constant
%X = constant [1 x int] [ int 12 ]
; Test that appending linkage works correctly when arrays are the same size.
-; RUN: echo "%X = external constant [1x int]" | llvm-as > %t.2.bc
+; RUN: echo "%X = external constant [1x int]" | llvm-upgrade | llvm-as > %t.2.bc
; RUN: llvm-upgrade %s | llvm-as > %t.1.bc
; RUN: llvm-link %t.[12].bc | llvm-dis | grep constant
; This fails because the linker renames the non-opaque type not the opaque
; one...
-; RUN: echo "%X = linkonce global int 8" | llvm-as > %t.2.bc
-; RUN: llvm-as < %s > %t.1.bc
+; RUN: echo "%X = linkonce global int 8" | llvm-upgrade | llvm-as > %t.2.bc
+; RUN: llvm-upgrade < %s | llvm-as > %t.1.bc
; RUN: llvm-link %t.[12].bc | llvm-dis
%X = linkonce global int 7
-; RUN: llvm-as < %s > %t.bc
-; RUN: llvm-as < `dirname %s`/testlink1.ll > %t2.bc
+; RUN: llvm-upgrade < %s | llvm-as > %t.bc
+; RUN: llvm-upgrade < `dirname %s`/testlink1.ll | llvm-as > %t2.bc
; RUN: llvm-link %t.bc %t.bc %t2.bc -o %t1.bc -f
-; RUN: llvm-dis < %t1.bc |grep "kallsyms_names = extern_weak" &&
-; RUN: llvm-dis < %t1.bc |grep "MyVar = external global int" &&
-; RUN: llvm-dis < %t1.bc |grep "Inte = global int"
+; RUN: llvm-dis < %t1.bc | grep "kallsyms_names = extern_weak" &&
+; RUN: llvm-dis < %t1.bc | grep "MyVar = external global i32" &&
+; RUN: llvm-dis < %t1.bc | grep "Inte = global i32"
%kallsyms_names = extern_weak global [0 x ubyte]
%MyVar = extern_weak global int
-; RUN: llvm-upgrade < %s | llvm-as | opt -argpromotion | llvm-dis | grep 'load int\* %A'
+; RUN: llvm-upgrade < %s | llvm-as | opt -argpromotion | llvm-dis | grep 'load i32\* %A'
implementation
-; RUN: llvm-upgrade < %s | llvm-as | opt -constprop | llvm-dis | grep 'uint -1' &&
+; RUN: llvm-upgrade < %s | llvm-as | opt -constprop | llvm-dis | grep 'i32 -1' &&
; RUN: llvm-upgrade < %s | llvm-as | opt -constprop | llvm-dis | not grep zeroinitializer
< 4 x uint> %test() {
-; RUN: llvm-upgrade < %s | llvm-as | opt -constprop | llvm-dis | grep 'ret int -1' &&
-; RUN: llvm-upgrade < %s | llvm-as | opt -constprop | llvm-dis | grep 'ret uint 1'
+; RUN: llvm-upgrade < %s | llvm-as | opt -constprop | llvm-dis | grep 'ret i32 -1' &&
+; RUN: llvm-upgrade < %s | llvm-as | opt -constprop | llvm-dis | grep 'ret i32 1'
int %test1() {
%A = sext bool true to int
-; RUN: llvm-as < %s | llvm-dis &&
-; RUN: llvm-as < %s | llvm-dis | grep 0x36A0000000000000
+; RUN: llvm-upgrade < %s | llvm-as | llvm-dis &&
+; RUN: llvm-upgrade < %s | llvm-as | llvm-dis | grep 0x36A0000000000000
%A = global float bitcast (int 1 to float)
-; RUN: llvm-upgrade < %s | llvm-as | opt -constprop | llvm-dis | grep -F 'ret int* null' | wc -l | grep 2
+; RUN: llvm-upgrade < %s | llvm-as | opt -constprop | llvm-dis | grep -F 'ret i32* null' | wc -l | grep 2
int* %test1() {
%X = cast float 0.0 to int*
ret int* %X
-; RUN: llvm-upgrade < %s | llvm-as | opt -dse | llvm-dis | grep 'store int 1234567'
+; RUN: llvm-upgrade < %s | llvm-as | opt -dse | llvm-dis | grep 'store i32 1234567'
; Do not delete stores that are only partially killed.
%tmp.i = load %struct.TType** %DP_TTable ; <%struct.TType*> [#uses=1]
%tmp.i7.b = load bool* %TTSize.b ; <bool> [#uses=1]
%tmp1.i = select bool %tmp.i7.b, uint 60000000, uint 0 ; <uint> [#uses=1]
- %tmp.i = getelementptr %struct.TType* %tmp.i, int 0, uint 0 ; <sbyte*> [#uses=1]
- call void %llvm.memset.i32( sbyte* %tmp.i, ubyte 0, uint %tmp1.i, uint 4 )
+ %tmp.i.sb = getelementptr %struct.TType* %tmp.i, int 0, uint 0 ; <sbyte*> [#uses=1]
+ call void %llvm.memset.i32( sbyte* %tmp.i.sb, ubyte 0, uint %tmp1.i, uint 4 )
%tmp2.i = load %struct.TType** %AS_TTable ; <%struct.TType*> [#uses=1]
%tmp3.i8.b = load bool* %TTSize.b ; <bool> [#uses=1]
%tmp4.i = select bool %tmp3.i8.b, uint 60000000, uint 0 ; <uint> [#uses=1]
%tmp2.i = getelementptr %struct.TType* %tmp2.i, int 0, uint 0 ; <sbyte*> [#uses=1]
call void %llvm.memset.i32( sbyte* %tmp2.i, ubyte 0, uint %tmp4.i, uint 4 )
- %tmp.i = load %struct.QTType** %QS_TTable ; <%struct.QTType*> [#uses=1]
+ %tmp.i.QTT = load %struct.QTType** %QS_TTable ; <%struct.QTType*> [#uses=1]
%tmp5.i9.b = load bool* %TTSize.b ; <bool> [#uses=1]
%tmp6.i10 = select bool %tmp5.i9.b, uint 48000000, uint 0 ; <uint> [#uses=1]
- %tmp7.i = getelementptr %struct.QTType* %tmp.i, int 0, uint 0 ; <sbyte*> [#uses=1]
+ %tmp7.i = getelementptr %struct.QTType* %tmp.i.QTT, int 0, uint 0 ; <sbyte*> [#uses=1]
call void %llvm.memset.i32( sbyte* %tmp7.i, ubyte 0, uint %tmp6.i10, uint 4 )
- %tmp.i = load %struct.ECacheType** %ECache ; <%struct.ECacheType*> [#uses=1]
+ %tmp.i.ECache = load %struct.ECacheType** %ECache ; <%struct.ECacheType*> [#uses=1]
%tmp.i14.b = load bool* %ECacheSize.b ; <bool> [#uses=1]
%tmp1.i16 = select bool %tmp.i14.b, uint 12000000, uint 0 ; <uint> [#uses=1]
- %tmp.i17 = cast %struct.ECacheType* %tmp.i to sbyte* ; <sbyte*> [#uses=1]
+ %tmp.i17 = cast %struct.ECacheType* %tmp.i.ECache to sbyte* ; <sbyte*> [#uses=1]
call void %llvm.memset.i32( sbyte* %tmp.i17, ubyte 0, uint %tmp1.i16, uint 4 )
call void %llvm.memset.i32( sbyte* cast ([300 x int]* %rootlosers to sbyte*), ubyte 0, uint 1200, uint 4 )
%tmp234.b = load bool* %is_pondering.b ; <bool> [#uses=1]
%tmp1.b.i = load bool* %PBSize.b ; <bool> [#uses=1]
%tmp1.i1 = select bool %tmp1.b.i, uint 200000, uint 0 ; <uint> [#uses=1]
%tmp.i2 = call sbyte* %calloc( uint %tmp1.i1, uint 44 ) ; <sbyte*> [#uses=1]
- %tmp.i = cast sbyte* %tmp.i2 to ubyte* ; <ubyte*> [#uses=1]
- store ubyte* %tmp.i, ubyte** %membuff
+ %tmp.i.ub = cast sbyte* %tmp.i2 to ubyte* ; <ubyte*> [#uses=1]
+ store ubyte* %tmp.i.ub, ubyte** %membuff
%tmp2.i3 = call sbyte* %calloc( uint 1, uint 44 ) ; <sbyte*> [#uses=3]
%tmp2.i = cast sbyte* %tmp2.i3 to %struct.node_t* ; <%struct.node_t*> [#uses=6]
- %tmp.i = getelementptr [512 x %struct.move_s]* null, int 0, int 0 ; <%struct.move_s*> [#uses=3]
- call fastcc void %gen( %struct.move_s* %tmp.i )
+ %tmp.i.move_s = getelementptr [512 x %struct.move_s]* null, int 0, int 0 ; <%struct.move_s*> [#uses=3]
+ call fastcc void %gen( %struct.move_s* %tmp.i.move_s )
%tmp3.i4 = load int* %numb_moves ; <int> [#uses=4]
%tmp3.i5 = cast int %tmp3.i4 to uint ; <uint> [#uses=0]
store bool false, bool* %alllosers.b
cond_true43.i: ; preds = %cond_false12.i.i, %cond_true4.i.i
%tmp21.0.ph.i = phi int [ %tmp217.i, %cond_true4.i.i ], [ %tmp2120.i, %cond_false12.i.i ] ; <int> [#uses=1]
%i.0.0.i = cast uint 0 to int ; <int> [#uses=2]
- call fastcc void %make( %struct.move_s* %tmp.i, int %i.0.0.i )
- %tmp27.i = call fastcc uint %check_legal( %struct.move_s* %tmp.i, int %i.0.0.i, int %tmp21.0.ph.i ) ; <uint> [#uses=1]
+ call fastcc void %make( %struct.move_s* %tmp.i.move_s, int %i.0.0.i )
+ %tmp27.i = call fastcc uint %check_legal( %struct.move_s* %tmp.i.move_s, int %i.0.0.i, int %tmp21.0.ph.i ) ; <uint> [#uses=1]
%tmp.i6 = seteq uint %tmp27.i, 0 ; <bool> [#uses=0]
ret void
-; RUN: llvm-upgrade < %s | llvm-as | opt -indvars | llvm-dis | grep 'ret int 152'
+; RUN: llvm-upgrade < %s | llvm-as | opt -indvars | llvm-dis | grep 'ret i32 152'
int %main() {
entry:
-; RUN: llvm-upgrade < %s | llvm-as | opt -indvars | llvm-dis | grep 'ret int 27'
+; RUN: llvm-upgrade < %s | llvm-as | opt -indvars | llvm-dis | grep 'ret i32 27'
; Make sure to compute the right exit value based on negative strides.
; PR726
-; RUN: llvm-upgrade < %s | llvm-as | opt -indvars -instcombine | llvm-dis | grep 'store int 0'
+; RUN: llvm-upgrade < %s | llvm-as | opt -indvars -instcombine | llvm-dis | grep 'store i32 0'
; Test that -indvars can reduce variable stride IVs. If it can reduce variable
; stride iv's, it will make %iv. and %m.0.0 isomorphic to each other without
; cycles, allowing the tmp.21 subtraction to be eliminated.
br label %no_exit
no_exit: ; preds = %no_exit, %no_exit.preheader
- %iv. = phi uint [ 0, %no_exit.preheader ], [ %iv..inc, %no_exit ] ; <uint> [#uses=1]
+ %iv.ui = phi uint [ 0, %no_exit.preheader ], [ %iv..inc.ui, %no_exit ] ; <uint> [#uses=1]
%iv. = phi int [ %tmp.5, %no_exit.preheader ], [ %iv..inc, %no_exit ] ; <int> [#uses=2]
%m.0.0 = phi int [ %tmp.5, %no_exit.preheader ], [ %tmp.24, %no_exit ] ; <int> [#uses=2]
store int 2, int* %tmp.16
store int %tmp.21, int* %data
%tmp.24 = add int %m.0.0, %tmp.9 ; <int> [#uses=1]
%iv..inc = add int %tmp.9, %iv. ; <int> [#uses=1]
- %iv..inc = add uint %iv., 1 ; <uint> [#uses=2]
- %iv..inc1 = cast uint %iv..inc to int ; <int> [#uses=1]
+ %iv..inc.ui = add uint %iv.ui, 1 ; <uint> [#uses=2]
+ %iv..inc1 = cast uint %iv..inc.ui to int ; <int> [#uses=1]
%tmp.12 = setlt int %iv..inc1, %tmp.2 ; <bool> [#uses=1]
br bool %tmp.12, label %no_exit, label %return.loopexit
-; RUN: llvm-upgrade < %s | llvm-as | opt -inline | llvm-dis | grep 'ret int 1'
+; RUN: llvm-upgrade < %s | llvm-as | opt -inline | llvm-dis | grep 'ret i32 1'
; ModuleID = 'short.opt.bc'
implementation ; Functions:
int %mem_mono_copy_mono(%struct.gx_device* %dev, ubyte* %base, int %sourcex, int %raster, int %x, int %y, int %w, int %h, uint %zero, uint %one) {
entry:
- %raster = cast int %raster to uint ; <uint> [#uses=3]
+ %raster.ui = cast int %raster to uint ; <uint> [#uses=3]
%tmp = seteq uint %one, %zero ; <bool> [#uses=1]
br bool %tmp, label %cond_true, label %cond_next
%optr.3.2 = phi ubyte* [ %tmp232, %cond_true249 ], [ %dest.1.0, %cond_true249.preheader ] ; <ubyte*> [#uses=1]
%bptr.3.2 = phi ubyte* [ %tmp226, %cond_true249 ], [ %line.1.0, %cond_true249.preheader ] ; <ubyte*> [#uses=1]
%tmp. = add int %tmp109, %w ; <int> [#uses=1]
- %indvar = cast uint %indvar to int ; <int> [#uses=1]
%tmp.58 = mul int %indvar, -8 ; <int> [#uses=1]
%tmp.57 = add int %tmp., -16 ; <int> [#uses=1]
%tmp246.2 = add int %tmp.58, %tmp.57 ; <int> [#uses=1]
%dest.1.0.us = phi ubyte* [ %tmp286.us, %cond_next280.us ], [ %tmp100, %cond_true295.preheader.split.us ] ; <ubyte*> [#uses=3]
%dest_line.1.0.us = phi ubyte** [ %tmp282.us, %cond_next280.us ], [ %tmp96, %cond_true295.preheader.split.us ] ; <ubyte**> [#uses=1]
%tmp.89 = sub uint 0, %indvar86 ; <uint> [#uses=1]
- %tmp.89 = cast uint %tmp.89 to int ; <int> [#uses=1]
%tmp292.0.us = add int %tmp.89, %tmp29222 ; <int> [#uses=1]
- %tmp.91 = mul uint %indvar86, %raster ; <uint> [#uses=1]
- %tmp.91 = cast uint %tmp.91 to int ; <int> [#uses=1]
+ %tmp.91 = mul uint %indvar86, %raster.ui ; <uint> [#uses=1]
%tmp104.sum101 = add int %tmp102, %tmp.91 ; <int> [#uses=1]
%line.1.0.us = getelementptr ubyte* %base, int %tmp104.sum101 ; <ubyte*> [#uses=2]
%tmp.us = load ubyte* %line.1.0.us ; <ubyte> [#uses=1]
%dest.1.0 = phi ubyte* [ %tmp286, %cond_next280 ], [ %tmp100, %cond_true295.preheader.split ] ; <ubyte*> [#uses=4]
%dest_line.1.0 = phi ubyte** [ %tmp282, %cond_next280 ], [ %tmp96, %cond_true295.preheader.split ] ; <ubyte**> [#uses=1]
%tmp.63 = sub uint 0, %indvar60 ; <uint> [#uses=1]
- %tmp.63 = cast uint %tmp.63 to int ; <int> [#uses=1]
%tmp292.0 = add int %tmp.63, %tmp29222 ; <int> [#uses=1]
- %tmp.65 = mul uint %indvar60, %raster ; <uint> [#uses=1]
- %tmp.65 = cast uint %tmp.65 to int ; <int> [#uses=1]
+ %tmp.65 = mul uint %indvar60, %raster.ui ; <uint> [#uses=1]
%tmp104.sum97 = add int %tmp102, %tmp.65 ; <int> [#uses=1]
%line.1.0 = getelementptr ubyte* %base, int %tmp104.sum97 ; <ubyte*> [#uses=3]
%tmp = load ubyte* %line.1.0 ; <ubyte> [#uses=1]
%optr309.3.0 = phi ubyte* [ %optr309.3, %cond_true398 ], [ %optr309.353, %cond_true398.preheader ] ; <ubyte*> [#uses=2]
%optr309.3.in.0 = add uint %indvar66, %optr309.3.in51 ; <uint> [#uses=1]
%tmp.70 = add int %tmp109, %w ; <int> [#uses=1]
- %indvar66 = cast uint %indvar66 to int ; <int> [#uses=1]
%tmp.72 = mul int %indvar66, -8 ; <int> [#uses=1]
%tmp.71 = add int %tmp.70, -8 ; <int> [#uses=1]
%count308.3.0 = add int %tmp.72, %tmp.71 ; <int> [#uses=1]
%tmp416 = load ubyte* %tmp410 ; <ubyte> [#uses=1]
%tmp416 = cast ubyte %tmp416 to uint ; <uint> [#uses=1]
%tmp418 = shr uint %tmp416, ubyte %tmp319 ; <uint> [#uses=1]
- %tmp418 = cast uint %tmp418 to int ; <int> [#uses=1]
%tmp420 = add int %tmp418, %tmp408 ; <int> [#uses=1]
br label %cond_next422
%tmp354 = and uint %iftmp.37.0, %mask.1.1 ; <uint> [#uses=1]
%tmp361 = sub int %w, %tmp110 ; <int> [#uses=2]
%tmp39755 = setgt int %tmp361, 7 ; <bool> [#uses=1]
- %iftmp.35.0 = cast uint %iftmp.35.0 to int ; <int> [#uses=1]
%tmp426 = cast uint %rmask.0.1 to ubyte ; <ubyte> [#uses=1]
%tmp426not = xor ubyte %tmp426, 255 ; <ubyte> [#uses=1]
%tmp428 = or ubyte %tmp347, %tmp426not ; <ubyte> [#uses=1]
%dest.3.0 = phi ubyte* [ %tmp448, %cond_next442 ], [ %tmp100, %cond_true457.preheader ] ; <ubyte*> [#uses=3]
%dest_line.3.0 = phi ubyte** [ %tmp444, %cond_next442 ], [ %tmp96, %cond_true457.preheader ] ; <ubyte**> [#uses=1]
%tmp.77 = sub uint 0, %indvar74 ; <uint> [#uses=1]
- %tmp.77 = cast uint %tmp.77 to int ; <int> [#uses=1]
%tmp454.0 = add int %tmp.77, %tmp45438 ; <int> [#uses=1]
- %tmp.79 = mul uint %indvar74, %raster ; <uint> [#uses=1]
- %tmp.79 = cast uint %tmp.79 to int ; <int> [#uses=1]
+ %tmp.79 = mul uint %indvar74, %raster.ui ; <uint> [#uses=1]
%tmp104.sum = add int %tmp102, %tmp.79 ; <int> [#uses=1]
%line.3.0 = getelementptr ubyte* %base, int %tmp104.sum ; <ubyte*> [#uses=3]
%tmp318 = load ubyte* %line.3.0 ; <ubyte> [#uses=2]
entry:
%tmp = getelementptr { long, long, long, long }* null, int 0, uint 3
%tmp = load long* %tmp ; <long> [#uses=1]
- %tmp8 = load ulong* null ; <ulong> [#uses=1]
- %tmp8 = cast ulong %tmp8 to long ; <long> [#uses=1]
+ %tmp8.ui = load ulong* null ; <ulong> [#uses=1]
+ %tmp8 = cast ulong %tmp8.ui to long ; <long> [#uses=1]
%tmp9 = and long %tmp8, %tmp ; <long> [#uses=1]
%sext = cast long %tmp9 to int ; <int> [#uses=1]
%tmp27.i = cast int %sext to long ; <long> [#uses=1]
; PR913
int %test(int* %tmp1) {
- %tmp = load int* %tmp1 ; <int> [#uses=1]
- %tmp = cast int %tmp to uint ; <uint> [#uses=1]
- %tmp2 = shr uint %tmp, ubyte 5 ; <uint> [#uses=1]
- %tmp2 = cast uint %tmp2 to int ; <int> [#uses=1]
+ %tmp.i = load int* %tmp1 ; <int> [#uses=1]
+ %tmp = cast int %tmp.i to uint ; <uint> [#uses=1]
+ %tmp2.ui = shr uint %tmp, ubyte 5 ; <uint> [#uses=1]
+ %tmp2 = cast uint %tmp2.ui to int ; <int> [#uses=1]
%tmp3 = and int %tmp2, 1 ; <int> [#uses=1]
%tmp3 = cast int %tmp3 to bool ; <bool> [#uses=1]
%tmp34 = cast bool %tmp3 to int ; <int> [#uses=1]
; The optimizer should be able to remove cast operation here.
-; RUN: llvm-upgrade %s -o - | llvm-as | opt -instcombine | llvm-dis | not grep 'sext.*int'
+; RUN: llvm-upgrade %s -o - | llvm-as | opt -instcombine | llvm-dis | not grep 'sext.*i32'
bool %eq_signed_to_small_unsigned(sbyte %SB) {
%Y = cast sbyte %SB to uint ; <uint> [#uses=1]
; This test case is reduced from llvmAsmParser.cpp
; The optimizer should not remove the cast here.
-; RUN: llvm-upgrade %s -o - | llvm-as | opt -instcombine | llvm-dis | grep 'sext.*int'
+; RUN: llvm-upgrade %s -o - | llvm-as | opt -instcombine | llvm-dis | grep 'sext.*i32'
bool %test(short %X) {
%A = cast short %X to uint
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | grep 'ret int %A'
+; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | grep 'ret i32 %A'
int %test(int %A) {
%X = or bool false, false
; Test some floating point casting cases
; RUN: llvm-upgrade %s -o - | llvm-as | opt -instcombine | llvm-dis | notcast
; RUN: llvm-upgrade %s -o - | llvm-as | opt -instcombine | llvm-dis | \
-; RUN: grep 'ret [us]byte \(-1\)\|\(255\)'
+; RUN: grep 'ret i8 \(-1\)\|\(255\)'
-sbyte %test() {
+sbyte %test1() {
%x = fptoui float 255.0 to sbyte
ret sbyte %x
}
-ubyte %test() {
+ubyte %test2() {
%x = fptosi float -1.0 to ubyte
ret ubyte %x
}
; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine -disable-output &&
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | grep 'lshr int' | wc -l | grep 2 &&
+; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | grep 'lshr i32' | wc -l | grep 2 &&
; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | not grep ashr
int %test1(int %X, ubyte %A) {
; This test makes sure that these instructions are properly eliminated.
;
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | grep -v 'sub int %Cok, %Bok' | not grep sub
+; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | grep -v 'sub i32 %Cok, %Bok' | not grep sub
implementation
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | grep 'and int %Y, 8'
+; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | grep 'and i32 %Y, 8'
int %test1(ubyte %X) {
%Y = cast ubyte %X to int
-; RUN: llvm-upgrade < %s | llvm-as | opt -lcssa | llvm-dis | grep "X3.lcssa = phi int" &&
-; RUN: llvm-upgrade < %s | llvm-as | opt -lcssa | llvm-dis | grep "%X4 = add int 3, %X3.lcssa"
+; RUN: llvm-upgrade < %s | llvm-as | opt -lcssa | llvm-dis | grep "X3.lcssa = phi i32" &&
+; RUN: llvm-upgrade < %s | llvm-as | opt -lcssa | llvm-dis | grep "%X4 = add i32 3, %X3.lcssa"
void %lcssa(bool %S2) {
entry:
loop.exit:
%X4 = add int 3, %X3
ret void
-}
\ No newline at end of file
+}
; RUN: llvm-upgrade < %s | llvm-as | opt -licm | llvm-dis
-void "testfunc"(int %i) {
+void "testfunc"(int %i.s) {
br label %Loop
Loop:
%j = phi uint [0, %0], [%Next, %Loop]
- %i = cast int %i to uint
+ %i = cast int %i.s to uint
%i2 = mul uint %i, 17
%Next = add uint %j, %i2
%cond = seteq uint %Next, 0
; Test that LICM works when there is not a loop-preheader
; RUN: llvm-upgrade < %s | llvm-as | opt -licm | llvm-dis
-void "testfunc"(int %i, bool %ifcond) {
+void "testfunc"(int %i.s, bool %ifcond) {
br bool %ifcond, label %Then, label %Else
Then:
br label %Loop
Loop:
%j = phi uint [0, %Then], [12, %Else], [%Next, %Loop]
- %i = cast int %i to uint
+ %i = cast int %i.s to uint
%i2 = mul uint %i, 17
%Next = add uint %j, %i2
%cond = seteq uint %Next, 0
br label %no_exit.1
no_exit.1: ; preds = %cond_continue, %no_exit.1.outer
- %indvar = phi uint [ 0, %no_exit.1.outer ], [ %indvar.next, %cond_continue ] ; <uint> [#uses=2]
- %indvar = cast uint %indvar to int ; <int> [#uses=1]
+ %indvar.ui = phi uint [ 0, %no_exit.1.outer ], [ %indvar.next, %cond_continue ] ; <uint> [#uses=2]
+ %indvar = cast uint %indvar.ui to int ; <int> [#uses=1]
%j.1.2 = add int %indvar, %j.1.2.ph ; <int> [#uses=2]
%tmp.11 = add int %j.1.2, %tmp.9 ; <int> [#uses=1]
%tmp.12 = cast int %tmp.11 to ubyte ; <ubyte> [#uses=1]
cond_continue: ; preds = %no_exit.1
%tmp.519 = setlt int %inc.1, %C ; <bool> [#uses=1]
- %indvar.next = add uint %indvar, 1 ; <uint> [#uses=1]
+ %indvar.next = add uint %indvar.ui, 1 ; <uint> [#uses=1]
br bool %tmp.519, label %no_exit.1, label %loopexit.1
loopexit.1: ; preds = %cond_continue, %cond_true, %loopentry.1
; RUN: llvm-upgrade < %s | llvm-as | opt -loop-reduce | llvm-dis | grep mul | wc -l | grep 1
; LSR should not make two copies of the Q*L expression in the preheader!
-sbyte %test(sbyte* %A, sbyte* %B, int %L, int %Q, int %N) {
+sbyte %test(sbyte* %A, sbyte* %B, int %L, int %Q, int %N.s) {
entry:
%tmp.6 = mul int %Q, %L ; <int> [#uses=1]
- %N = cast int %N to uint ; <uint> [#uses=1]
+ %N = cast int %N.s to uint ; <uint> [#uses=1]
br label %no_exit
no_exit: ; preds = %no_exit, %no_exit.preheader
- %indvar = phi uint [ 0, %entry], [ %indvar.next, %no_exit ] ; <uint> [#uses=2]
+ %indvar.ui = phi uint [ 0, %entry], [ %indvar.next, %no_exit ] ; <uint> [#uses=2]
%Sum.0.0 = phi sbyte [ 0, %entry], [ %tmp.21, %no_exit ] ; <sbyte> [#uses=1]
- %indvar = cast uint %indvar to int ; <int> [#uses=1]
- %N_addr.0.0 = sub int %N, %indvar ; <int> [#uses=1]
+ %indvar = cast uint %indvar.ui to int ; <int> [#uses=1]
+ %N_addr.0.0 = sub int %N.s, %indvar ; <int> [#uses=1]
%tmp.8 = add int %N_addr.0.0, %tmp.6 ; <int> [#uses=2]
%tmp.9 = getelementptr sbyte* %A, int %tmp.8 ; <sbyte*> [#uses=1]
%tmp.10 = load sbyte* %tmp.9 ; <sbyte> [#uses=1]
%tmp.18 = load sbyte* %tmp.17 ; <sbyte> [#uses=1]
%tmp.19 = sub sbyte %tmp.10, %tmp.18 ; <sbyte> [#uses=1]
%tmp.21 = add sbyte %tmp.19, %Sum.0.0 ; <sbyte> [#uses=2]
- %indvar.next = add uint %indvar, 1 ; <uint> [#uses=2]
+ %indvar.next = add uint %indvar.ui, 1 ; <uint> [#uses=2]
%exitcond = seteq uint %indvar.next, %N ; <bool> [#uses=1]
br bool %exitcond, label %loopexit, label %no_exit
-; RUN: llvm-upgrade < %s | llvm-as | opt -loop-reduce | llvm-dis | grep 'add uint %iv.*inc, 1'
+; RUN: llvm-upgrade < %s | llvm-as | opt -loop-reduce | llvm-dis | grep 'add i32 %iv.*inc, 1'
;
; Make sure that the use of the IV outside of the loop (the store) uses the
; post incremented value of the IV, not the preincremented value. This
br label %no_exit.2
no_exit.2: ; preds = %no_exit.2, %then.0
- %indvar630 = phi uint [ 0, %then.0 ], [ %indvar.next631, %no_exit.2 ] ; <uint> [#uses=3]
- %indvar630 = cast uint %indvar630 to int ; <int> [#uses=1]
- %tmp.38 = getelementptr [700 x int]* %nbeaux_.0__558, int 0, uint %indvar630 ; <int*> [#uses=1]
+ %indvar630.ui = phi uint [ 0, %then.0 ], [ %indvar.next631, %no_exit.2 ] ; <uint> [#uses=3]
+ %indvar630 = cast uint %indvar630.ui to int ; <int> [#uses=1]
+ %tmp.38 = getelementptr [700 x int]* %nbeaux_.0__558, int 0, uint %indvar630.ui ; <int*> [#uses=1]
store int 0, int* %tmp.38
%inc.2 = add int %indvar630, 2 ; <int> [#uses=2]
%tmp.34 = call bool %pred(int %indvar630)
- %indvar.next631 = add uint %indvar630, 1 ; <uint> [#uses=1]
+ %indvar.next631 = add uint %indvar630.ui, 1 ; <uint> [#uses=1]
br bool %tmp.34, label %no_exit.2, label %loopexit.2.loopexit
loopexit.2.loopexit: ; preds = %no_exit.2
implementation ; Functions:
-void %foo(int %k, int %i) {
+void %foo(int %k, int %i.s) {
entry:
- %i = cast int %i to uint ; <uint> [#uses=2]
- %k_addr.012 = shl int %i, ubyte 1 ; <int> [#uses=1]
+ %i = cast int %i.s to uint ; <uint> [#uses=2]
+ %k_addr.012 = shl int %i.s, ubyte 1 ; <int> [#uses=1]
%tmp14 = setgt int %k_addr.012, 8192 ; <bool> [#uses=1]
br bool %tmp14, label %return, label %bb.preheader
%k_addr.0.0 = cast uint %tmp.16 to int ; <int> [#uses=1]
%tmp = getelementptr [8193 x sbyte]* %flags2, int 0, uint %tmp.16 ; <sbyte*> [#uses=1]
store sbyte 0, sbyte* %tmp
- %k_addr.0 = add int %k_addr.0.0, %i ; <int> [#uses=1]
+ %k_addr.0 = add int %k_addr.0.0, %i.s ; <int> [#uses=1]
%tmp = setgt int %k_addr.0, 8192 ; <bool> [#uses=1]
%indvar.next = add uint %indvar, 1 ; <uint> [#uses=1]
br bool %tmp, label %return.loopexit, label %bb
no_exit.53: ; preds = %else.166, %else.168, %then.360, %no_exit.53.outer
%file.2.3.3.ph = phi int [ 0, %no_exit.53.outer ], [ %inc.551688, %then.360 ], [ %inc.551701, %else.168 ], [ %file.2.3.3.ph, %else.166 ] ; <int> [#uses=2]
%nempty.5.3.ph = phi int [ 0, %no_exit.53.outer ], [ %nempty.5.3, %then.360 ], [ %nempty.5.3, %else.168 ], [ %nempty.5.3.ph, %else.166 ] ; <int> [#uses=2]
- %indvar2053 = phi uint [ 0, %no_exit.53.outer ], [ 0, %then.360 ], [ 0, %else.168 ], [ %indvar.next2054, %else.166 ] ; <uint> [#uses=2]
- %indvar2053 = cast uint %indvar2053 to int ; <int> [#uses=2]
+ %indvar2053.ui = phi uint [ 0, %no_exit.53.outer ], [ 0, %then.360 ], [ 0, %else.168 ], [ %indvar.next2054, %else.166 ] ; <uint> [#uses=2]
+ %indvar2053 = cast uint %indvar2053.ui to int ; <int> [#uses=2]
%file.2.3.3 = add int %indvar2053, %file.2.3.3.ph ; <int> [#uses=4]
%nempty.5.3 = add int %indvar2053, %nempty.5.3.ph ; <int> [#uses=3]
%tmp.4749 = add int %file.2.3.3, %tmp.4747 ; <int> [#uses=1]
else.166: ; preds = %no_exit.53
%inc.55 = add int %file.2.3.3, 1 ; <int> [#uses=1]
%tmp.47421705 = setlt int %inc.55, 8 ; <bool> [#uses=1]
- %indvar.next2054 = add uint %indvar2053, 1 ; <uint> [#uses=1]
+ %indvar.next2054 = add uint %indvar2053.ui, 1 ; <uint> [#uses=1]
br bool %tmp.47421705, label %no_exit.53, label %loopexit.56
loopexit.56: ; preds = %else.166, %else.168, %then.360
br label %cond_true
cond_true: ; preds = %return.i, %cond_true.outer
- %indvar = phi uint [ 0, %cond_true.outer ], [ %indvar.next, %return.i ] ; <uint> [#uses=2]
- %indvar = cast uint %indvar to int ; <int> [#uses=1]
+ %indvar.ui = phi uint [ 0, %cond_true.outer ], [ %indvar.next, %return.i ] ; <uint> [#uses=2]
+ %indvar = cast uint %indvar.ui to int ; <int> [#uses=1]
%i.0.0 = add int %indvar, %i.0.0.ph ; <int> [#uses=3]
%savedstack = call sbyte* %llvm.stacksave( ) ; <sbyte*> [#uses=2]
%tmp.i = seteq int %i.0.0, 0 ; <bool> [#uses=1]
return.i: ; preds = %cond_true
call void %llvm.stackrestore( sbyte* %savedstack )
%tmp21 = setgt int %tmp5, 9999 ; <bool> [#uses=1]
- %indvar.next = add uint %indvar, 1 ; <uint> [#uses=1]
+ %indvar.next = add uint %indvar.ui, 1 ; <uint> [#uses=1]
br bool %tmp21, label %bb8, label %cond_true
bb8: ; preds = %return.i, %cond_true.i
-; RUN: llvm-upgrade < %s | llvm-as | opt -reassociate -instcombine | llvm-dis | grep 'ret int 0'
+; RUN: llvm-upgrade < %s | llvm-as | opt -reassociate -instcombine | llvm-dis | grep 'ret i32 0'
int %f(int %a0, int %a1, int %a2, int %a3, int %a4) {
%tmp.2 = add int %a4, %a3 ; <int> [#uses=1]
; With shl->mul reassociation, we can see that this is (shl A, 9) * A
;
-; RUN: llvm-upgrade < %s | llvm-as | opt -reassociate -instcombine | llvm-dis | grep 'shl .*, ubyte 9'
+; RUN: llvm-upgrade < %s | llvm-as | opt -reassociate -instcombine | llvm-dis | grep 'shl .*, i8 9'
int %test(int %A, int %B) {
%X = shl int %A, ubyte 5
-; RUN: llvm-upgrade < %s | llvm-as | opt -sccp | llvm-dis | grep 'ret int 1'
+; RUN: llvm-upgrade < %s | llvm-as | opt -sccp | llvm-dis | grep 'ret i32 1'
; This function definitely returns 1, even if we don't know the direction
; of the branch.
void %gldLLVMVecPointRender(%struct.GLDContextRec* %ctx) {
entry:
- %tmp = getelementptr %struct.GLDContextRec* %ctx, int 0, uint 22 ; <uint*> [#uses=1]
- %tmp = load uint* %tmp ; <uint> [#uses=3]
+ %tmp.uip = getelementptr %struct.GLDContextRec* %ctx, int 0, uint 22 ; <uint*> [#uses=1]
+ %tmp = load uint* %tmp.uip ; <uint> [#uses=3]
%tmp91 = lshr uint %tmp, ubyte 5 ; <uint> [#uses=1]
%tmp92 = trunc uint %tmp91 to bool ; <bool> [#uses=1]
br bool %tmp92, label %cond_true93, label %cond_next116
-; RUN: llvm-upgrade < %s | llvm-as | opt -ipsccp | llvm-dis | grep -v 'ret int 17' | grep -v 'ret int undef' | not grep ret
+; RUN: llvm-upgrade < %s | llvm-as | opt -ipsccp | llvm-dis | grep -v 'ret i32 17' | grep -v 'ret i32 undef' | not grep ret
implementation
-; RUN: llvm-upgrade < %s | llvm-as | opt -ipsccp | llvm-dis | grep -v 'ret int 0' | grep -v 'ret int undef' | not grep ret
+; RUN: llvm-upgrade < %s | llvm-as | opt -ipsccp | llvm-dis | grep -v 'ret i32 0' | grep -v 'ret i32 undef' | not grep ret
implementation
-; RUN: llvm-upgrade < %s | llvm-as | opt -sccp | llvm-dis | grep 'ret int 0'
+; RUN: llvm-upgrade < %s | llvm-as | opt -sccp | llvm-dis | grep 'ret i32 0'
; Test that SCCP has basic knowledge of when and/or nuke overdefined values.
; RUN: llvm-upgrade < %s | llvm-as | opt -scalarrepl | llvm-dis &&
-; RUN: llvm-upgrade < %s | llvm-as | opt -scalarrepl | llvm-dis | grep -F 'alloca [2 x <4 x int>]'
+; RUN: llvm-upgrade < %s | llvm-as | opt -scalarrepl | llvm-dis | grep -F 'alloca [2 x <4 x i32>]'
int %func(<4 x float> %v0, <4 x float> %v1) {
%vsiidx = alloca [2 x <4 x int>], align 16 ; <[2 x <4 x int>]*> [#uses=3]
; RUN: llvm-upgrade < %s | llvm-as | opt -scalarrepl | llvm-dis | not grep alloca &&
-; RUN: llvm-upgrade < %s | llvm-as | opt -scalarrepl | llvm-dis | grep 'bitcast.*float.*int'
+; RUN: llvm-upgrade < %s | llvm-as | opt -scalarrepl | llvm-dis | grep 'bitcast.*float.*i32'
int %test(float %X) {
%X_addr = alloca float
; RUN: llvm-upgrade < %s | llvm-as | opt -scalarrepl | llvm-dis | not grep alloca &&
-; RUN: llvm-upgrade < %s | llvm-as | opt -scalarrepl | llvm-dis | grep 'ret sbyte'
+; RUN: llvm-upgrade < %s | llvm-as | opt -scalarrepl | llvm-dis | grep 'ret i8'
; PR892
cond_next225: ; preds = %invcont222, %cond_true217, %invcont213
%toPage.1 = phi int [ %tmp223, %invcont222 ], [ %tmp214, %cond_true217 ], [ %tmp214, %invcont213 ] ; <int> [#uses=2]
%fromPage.1 = phi int [ 1, %invcont222 ], [ %tmp211, %cond_true217 ], [ %tmp211, %invcont213 ] ; <int> [#uses=2]
- %tmp = invoke uint %_ZNK8QPrinter9pageOrderEv( %struct.QPrinter* %printer )
+ %tmp.page = invoke uint %_ZNK8QPrinter9pageOrderEv( %struct.QPrinter* %printer )
to label %invcont227 unwind label %cleanup329 ; <uint> [#uses=1]
invcont227: ; preds = %cond_next225
- %tmp228 = seteq uint %tmp, 1 ; <bool> [#uses=1]
+ %tmp228 = seteq uint %tmp.page, 1 ; <bool> [#uses=1]
br bool %tmp228, label %cond_true230, label %cond_next234
cond_true230: ; preds = %invcont227
bb: ; preds = %bb33
%tmp = load %struct.FILE** %f_addr ; <%struct.FILE*> [#uses=1]
- %tmp = call int %_IO_getc( %struct.FILE* %tmp ) ; <int> [#uses=1]
+ %tmp.r = call int %_IO_getc( %struct.FILE* %tmp ) ; <int> [#uses=1]
%tmp6 = call int %tolower( int %tmp ) ; <int> [#uses=1]
%tmp6 = trunc int %tmp6 to sbyte ; <sbyte> [#uses=1]
store sbyte %tmp6, sbyte* %c
; Test that the ExitInMainOptimization pass works correctly
-; RUN: llvm-upgrade < %s | llvm-as | opt -simplify-libcalls | llvm-dis | grep -c 'ret int 3' | grep 1
+; RUN: llvm-upgrade < %s | llvm-as | opt -simplify-libcalls | llvm-dis | grep -c 'ret i32 3' | grep 1
declare void %exit(int)
declare void %exitonly(int)
-; RUN: llvm-upgrade < %s | llvm-as | opt -tailcallelim | llvm-dis | grep 'call int %foo'
+; RUN: llvm-upgrade < %s | llvm-as | opt -tailcallelim | llvm-dis | grep 'call i32 %foo'
declare void %bar(int*)
int %foo(uint %N) {
-; RUN: llvm-upgrade < %s | llvm-as | opt -tailcallelim | llvm-dis | %prcontext alloca 1 | grep 'int %foo'
+; RUN: llvm-upgrade < %s | llvm-as | opt -tailcallelim | llvm-dis | %prcontext alloca 1 | grep 'i32 %foo'
declare void %bar(int*)
int %foo() {