Index: tests_lit/llvm2ice_tests/simple-cond.ll |
diff --git a/tests_lit/llvm2ice_tests/simple-cond.ll b/tests_lit/llvm2ice_tests/simple-cond.ll |
new file mode 100644 |
index 0000000000000000000000000000000000000000..cc1f583dd08b04e028d860312aa8a9750d5261da |
--- /dev/null |
+++ b/tests_lit/llvm2ice_tests/simple-cond.ll |
@@ -0,0 +1,30 @@ |
+; RUIN: %llvm2ice -verbose inst %s | FileCheck %s |
+; RUIN: %llvm2ice --verbose none %s | FileCheck --check-prefix=ERRORS %s |
+; RUN: %szdiff --llvm2ice=%llvm2ice %s | FileCheck --check-prefix=DUMP %s |
+ |
+define internal i32 @simple_cond(i32 %a, i32 %n) { |
+entry: |
+ %cmp = icmp slt i32 %n, 0 |
+; CHECK: %cmp = icmp slt i32 %n, 0 |
+ br i1 %cmp, label %if.then, label %if.else |
+; CHECK-NEXT: br i1 %cmp, label %if.then, label %if.else |
+ |
+if.then: |
+ %sub = sub i32 1, %n |
+ br label %if.end |
+ |
+if.else: |
+ %gep_array = mul i32 %n, 4 |
+ %gep = add i32 %a, %gep_array |
+ %gep.asptr = inttoptr i32 %gep to i32* |
+ %v0 = load i32* %gep.asptr, align 1 |
+ br label %if.end |
+ |
+if.end: |
+ %result.0 = phi i32 [ %sub, %if.then ], [ %v0, %if.else ] |
+; CHECK: %result.0 = phi i32 [ %sub, %if.then ], [ %v0, %if.else ] |
+ ret i32 %result.0 |
+} |
+ |
+; ERRORS-NOT: ICE translation error |
+; DUMP-NOT: SZ |