summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/JumpThreading/lvi-tristate.ll
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/Transforms/JumpThreading/lvi-tristate.ll')
-rw-r--r--llvm/test/Transforms/JumpThreading/lvi-tristate.ll50
1 files changed, 50 insertions, 0 deletions
diff --git a/llvm/test/Transforms/JumpThreading/lvi-tristate.ll b/llvm/test/Transforms/JumpThreading/lvi-tristate.ll
new file mode 100644
index 00000000000..0aa87383347
--- /dev/null
+++ b/llvm/test/Transforms/JumpThreading/lvi-tristate.ll
@@ -0,0 +1,50 @@
+; RUN: opt -jump-threading -simplifycfg -S < %s | FileCheck %s
+; CHECK-NOT: bb6:
+; CHECK-NOT: bb7:
+; CHECK-NOT: bb8:
+; CHECK-NOT: bb11:
+; CHECK-NOT: bb12:
+; CHECK: bb:
+; CHECK: bb2:
+; CHECK: bb4:
+; CHECK: bb10:
+; CHECK: bb13:
+declare void @ham()
+
+define void @hoge() {
+bb:
+ %tmp = and i32 undef, 1073741823
+ %tmp1 = icmp eq i32 %tmp, 2
+ br i1 %tmp1, label %bb12, label %bb2
+
+bb2:
+ %tmp3 = icmp eq i32 %tmp, 3
+ br i1 %tmp3, label %bb13, label %bb4
+
+bb4:
+ %tmp5 = icmp eq i32 %tmp, 5
+ br i1 %tmp5, label %bb6, label %bb7
+
+bb6:
+ tail call void @ham()
+ br label %bb7
+
+bb7:
+ br i1 %tmp3, label %bb13, label %bb8
+
+bb8:
+ %tmp9 = icmp eq i32 %tmp, 4
+ br i1 %tmp9, label %bb13, label %bb10
+
+bb10:
+ br i1 %tmp9, label %bb11, label %bb13
+
+bb11:
+ br label %bb13
+
+bb12:
+ br label %bb2
+
+bb13:
+ ret void
+}
OpenPOWER on IntegriCloud