brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · 8eca4bb Raw
50 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt < %s -passes=loop-simplify -S | FileCheck %s3 4; Tests loop-simplify does not move the loop metadata, because5; the loopexit block is not the latch of the loop _bb6.6 7define void @func(i1 %p) {8; CHECK-LABEL: @func(9; CHECK-NEXT:  entry:10; CHECK-NEXT:    br label [[LOOP_HEADER:%.*]]11; CHECK:       loop.header.loopexit:12; CHECK-NEXT:    br label [[LOOP_HEADER]], !llvm.loop [[LOOP0:![0-9]+]]13; CHECK:       loop.header:14; CHECK-NEXT:    br i1 [[P:%.*]], label [[BB1:%.*]], label [[EXIT:%.*]]15; CHECK:       bb1:16; CHECK-NEXT:    br i1 [[P]], label [[BB2:%.*]], label [[BB3:%.*]]17; CHECK:       bb2:18; CHECK-NEXT:    br label [[BB3]]19; CHECK:       bb3:20; CHECK-NEXT:    br label [[LOOP_LATCH:%.*]]21; CHECK:       loop.latch:22; CHECK-NEXT:    br i1 [[P]], label [[LOOP_LATCH]], label [[LOOP_HEADER_LOOPEXIT:%.*]], !llvm.loop [[LOOP0]]23; CHECK:       exit:24; CHECK-NEXT:    ret void25;26entry:27  br label %loop.header28 29loop.header:30  br i1 %p, label %bb1, label %exit31 32bb1:33  br i1 %p, label %bb2, label %bb334 35bb2:36  br label %bb337 38bb3:39  br label %loop.latch40 41loop.latch:42  br i1 %p, label %loop.latch, label %loop.header, !llvm.loop !043 44exit:45  ret void46}47 48!0 = distinct !{!0, !1}49!1 = !{!"llvm.loop.mustprogress"}50