diff options
Diffstat (limited to 'llvm/test/Transforms/JumpThreading/lvi-tristate.ll')
-rw-r--r-- | llvm/test/Transforms/JumpThreading/lvi-tristate.ll | 50 |
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 +} |