summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/JumpThreading/ne-undef.ll
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/Transforms/JumpThreading/ne-undef.ll')
-rw-r--r--llvm/test/Transforms/JumpThreading/ne-undef.ll61
1 files changed, 61 insertions, 0 deletions
diff --git a/llvm/test/Transforms/JumpThreading/ne-undef.ll b/llvm/test/Transforms/JumpThreading/ne-undef.ll
new file mode 100644
index 00000000000..cf3c9db651f
--- /dev/null
+++ b/llvm/test/Transforms/JumpThreading/ne-undef.ll
@@ -0,0 +1,61 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
+; RUN: opt -jump-threading -S %s | FileCheck %s
+
+declare i1 @cond()
+
+define hidden void @hoge(i1 %c1, i32 %x) {
+; CHECK-LABEL: @hoge(
+; CHECK-NEXT: bb:
+; CHECK-NEXT: br label [[BB13:%.*]]
+; CHECK: bb4:
+; CHECK-NEXT: [[TMP3:%.*]] = icmp ne i32 [[TMP7:%.*]], undef
+; CHECK-NEXT: br i1 [[TMP3]], label [[BB5:%.*]], label [[BB13]]
+; CHECK: bb5:
+; CHECK-NEXT: br label [[BB6:%.*]]
+; CHECK: bb6:
+; CHECK-NEXT: [[TMP7]] = phi i32 [ [[TMP7]], [[BB5]] ], [ [[X:%.*]], [[BB8:%.*]] ]
+; CHECK-NEXT: [[C:%.*]] = call i1 @cond()
+; CHECK-NEXT: br i1 [[C]], label [[BB4:%.*]], label [[BB8]]
+; CHECK: bb8:
+; CHECK-NEXT: br label [[BB6]]
+; CHECK: bb13:
+; CHECK-NEXT: ret void
+;
+bb:
+ br i1 false, label %bb1, label %bb13
+
+bb1: ; preds = %bb
+ br label %bb2
+
+bb2: ; preds = %bb12, %bb1
+ %tmp = phi i32 [ 10, %bb1 ], [ %tmp7, %bb12 ]
+ %tmp3 = icmp ne i32 %tmp, undef
+ br label %bb4
+
+bb4: ; preds = %bb2
+ br i1 %tmp3, label %bb5, label %bb13
+
+bb5: ; preds = %bb4
+ br label %bb6
+
+bb6: ; preds = %bb8, %bb5
+ %tmp7 = phi i32 [ %tmp, %bb5 ], [ %x, %bb8 ]
+ %c = call i1 @cond()
+ br i1 %c, label %bb9, label %bb8
+
+bb8: ; preds = %bb6
+ br label %bb6
+
+bb9: ; preds = %bb6
+ br label %bb10
+
+bb10: ; preds = %bb9
+ br label %bb12
+
+bb12: ; preds = %bb10
+ br label %bb2
+
+bb13: ; preds = %bb4
+ ret void
+
+}
OpenPOWER on IntegriCloud