brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · cf6d34d Raw
40 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 22; RUN: opt -S -passes=loop-deletion < %s | FileCheck %s3 4; Do not try to delete a loop that exits to an EH pad, as we can't directly5; branch to it. We would need a different approach here that still retains6; the invoke.7 8define i32 @test() mustprogress personality ptr poison {9; CHECK-LABEL: define i32 @test10; CHECK-SAME: () #[[ATTR0:[0-9]+]] personality ptr poison {11; CHECK-NEXT:  entry:12; CHECK-NEXT:    br label [[LOOP:%.*]]13; CHECK:       loop:14; CHECK-NEXT:    invoke void @llvm.donothing()15; CHECK-NEXT:    to label [[LOOP_LATCH:%.*]] unwind label [[LPAD:%.*]]16; CHECK:       lpad:17; CHECK-NEXT:    [[LP:%.*]] = landingpad { ptr, i32 }18; CHECK-NEXT:    cleanup19; CHECK-NEXT:    resume { ptr, i32 } [[LP]]20; CHECK:       loop.latch:21; CHECK-NEXT:    br label [[LOOP]]22;23entry:24  br label %loop25 26loop:27  invoke void @llvm.donothing()28  to label %loop.latch unwind label %lpad29 30lpad:31  %lp = landingpad { ptr, i32 }32  cleanup33  resume { ptr, i32 } %lp34 35loop.latch:36  br label %loop37}38 39declare void @llvm.donothing()40