79 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt < %s -passes=loop-deletion -verify-loop-info -S | FileCheck %s3 4target triple = "x86_64-unknown-linux-gnu"5 6@G = external global i327 8define void @func_1() {9; CHECK-LABEL: @func_1(10; CHECK-NEXT: entry:11; CHECK-NEXT: br label [[LBL_2368:%.*]]12; CHECK: lbl_2368:13; CHECK-NEXT: [[CMP289:%.*]] = icmp slt i32 undef, -514; CHECK-NEXT: br i1 [[CMP289]], label [[CLEANUP967:%.*]], label [[UNREACHABLE:%.*]]15; CHECK: cleanup967:16; CHECK-NEXT: switch i32 undef, label [[CLEANUP1169:%.*]] [17; CHECK-NEXT: i32 20, label [[CLEANUP967_LBL_2368_CRIT_EDGE:%.*]]18; CHECK-NEXT: ]19; CHECK: cleanup967.lbl_2368_crit_edge:20; CHECK-NEXT: unreachable21; CHECK: cleanup1169:22; CHECK-NEXT: ret void23; CHECK: unreachable:24; CHECK-NEXT: unreachable25;26entry:27 br label %lbl_236828 29lbl_2368:30 %cmp289 = icmp slt i32 undef, -531 br i1 %cmp289, label %cleanup967, label %unreachable32 33cleanup967:34 switch i32 undef, label %cleanup1169 [35 i32 20, label %lbl_236836 ]37 38cleanup1169:39 ret void40 41unreachable:42 unreachable43}44 45define void @func_2() {46; CHECK-LABEL: @func_2(47; CHECK-NEXT: entry:48; CHECK-NEXT: br label [[LBL_2368:%.*]]49; CHECK: lbl_2368:50; CHECK-NEXT: br i1 false, label [[CLEANUP967:%.*]], label [[UNREACHABLE:%.*]]51; CHECK: cleanup967:52; CHECK-NEXT: switch i32 undef, label [[CLEANUP1169:%.*]] [53; CHECK-NEXT: i32 20, label [[CLEANUP967_LBL_2368_CRIT_EDGE:%.*]]54; CHECK-NEXT: ]55; CHECK: cleanup967.lbl_2368_crit_edge:56; CHECK-NEXT: unreachable57; CHECK: cleanup1169:58; CHECK-NEXT: ret void59; CHECK: unreachable:60; CHECK-NEXT: unreachable61;62entry:63 br label %lbl_236864 65lbl_2368:66 br i1 false, label %cleanup967, label %unreachable67 68cleanup967:69 switch i32 undef, label %cleanup1169 [70 i32 20, label %lbl_236871 ]72 73cleanup1169:74 ret void75 76unreachable:77 unreachable78}79