Lines Matching full:label

14 ; CHECK-LABEL: @test1(
16 br label %loop_begin
18 ; CHECK-NEXT: br i1 %{{.*}}, label %entry.split, label %loop_exit.split
21 ; CHECK-NEXT: br i1 %{{.*}}, label %entry.split.split, label %loop_exit
24 ; CHECK-NEXT: br label %loop_begin
27 br i1 %cond1, label %continue, label %loop_exit ; first trivial condition
29 ; CHECK-NEXT: br label %continue
33 br i1 %cond2, label %do_something, label %loop_exit ; second trivial condition
36 ; CHECK-NEXT: br label %do_something
40 br label %loop_begin
43 ; CHECK-NEXT: br label %loop_begin
48 ; CHECK-NEXT: br label %loop_exit.split
56 ; CHECK-LABEL: @test3(
58 br label %loop_begin
60 ; CHECK-NEXT: switch i32 %cond1, label %entry.split [
61 ; CHECK-NEXT: i32 0, label %loop_exit1
65 ; CHECK-NEXT: switch i32 %cond2, label %loop_exit2 [
66 ; CHECK-NEXT: i32 42, label %loop_exit2
67 ; CHECK-NEXT: i32 0, label %entry.split.split
71 ; CHECK-NEXT: br label %loop_begin
74 switch i32 %cond1, label %continue [
75 i32 0, label %loop_exit1
78 ; CHECK-NEXT: br label %continue
82 switch i32 %cond2, label %loop_exit2 [
83 i32 0, label %do_something
84 i32 42, label %loop_exit2
88 ; CHECK-NEXT: br label %do_something
92 br label %loop_begin
95 ; CHECK-NEXT: br label %loop_begin
115 ; CHECK-LABEL: @test4(
117 br label %loop_begin
119 ; CHECK-NEXT: switch i32 %cond2, label %loop_exit2 [
120 ; CHECK-NEXT: i32 13, label %loop_exit1
121 ; CHECK-NEXT: i32 42, label %loop_exit3
122 ; CHECK-NEXT: i32 0, label %entry.split
123 ; CHECK-NEXT: i32 1, label %entry.split
124 ; CHECK-NEXT: i32 2, label %entry.split
128 ; CHECK-NEXT: br label %loop_begin
132 switch i32 %cond2, label %loop_exit2 [
133 i32 0, label %loop0
134 i32 1, label %loop1
135 i32 13, label %loop_exit1
136 i32 2, label %loop2
137 i32 42, label %loop_exit3
141 ; CHECK-NEXT: switch i32 %cond2, label %loop2 [
142 ; CHECK-NEXT: i32 0, label %loop0
143 ; CHECK-NEXT: i32 1, label %loop1
148 br label %loop_latch
151 ; CHECK-NEXT: br label %loop_latch
155 br label %loop_latch
158 ; CHECK-NEXT: br label %loop_latch
162 br label %loop_latch
165 ; CHECK-NEXT: br label %loop_latch
168 br label %loop_begin
170 ; CHECK-NEXT: br label %loop_begin
191 ; CHECK-LABEL: @test5(
193 br label %loop_begin
195 ; CHECK-NEXT: br i1 %{{.*}}, label %entry.split, label %loop_exit
198 ; CHECK-NEXT: br label %loop_begin
201 br i1 %cond1, label %latch, label %loop_exit
203 ; CHECK-NEXT: br label %latch
207 br label %loop_begin
210 ; CHECK-NEXT: br label %loop_begin
228 ; CHECK-LABEL: @test6(
230 br label %loop_begin
232 ; CHECK-NEXT: br i1 %{{.*}}, label %entry.split, label %loop_exit.split
235 ; CHECK-NEXT: br label %loop_begin
238 br i1 %cond1, label %continue, label %loop_exit
240 ; CHECK-NEXT: br label %continue
244 br i1 %cond2, label %latch, label %loop_exit
247 ; CHECK-NEXT: br i1 %cond2, label %latch, label %loop_exit
251 br label %loop_begin
254 ; CHECK-NEXT: br label %loop_begin
264 ; CHECK-NEXT: br label %loop_exit.split
276 ; CHECK-LABEL: @test7(
278 br label %loop_begin
280 ; CHECK-NEXT: switch i32 %cond1, label %entry.split [
281 ; CHECK-NEXT: i32 0, label %loop_exit
282 ; CHECK-NEXT: i32 1, label %loop_exit
286 ; CHECK-NEXT: br label %loop_begin
289 switch i32 %cond1, label %latch [
290 i32 0, label %loop_exit
291 i32 1, label %loop_exit
294 ; CHECK-NEXT: br label %latch
298 br label %loop_begin
301 ; CHECK-NEXT: br label %loop_begin
319 ; CHECK-LABEL: @test8(
321 br label %loop_begin
323 ; CHECK-NEXT: switch i32 %cond1, label %entry.split [
324 ; CHECK-NEXT: i32 0, label %loop_exit.split
325 ; CHECK-NEXT: i32 1, label %loop_exit2
326 ; CHECK-NEXT: i32 2, label %loop_exit.split
330 ; CHECK-NEXT: br label %loop_begin
333 switch i32 %cond1, label %continue [
334 i32 0, label %loop_exit
335 i32 1, label %loop_exit2
336 i32 2, label %loop_exit
339 ; CHECK-NEXT: br label %continue
343 switch i32 %cond2, label %latch [
344 i32 0, label %loop_exit
348 ; CHECK-NEXT: switch i32 %cond2, label %latch [
349 ; CHECK-NEXT: i32 0, label %loop_exit
354 br label %loop_begin
357 ; CHECK-NEXT: br label %loop_begin
367 ; CHECK-NEXT: br label %loop_exit.split
391 ; CHECK-LABEL: @xgets(
393 br label %for.cond.preheader
395 ; CHECK-NEXT: br label %for.cond.preheader
398 br label %for.cond
400 ; CHECK-NEXT: br i1 %cond1, label %for.cond.preheader.split, label %if.end17.thread.loopexit
403 ; CHECK-NEXT: br label %for.cond
406 br i1 %cond1, label %land.lhs.true, label %if.end17.thread.loopexit
408 ; CHECK-NEXT: br label %land.lhs.true
411 br label %if.then20
413 ; CHECK-NEXT: br label %if.then20
417 br i1 %cond2, label %if.then23, label %if.else
420 ; CHECK-NEXT: br i1 %[[COND2]], label %if.then23, label %if.else
423 br label %for.cond
425 ; CHECK-NEXT: br label %for.cond
428 br label %if.end17.thread
430 ; CHECK-NEXT: br label %if.end17.thread
433 br label %cleanup
435 ; CHECK-NEXT: br label %cleanup
438 br label %cleanup
440 ; CHECK-NEXT: br label %cleanup
449 ; CHECK-LABEL: @test_partial_condition_unswitch_and(
451 br label %loop_begin
453 ; CHECK-NEXT: br i1 %cond1, label %entry.split, label %loop_exit.split
457 ; CHECK-NEXT: br i1 [[FROZEN]], label %entry.split.split, label %loop_exit
460 ; CHECK-NEXT: br label %loop_begin
463 br i1 %cond1, label %continue, label %loop_exit
465 ; CHECK-NEXT: br label %continue
471 br i1 %cond_and, label %do_something, label %loop_exit
476 ; CHECK-NEXT: br i1 %[[COND_AND]], label %do_something, label %loop_exit
480 br label %loop_begin
483 ; CHECK-NEXT: br label %loop_begin
488 ; CHECK-NEXT: br label %loop_exit.split
495 ; CHECK-LABEL: @test_partial_condition_unswitch_and_select(
497 br label %loop_begin
499 ; CHECK-NEXT: br i1 %cond1, label %entry.split, label %loop_exit.split
503 ; CHECK-NEXT: br i1 [[FROZEN]], label %entry.split.split, label %loop_exit
506 ; CHECK-NEXT: br label %loop_begin
509 br i1 %cond1, label %continue, label %loop_exit
511 ; CHECK-NEXT: br label %continue
517 br i1 %cond_and, label %do_something, label %loop_exit
522 ; CHECK-NEXT: br i1 %[[COND_AND]], label %do_something, label %loop_exit
526 br label %loop_begin
529 ; CHECK-NEXT: br label %loop_begin
534 ; CHECK-NEXT: br label %loop_exit.split
541 ; CHECK-LABEL: @test_partial_condition_unswitch_or_simple_select(
543 br label %loop_begin
545 ; CHECK-NEXT: br i1 %cond1, label %entry.split, label %loop_exit.split
549 ; CHECK-NEXT: br i1 [[FROZEN]], label %loop_exit.split1, label %entry.split.split
552 ; CHECK-NEXT: br label %loop_begin
555 br i1 %cond1, label %continue, label %loop_exit
557 ; CHECK-NEXT: br label %continue
563 br i1 %cond_or, label %loop_exit, label %do_something
568 ; CHECK-NEXT: br i1 %[[COND_OR]], label %loop_exit, label %do_something
572 br label %loop_begin
575 ; CHECK-NEXT: br label %loop_begin
580 ; CHECK-NEXT: br label %loop_exit.split1
583 ; CHECK-NEXT: br label %loop_exit.split
590 ; CHECK-LABEL: @test_partial_condition_unswitch_or(
592 br label %loop_begin
601 ; CHECK-NEXT: br i1 %[[INV_OR3]], label %loop_exit.split, label %entry.split
604 ; CHECK-NEXT: br label %loop_begin
617 br i1 %cond_or6, label %loop_exit, label %do_something
629 ; CHECK-NEXT: br i1 %[[COND_OR6]], label %loop_exit, label %do_something
633 br label %loop_begin
636 ; CHECK-NEXT: br label %loop_begin
645 ; CHECK-LABEL: @test_partial_condition_unswitch_with_lcssa_phi1(
647 br label %loop_begin
650 ; CHECK-NEXT: br i1 [[FROZEN]], label %entry.split, label %loop_exit.split
653 ; CHECK-NEXT: br label %loop_begin
659 br i1 %cond_and, label %do_something, label %loop_exit
664 ; CHECK-NEXT: br i1 %[[COND_AND]], label %do_something, label %loop_exit
668 br label %loop_begin
671 ; CHECK-NEXT: br label %loop_begin
678 ; CHECK-NEXT: br label %loop_exit.split
686 ; CHECK-LABEL: @test_partial_condition_unswitch_with_lcssa_phi2(
688 br label %loop_begin
691 ; CHECK-NEXT: br i1 [[FROZEN]], label %entry.split, label %loop_exit.split
694 ; CHECK-NEXT: br label %loop_begin
700 br i1 %cond_and, label %do_something, label %loop_exit
705 ; CHECK-NEXT: br i1 %[[COND_AND]], label %do_something, label %loop_exit
709 br i1 %var_cond, label %loop_begin, label %loop_exit
712 ; CHECK-NEXT: br i1 %[[VAR_COND]], label %loop_begin, label %loop_exit
719 ; CHECK-NEXT: br label %loop_exit.split
729 ; CHECK-LABEL: define void @hoist_inner_loop0(
731 br label %a.header
733 ; CHECK-NEXT: br label %a.header
736 br label %b.header
738 ; CHECK-NEXT: br label %b.header
742 br label %c.header
745 ; CHECK-NEXT: br i1 %v1, label %[[B_LATCH_SPLIT:.*]], label %[[B_HEADER_SPLIT:.*]]
748 ; CHECK-NEXT: br label %c.header
751 br i1 %v1, label %b.latch, label %c.latch
753 ; CHECK-NEXT: br label %c.latch
757 br i1 %v2, label %c.header, label %b.latch
760 ; CHECK-NEXT: br i1 %v2, label %c.header, label %b.latch
764 br i1 %v3, label %b.header, label %a.latch
766 ; CHECK-NEXT: br label %[[B_LATCH_SPLIT]]
770 ; CHECK-NEXT: br i1 %v3, label %b.header, label %a.latch
773 br label %a.header
775 ; CHECK-NEXT: br label %a.header
788 ; CHECK-LABEL: define void @hoist_inner_loop1(
790 br label %a.header
792 ; CHECK-NEXT: br label %a.header
796 br label %b.header
799 ; CHECK-NEXT: br label %b.header
804 br label %c.header
808 ; CHECK-NEXT: br i1 %v1, label %b.latch, label %[[B_HEADER_SPLIT:.*]]
812 ; CHECK-NEXT: br label %c.header
815 br i1 %v1, label %b.latch, label %c.latch
817 ; CHECK-NEXT: br label %c.latch
824 br i1 %v2, label %c.header, label %a.exit.c
829 ; CHECK-NEXT: br i1 %v2, label %c.header, label %a.exit.c
833 br i1 %v3, label %b.header, label %a.exit.b
836 ; CHECK-NEXT: br i1 %v3, label %b.header, label %a.exit.b
839 br label %a.latch
841 ; CHECK-NEXT: br label %a.latch
844 br label %a.latch
846 ; CHECK-NEXT: br label %a.latch
849 br label %a.header
851 ; CHECK-NEXT: br label %a.header
864 ; CHECK-LABEL: define void @hoist_inner_loop2(
866 br label %a.header
868 ; CHECK-NEXT: br label %a.header
872 br label %b.header
875 ; CHECK-NEXT: br label %b.header
880 br label %c.header
884 ; CHECK-NEXT: br i1 %v1, label %b.latch, label %[[B_HEADER_SPLIT:.*]]
889 ; CHECK-NEXT: br label %c.header
892 br i1 %v1, label %b.latch, label %c.latch
894 ; CHECK-NEXT: br label %c.latch
901 br i1 %v2, label %c.header, label %exit
906 ; CHECK-NEXT: br i1 %v2, label %c.header, label %exit
910 br i1 %v3, label %b.header, label %a.latch
913 ; CHECK-NEXT: br i1 %v3, label %b.header, label %a.latch
916 br label %a.header
918 ; CHECK-NEXT: br label %a.header
932 ; CHECK-LABEL: define void @hoist_inner_loop3(
934 br label %a.header
936 ; CHECK-NEXT: br label %a.header
940 br label %b.header
943 ; CHECK-NEXT: br label %b.header
948 br label %c.header
952 ; CHECK-NEXT: br i1 %v1, label %b.latch, label %[[B_HEADER_SPLIT:.*]]
957 ; CHECK-NEXT: br label %c.header
960 br i1 %v1, label %b.latch, label %c.body
962 ; CHECK-NEXT: br label %c.body
966 br label %d.header
969 ; CHECK-NEXT: br label %d.header
977 br i1 %v2, label %d.header, label %c.latch
983 ; CHECK-NEXT: br i1 %v2, label %d.header, label %c.latch
987 br i1 %v3, label %c.header, label %exit
990 ; CHECK-NEXT: br i1 %v3, label %c.header, label %exit
994 br i1 %v4, label %b.header, label %a.latch
997 ; CHECK-NEXT: br i1 %v4, label %b.header, label %a.latch
1000 br label %a.header
1002 ; CHECK-NEXT: br label %a.header
1017 ; CHECK-LABEL: define void @hoist_inner_loop4(
1019 br label %a.header
1021 ; CHECK-NEXT: br label %a.header
1024 br label %b.header
1026 ; CHECK-NEXT: br label %b.header
1029 br label %c.header
1031 ; CHECK-NEXT: br label %c.header
1035 br label %d.header
1038 ; CHECK-NEXT: br i1 %v1, label %[[C_HEADER_SPLIT:.*]], label %c.latch
1041 ; CHECK-NEXT: br label %d.header
1044 br i1 %v1, label %d.exiting1, label %c.latch
1046 ; CHECK-NEXT: br label %d.exiting1
1050 br i1 %v2, label %d.exiting2, label %a.latch
1053 ; CHECK-NEXT: br i1 %v2, label %d.exiting2, label %a.latch
1057 br i1 %v3, label %d.exiting3, label %loopexit.d
1060 ; CHECK-NEXT: br i1 %v3, label %d.exiting3, label %loopexit.d
1064 br i1 %v4, label %d.latch, label %b.latch
1067 ; CHECK-NEXT: br i1 %v4, label %d.latch, label %b.latch
1070 br label %d.header
1072 ; CHECK-NEXT: br label %d.header
1076 br i1 %v5, label %c.header, label %loopexit.c
1079 ; CHECK-NEXT: br i1 %v5, label %c.header, label %loopexit.c
1082 br label %b.header
1084 ; CHECK-NEXT: br label %b.header
1087 br label %a.header
1089 ; CHECK-NEXT: br label %a.header
1092 br label %exit
1094 ; CHECK-NEXT: br label %exit
1097 br label %exit
1099 ; CHECK-NEXT: br label %exit
1112 ; CHECK-LABEL: define void @hoist_inner_loop5(
1114 br label %a.header
1116 ; CHECK-NEXT: br label %a.header
1120 br label %b.header
1123 ; CHECK-NEXT: br label %b.header
1127 br label %c.header
1130 ; CHECK-NEXT: br label %c.header
1135 br label %d.header
1139 ; CHECK-NEXT: br i1 %v1, label %c.latch, label %[[C_HEADER_SPLIT:.*]]
1144 ; CHECK-NEXT: br label %d.header
1147 br i1 %v1, label %c.latch, label %d.latch
1149 ; CHECK-NEXT: br label %d.latch
1157 br i1 %v2, label %d.header, label %a.latch
1163 ; CHECK-NEXT: br i1 %v2, label %d.header, label %a.latch
1167 br i1 %v3, label %c.header, label %b.latch
1170 ; CHECK-NEXT: br i1 %v3, label %c.header, label %b.latch
1173 br label %b.header
1175 ; CHECK-NEXT: br label %b.header
1178 br label %a.header
1180 ; CHECK-NEXT: br label %a.header
1194 ; CHECK-LABEL: define void @hoist_inner_loop_switch(
1196 br label %a.header
1198 ; CHECK-NEXT: br label %a.header
1202 br label %b.header
1205 ; CHECK-NEXT: br label %b.header
1210 br label %c.header
1214 ; CHECK-NEXT: switch i32 %v1, label %[[B_HEADER_SPLIT:.*]] [
1215 ; CHECK-NEXT: i32 1, label %b.latch
1216 ; CHECK-NEXT: i32 2, label %b.latch
1217 ; CHECK-NEXT: i32 3, label %b.latch
1223 ; CHECK-NEXT: br label %c.header
1226 switch i32 %v1, label %c.latch [
1227 i32 1, label %b.latch
1228 i32 2, label %b.latch
1229 i32 3, label %b.latch
1232 ; CHECK-NEXT: br label %c.latch
1239 br i1 %v2, label %c.header, label %exit
1244 ; CHECK-NEXT: br i1 %v2, label %c.header, label %exit
1248 br i1 %v3, label %b.header, label %a.latch
1251 ; CHECK-NEXT: br i1 %v3, label %b.header, label %a.latch
1254 br label %a.header
1256 ; CHECK-NEXT: br label %a.header
1265 ; CHECK-LABEL: @test_unswitch_to_common_succ_with_phis(
1267 br label %header
1269 ; CHECK-NEXT: switch i32 %cond, label %loopexit1 [
1270 ; CHECK-NEXT: i32 13, label %loopexit2
1271 ; CHECK-NEXT: i32 0, label %entry.split
1272 ; CHECK-NEXT: i32 1, label %entry.split
1276 ; CHECK-NEXT: br label %header
1280 switch i32 %cond, label %loopexit1 [
1281 i32 0, label %latch
1282 i32 1, label %latch
1283 i32 13, label %loopexit2
1287 ; CHECK-NEXT: br label %latch
1293 br label %header
1297 ; CHECK-NEXT: br label %header
1311 ; CHECK-LABEL: @test_unswitch_to_default_common_succ_with_phis(
1313 br label %header
1315 ; CHECK-NEXT: switch i32 %cond, label %entry.split [
1316 ; CHECK-NEXT: i32 13, label %loopexit
1320 ; CHECK-NEXT: br label %header
1324 switch i32 %cond, label %latch [
1325 i32 0, label %latch
1326 i32 1, label %latch
1327 i32 13, label %loopexit
1331 ; CHECK-NEXT: br label %latch
1337 br label %header
1341 ; CHECK-NEXT: br label %header
1352 ; CHECK-LABEL: @test_unswitch_switch_with_nonempty_unreachable()
1354 br label %loop
1358 br label %for.cond
1361 switch i32 %cleanup.dest.slot.0, label %NonEmptyUnreachableBlock [
1362 i32 0, label %for.cond
1363 i32 1, label %NonEmptyUnreachableBlock
1364 i32 2, label %loop.loopexit
1377 ; CHECK-NEXT: switch i32 %cleanup.dest.slot.0, label %NonEmptyUnreachableBlock [
1378 ; CHECK-NEXT: i32 1, label %NonEmptyUnreachableBlock
1379 ; CHECK-NEXT: i32 0, label %loop.split
1380 ; CHECK-NEXT: i32 2, label %loop.split
1384 ; CHECK-NEXT: br label %for.cond
1387 ; CHECK-NEXT: switch i32 %cleanup.dest.slot.0, label %loop.loopexit [
1388 ; CHECK-NEXT: i32 0, label %for.cond
1401 ; CHECK-LABEL: @test_unswitch_switch_with_nonempty_unreachable2()
1403 br label %loop
1407 br label %for.cond
1410 switch i32 %cleanup.dest.slot.0, label %for.cond [
1411 i32 0, label %for.cond
1412 i32 1, label %NonEmptyUnreachableBlock
1413 i32 2, label %loop.loopexit
1426 ; CHECK-NEXT: switch i32 %cleanup.dest.slot.0, label %loop.split [
1427 ; CHECK-NEXT: i32 1, label %NonEmptyUnreachableBlock
1431 ; CHECK-NEXT: br label %for.cond
1434 ; CHECK-NEXT: switch i32 %cleanup.dest.slot.0, label %for.cond.backedge [
1435 ; CHECK-NEXT: i32 0, label %for.cond.backedge
1436 ; CHECK-NEXT: i32 2, label %loop.loopexit
1440 ; CHECK-NEXT: br label %for.cond
1453 ; CHECK-LABEL: @test_unswitch_switch_with_duplicate_edge()
1455 br label %lbl1
1459 br label %for.cond1
1462 switch i32 %cleanup.dest.slot.0, label %UnifiedUnreachableBlock [
1463 i32 0, label %for.cond1
1464 i32 5, label %UnifiedUnreachableBlock
1465 i32 2, label %lbl1.loopexit
1475 ; CHECK-NEXT: switch i32 %cleanup.dest.slot.0, label %UnifiedUnreachableBlock [
1476 ; CHECK-NEXT: i32 0, label %for.cond1
1477 ; CHECK-NEXT: i32 5, label %UnifiedUnreachableBlock
1478 ; CHECK-NEXT: i32 2, label %lbl1.loopexit