; NOTE: Assertions have been autogenerated by utils/update_test_checks.py ; RUN: opt < %s -loop-deletion -verify-loop-info -S | FileCheck %s target triple = "x86_64-unknown-linux-gnu" @G = external global i32 define void @func_1() { ; CHECK-LABEL: @func_1( ; CHECK-NEXT: entry: ; CHECK-NEXT: br label [[LBL_2368:%.*]] ; CHECK: lbl_2368: ; CHECK-NEXT: [[CMP289:%.*]] = icmp slt i32 undef, -5 ; CHECK-NEXT: br i1 [[CMP289]], label [[CLEANUP967:%.*]], label [[UNREACHABLE:%.*]] ; CHECK: cleanup967: ; CHECK-NEXT: switch i32 undef, label [[CLEANUP1169:%.*]] [ ; CHECK-NEXT: i32 20, label [[CLEANUP967_LBL_2368_CRIT_EDGE:%.*]] ; CHECK-NEXT: ] ; CHECK: cleanup967.lbl_2368_crit_edge: ; CHECK-NEXT: unreachable ; CHECK: cleanup1169: ; CHECK-NEXT: ret void ; CHECK: unreachable: ; CHECK-NEXT: unreachable ; entry: br label %lbl_2368 lbl_2368: %cmp289 = icmp slt i32 undef, -5 br i1 %cmp289, label %cleanup967, label %unreachable cleanup967: switch i32 undef, label %cleanup1169 [ i32 20, label %lbl_2368 ] cleanup1169: ret void unreachable: unreachable } define void @func_2() { ; CHECK-LABEL: @func_2( ; CHECK-NEXT: entry: ; CHECK-NEXT: br label [[LBL_2368:%.*]] ; CHECK: lbl_2368: ; CHECK-NEXT: br i1 false, label [[CLEANUP967:%.*]], label [[UNREACHABLE:%.*]] ; CHECK: cleanup967: ; CHECK-NEXT: switch i32 undef, label [[CLEANUP1169:%.*]] [ ; CHECK-NEXT: i32 20, label [[CLEANUP967_LBL_2368_CRIT_EDGE:%.*]] ; CHECK-NEXT: ] ; CHECK: cleanup967.lbl_2368_crit_edge: ; CHECK-NEXT: unreachable ; CHECK: cleanup1169: ; CHECK-NEXT: ret void ; CHECK: unreachable: ; CHECK-NEXT: unreachable ; entry: br label %lbl_2368 lbl_2368: br i1 false, label %cleanup967, label %unreachable cleanup967: switch i32 undef, label %cleanup1169 [ i32 20, label %lbl_2368 ] cleanup1169: ret void unreachable: unreachable }