aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authormax99x <max99x@gmail.com>2011-07-03 07:42:26 +0300
committermax99x <max99x@gmail.com>2011-07-03 07:42:26 +0300
commita440e9845a119417aef3cdab3d839d42767f967c (patch)
tree1cb9c8bd96006db0105e9ec41283dd6e305d7363 /tests
parent48a2a87ebac0836508b85bfe82be24f325487a54 (diff)
parentb250dac956589b058f65e6975429abb99558faf3 (diff)
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'tests')
-rw-r--r--tests/issue_39.ll37
-rw-r--r--tests/runner.py8
2 files changed, 43 insertions, 2 deletions
diff --git a/tests/issue_39.ll b/tests/issue_39.ll
new file mode 100644
index 00000000..96460693
--- /dev/null
+++ b/tests/issue_39.ll
@@ -0,0 +1,37 @@
+; ModuleID = '/dev/shm/tmp/src.cpp.o'
+target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32-f128:128:128-n8:16:32"
+target triple = "i386-pc-linux-gnu"
+
+@.str = private unnamed_addr constant [6 x i8] c"*yes*\00", align 1 ; [#uses=1]
+
+; [#uses=0]
+define i32 @main() {
+entry:
+ %retval = alloca i32 ; [#uses=2]
+ %0 = alloca i32 ; [#uses=2]
+ %x = alloca i32 ; [#uses=2]
+ %"alloca point" = bitcast i32 0 to i32 ; [#uses=0]
+ store i32 5, i32* %x, align 4
+ %1 = load i32* %x, align 4 ; [#uses=1]
+ br i1 icmp sgt (i32 %1, i32 3), label %bb, label %bb1
+
+bb: ; preds = %entry
+ %3 = call i32 @puts(i8* getelementptr inbounds ([6 x i8]* @.str, i32 0, i32 0)) ; [#uses=0]
+ br label %bb1
+
+bb1: ; preds = %bb, %entry
+ store i32 0, i32* %0, align 4
+ %4 = load i32* %0, align 4 ; [#uses=1]
+ store i32 %4, i32* %retval, align 4
+ br label %return
+
+return: ; preds = %bb1
+ %retval2 = load i32* %retval ; [#uses=1]
+ ret i32 %retval2
+}
+
+; [#uses=1]
+declare i32 @puts(i8*)
+
+; br i1 icmp ne (%16* bitcast (%11* @PyFloat_Type to %16*), %16* @PyBaseObject_Type), label %bb6, label %bb14
+
diff --git a/tests/runner.py b/tests/runner.py
index 549e4691..88a79c73 100644
--- a/tests/runner.py
+++ b/tests/runner.py
@@ -642,6 +642,10 @@ if 'benchmark' not in sys.argv:
'''
self.do_test(src, '*yes*')
+ # Test for issue 39
+ if not LLVM_OPTS:
+ self.do_ll_test(path_from_root('tests', 'issue_39.ll'), '*yes*')
+
def test_if_else(self):
src = '''
#include <stdio.h>
@@ -3071,7 +3075,7 @@ else:
#include<stdlib.h>
int main() {
int N = 1024*1024;
- int M = 600;
+ int M = 190;
int final = 0;
char *buf = (char*)malloc(N);
for (int t = 0; t < M; t++) {
@@ -3085,7 +3089,7 @@ else:
return 1;
}
'''
- self.do_benchmark(src, [], 'final: 800.')
+ self.do_benchmark(src, [], 'final: 720.')
def test_fannkuch(self):
src = open(path_from_root('tests', 'fannkuch.cpp'), 'r').read()