diff --git a/llvm/test/ExecutionEngine/OrcJIT/2002-12-16-ArgTest.ll b/llvm/test/ExecutionEngine/OrcJIT/2002-12-16-ArgTest.ll new file mode 100644 index 000000000000..e2fee8d5e51e --- /dev/null +++ b/llvm/test/ExecutionEngine/OrcJIT/2002-12-16-ArgTest.ll @@ -0,0 +1,37 @@ +; RUN: %lli -use-orcmcjit %s > /dev/null + +@.LC0 = internal global [10 x i8] c"argc: %d\0A\00" ; <[10 x i8]*> [#uses=1] + +declare i32 @puts(i8*) + +define void @getoptions(i32* %argc) { +bb0: + ret void +} + +declare i32 @printf(i8*, ...) + +define i32 @main(i32 %argc, i8** %argv) { +bb0: + call i32 (i8*, ...)* @printf( i8* getelementptr ([10 x i8]* @.LC0, i64 0, i64 0), i32 %argc ) ; :0 [#uses=0] + %cast224 = bitcast i8** %argv to i8* ; [#uses=1] + %local = alloca i8* ; [#uses=3] + store i8* %cast224, i8** %local + %cond226 = icmp sle i32 %argc, 0 ; [#uses=1] + br i1 %cond226, label %bb3, label %bb2 +bb2: ; preds = %bb2, %bb0 + %cann-indvar = phi i32 [ 0, %bb0 ], [ %add1-indvar, %bb2 ] ; [#uses=2] + %add1-indvar = add i32 %cann-indvar, 1 ; [#uses=2] + %cann-indvar-idxcast = sext i32 %cann-indvar to i64 ; [#uses=1] + %CT = bitcast i8** %local to i8*** ; [#uses=1] + %reg115 = load i8*** %CT ; [#uses=1] + %cast235 = getelementptr i8** %reg115, i64 %cann-indvar-idxcast ; [#uses=1] + %reg117 = load i8** %cast235 ; [#uses=1] + %reg236 = call i32 @puts( i8* %reg117 ) ; [#uses=0] + %cond239 = icmp slt i32 %add1-indvar, %argc ; [#uses=1] + br i1 %cond239, label %bb2, label %bb3 +bb3: ; preds = %bb2, %bb0 + %cast243 = bitcast i8** %local to i32* ; [#uses=1] + call void @getoptions( i32* %cast243 ) + ret i32 0 +} diff --git a/llvm/test/ExecutionEngine/OrcJIT/2003-01-04-ArgumentBug.ll b/llvm/test/ExecutionEngine/OrcJIT/2003-01-04-ArgumentBug.ll new file mode 100644 index 000000000000..67425a9a3a3c --- /dev/null +++ b/llvm/test/ExecutionEngine/OrcJIT/2003-01-04-ArgumentBug.ll @@ -0,0 +1,13 @@ +; RUN: %lli -use-orcmcjit %s > /dev/null + +define i32 @foo(i32 %X, i32 %Y, double %A) { + %cond212 = fcmp une double %A, 1.000000e+00 ; [#uses=1] + %cast110 = zext i1 %cond212 to i32 ; [#uses=1] + ret i32 %cast110 +} + +define i32 @main() { + %reg212 = call i32 @foo( i32 0, i32 1, double 1.000000e+00 ) ; [#uses=1] + ret i32 %reg212 +} + diff --git a/llvm/test/ExecutionEngine/OrcJIT/2003-01-04-LoopTest.ll b/llvm/test/ExecutionEngine/OrcJIT/2003-01-04-LoopTest.ll new file mode 100644 index 000000000000..cf805ea4162a --- /dev/null +++ b/llvm/test/ExecutionEngine/OrcJIT/2003-01-04-LoopTest.ll @@ -0,0 +1,20 @@ +; RUN: %lli -use-orcmcjit %s > /dev/null + +define i32 @main() { + call i32 @mylog( i32 4 ) ; :1 [#uses=0] + ret i32 0 +} + +define internal i32 @mylog(i32 %num) { +bb0: + br label %bb2 +bb2: ; preds = %bb2, %bb0 + %reg112 = phi i32 [ 10, %bb2 ], [ 1, %bb0 ] ; [#uses=1] + %cann-indvar = phi i32 [ %cann-indvar, %bb2 ], [ 0, %bb0 ] ; [#uses=1] + %reg114 = add i32 %reg112, 1 ; [#uses=2] + %cond222 = icmp slt i32 %reg114, %num ; [#uses=1] + br i1 %cond222, label %bb2, label %bb3 +bb3: ; preds = %bb2 + ret i32 %reg114 +} + diff --git a/llvm/test/ExecutionEngine/OrcJIT/2003-01-04-PhiTest.ll b/llvm/test/ExecutionEngine/OrcJIT/2003-01-04-PhiTest.ll new file mode 100644 index 000000000000..b8b851966c06 --- /dev/null +++ b/llvm/test/ExecutionEngine/OrcJIT/2003-01-04-PhiTest.ll @@ -0,0 +1,12 @@ +; RUN: %lli -use-orcmcjit %s > /dev/null + +define i32 @main() { +;