[rtsan] Add fork/execve interceptors (#117198)
[llvm-project.git] / llvm / test / Transforms / LoopSimplify / convergent.ll
blob53e42a2d47e3bc84f96b28fa6718df197a96cd4b
1 ; RUN: opt < %s -S -passes=loop-simplify | FileCheck %s
3 ; Don't separate out nested loops if a convergent call is present
5 ; CHECK-NOT: BB1.outer
6 ; CHECK: BB1.backedge
8 define i32 @test(i1 %loop_cond, i1 %exit_cond, i32 %init) {
9 entry:
10   br label %BB1
12 BB1:
13   %indvar = phi i32 [%indvar, %BB1], [%inc, %BB2], [%init, %entry]
14   call void @f() convergent
15   br i1 %loop_cond, label %BB1, label %BB2
17 BB2:
18   %inc = add i32 %indvar, 1
19   br i1 %exit_cond, label %exit, label %BB1
21 exit:
22   ret i32 %inc
25 declare void @f() convergent