diff options
Diffstat (limited to 'llvm/test/Transforms/Util/flattencfg.ll')
| -rw-r--r-- | llvm/test/Transforms/Util/flattencfg.ll | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/llvm/test/Transforms/Util/flattencfg.ll b/llvm/test/Transforms/Util/flattencfg.ll index 1814d6e1f8e..3b31476df0b 100644 --- a/llvm/test/Transforms/Util/flattencfg.ll +++ b/llvm/test/Transforms/Util/flattencfg.ll @@ -54,3 +54,33 @@ bb0: ; preds = %bb1, %entry br i1 %1, label %bb4, label %bb3 } +; CHECK-LABEL: @test_not_crash3 +; CHECK-NEXT: entry: +; CHECK-NEXT: %a_eq_0 = icmp eq i32 %a, 0 +; CHECK-NEXT: %a_eq_1 = icmp eq i32 %a, 1 +; CHECK-NEXT: [[COND:%[a-z0-9]+]] = or i1 %a_eq_0, %a_eq_1 +; CHECK-NEXT: br i1 [[COND]], label %bb2, label %bb3 +; CHECK: bb2: +; CHECK-NEXT: br label %bb3 +; CHECK: bb3: +; CHECK-NEXT: %check_badref = phi i32 [ 17, %entry ], [ 11, %bb2 ] +; CHECK-NEXT: ret void +define void @test_not_crash3(i32 %a) #0 { +entry: + %a_eq_0 = icmp eq i32 %a, 0 + br i1 %a_eq_0, label %bb0, label %bb1 + +bb0: ; preds = %entry + br label %bb1 + +bb1: ; preds = %bb0, %entry + %a_eq_1 = icmp eq i32 %a, 1 + br i1 %a_eq_1, label %bb2, label %bb3 + +bb2: ; preds = %bb1 + br label %bb3 + +bb3: ; preds = %bb2, %bb1 + %check_badref = phi i32 [ 17, %bb1 ], [ 11, %bb2 ] + ret void +} |

