;; Check that we don't crash. PR37300.
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt %s -S -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 | FileCheck %s
define void @patatino() {
; CHECK-LABEL: @patatino(
; CHECK-NEXT: bb:
; CHECK-NEXT: ret void
;
bb:
%tmp = icmp eq i32 7, 0
br label %bb3
bb3: ; preds = %bb2, %bb
br label %bb36
bb5: ; preds = %bb4
%tmp7 = icmp ne i32 7, 0
%tmp8 = and i1 true, %tmp7
br i1 %tmp8, label %bb16, label %bb14
bb9: ; preds = %bb33, %bb10
br label %bb18
bb10: ; preds = %bb19, %bb13
%tmp11 = add nsw i32 2, 1
%tmp12 = icmp eq i32 %tmp11, 0
br i1 %tmp12, label %bb17, label %bb9
bb13: ; preds = %bb18, %bb13
br label %bb10
bb14: ; preds = %bb17, %bb6, %bb5
br label %bb35
bb16: ; preds = %bb6
br label %bb31
bb17: ; preds = %bb32, %bb10
br label %bb14
bb18: ; preds = %bb9
br label %bb13
bb21: ; preds = %bb31, %bb23
%tmp22 = phi i32 [ 0, %bb23 ], [ 0, %bb31 ]
br label %bb27
bb23: ; preds = %bb29, %bb28, %bb26
%tmp24 = add nsw i32 %tmp22, 1
%tmp25 = icmp eq i32 %tmp24, 0
br i1 %tmp25, label %bb32, label %bb21
bb27: ; preds = %bb21
br label %bb30
bb28: ; preds = %bb30
br label %bb23
bb30: ; preds = %bb30, %bb27
br label %bb28
bb31: ; preds = %bb16
br label %bb21
bb32: ; preds = %bb23
br label %bb17
bb35: ; preds = %bb14
br label %bb3
bb36: ; preds = %bb3, %bb3
br label %bb37
bb37: ; preds = %bb36
%tmp39 = and i1 %tmp, true
br i1 %tmp39, label %bb40, label %bb67
bb40: ; preds = %bb38
br i1 %tmp, label %bb42, label %bb41
bb41: ; preds = %bb40
br label %bb43
bb42: ; preds = %bb40
br label %bb66
bb43: ; preds = %bb41
br label %bb44
bb44: ; preds = %bb61, %bb43
%tmp45 = phi i32 [ 0, %bb61 ], [ 0, %bb43 ]
%tmp46 = phi i32 [ %tmp62, %bb61 ], [ 0, %bb43 ]
br label %bb51
bb48: ; preds = %bb47
br label %bb49
bb49: ; preds = %bb48
%tmp50 = phi i32 [ 0, %bb48 ]
br label %bb61
bb51: ; preds = %bb44
br label %bb52
bb52: ; preds = %bb55, %bb51
%tmp53 = phi i32 [ %tmp46, %bb51 ], [ 0, %bb55 ]
br label %bb55
bb54: ; preds = %bb52
br label %bb55
bb55: ; preds = %bb54, %bb52
%tmp56 = phi i32 [ 0, %bb54 ], [ 0, %bb52 ]
%tmp57 = shl i32 %tmp56, 16
br i1 false, label %bb52, label %bb58
bb58: ; preds = %bb55
%tmp59 = phi i32 [ 0, %bb55 ]
%tmp60 = phi i32 [ %tmp53, %bb55 ]
br label %bb61
bb61: ; preds = %bb58, %bb49
%tmp62 = phi i32 [ %tmp59, %bb58 ], [ %tmp50, %bb49 ]
%tmp63 = add nsw i32 %tmp45, 1
%tmp64 = icmp eq i32 %tmp63, 0
br i1 %tmp64, label %bb65, label %bb44
bb65: ; preds = %bb61
br label %bb66
bb66: ; preds = %bb65, %bb42
br label %bb67
bb67: ; preds = %bb66, %bb38
ret void
}