[clang][modules] Don't prevent translation of FW_Private includes when explicitly...
[llvm-project.git] / llvm / test / Transforms / LoopDeletion / switch.ll
blob033d8b47d70b5fc2195cc9dd229b927111b5b2d0
1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2 ; RUN: opt < %s -passes=loop-deletion -verify-loop-info -S | FileCheck %s
4 target triple = "x86_64-unknown-linux-gnu"
6 @G = external global i32
8 define 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, -5
14 ; 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:    unreachable
21 ; CHECK:       cleanup1169:
22 ; CHECK-NEXT:    ret void
23 ; CHECK:       unreachable:
24 ; CHECK-NEXT:    unreachable
26 entry:
27   br label %lbl_2368
29 lbl_2368:
30   %cmp289 = icmp slt i32 undef, -5
31   br i1 %cmp289, label %cleanup967, label %unreachable
33 cleanup967:
34   switch i32 undef, label %cleanup1169 [
35   i32 20, label %lbl_2368
36   ]
38 cleanup1169:
39   ret void
41 unreachable:
42   unreachable
45 define 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:    unreachable
57 ; CHECK:       cleanup1169:
58 ; CHECK-NEXT:    ret void
59 ; CHECK:       unreachable:
60 ; CHECK-NEXT:    unreachable
62 entry:
63   br label %lbl_2368
65 lbl_2368:
66   br i1 false, label %cleanup967, label %unreachable
68 cleanup967:
69   switch i32 undef, label %cleanup1169 [
70   i32 20, label %lbl_2368
71   ]
73 cleanup1169:
74   ret void
76 unreachable:
77   unreachable