brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.6 KiB · c7a5fd7 Raw
66 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt -passes=loop-unroll -unroll-verify-domtree -verify-dom-info -S %s | FileCheck %s3 4define void @test() {5; CHECK-LABEL: @test(6; CHECK-NEXT:  entry:7; CHECK-NEXT:    br label [[LOOP_HEADER:%.*]]8; CHECK:       loop.header:9; CHECK-NEXT:    br label [[LOOP_LATCH:%.*]]10; CHECK:       loop.latch:11; CHECK-NEXT:    br i1 true, label [[LOOP_HEADER_1:%.*]], label [[LOOP_EXIT:%.*]]12; CHECK:       loop.header.1:13; CHECK-NEXT:    br i1 true, label [[EXIT_LOOPEXIT:%.*]], label [[LOOP_LATCH_1:%.*]]14; CHECK:       loop.latch.1:15; CHECK-NEXT:    br label [[LOOP_EXIT]]16; CHECK:       loop.exit:17; CHECK-NEXT:    br label [[EXIT:%.*]]18; CHECK:       exit.loopexit:19; CHECK-NEXT:    br label [[EXIT]]20; CHECK:       exit:21; CHECK-NEXT:    ret void22;23entry:24  br label %loop.header25 26loop.header:27  %exitcond = phi i1 [ true, %loop.latch ], [ false, %entry ]28  br i1 %exitcond, label %exit, label %loop.latch29 30loop.latch:31  br i1 true, label %loop.header, label %loop.exit32 33loop.exit:34  br label %exit35 36exit:37  ret void38}39 40define void @exiting_terminator_is_switch() {41; CHECK-LABEL: @exiting_terminator_is_switch(42; CHECK-NEXT:  bb:43; CHECK-NEXT:    br label [[LOOP:%.*]]44; CHECK:       loop:45; CHECK-NEXT:    switch i1 true, label [[LOOP_BACKEDGE:%.*]] [46; CHECK-NEXT:    i1 true, label [[EXIT:%.*]]47; CHECK-NEXT:    i1 false, label [[LOOP_BACKEDGE]]48; CHECK-NEXT:    ]49; CHECK:       loop.backedge:50; CHECK-NEXT:    unreachable51; CHECK:       exit:52; CHECK-NEXT:    ret void53;54bb:55  br label %loop56 57loop:58  switch i1 true, label %loop [59  i1 true, label %exit60  i1 false, label %loop61  ]62 63exit:64  ret void65}66