Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / Transforms / LICM / convergent.ll
blobc617ae26dd7606485e617fa5d0e3216c95f5f652
1 ; RUN: opt < %s -S -passes=licm | FileCheck %s
3 ; Check that we do not hoist convergent functions out of loop
4 ; CHECK: define i32 @test
5 ; CHECK: loop:
6 ; CHECK: call i32 @f
8 define i32 @test(ptr nocapture noalias %x, ptr nocapture %y) {
9 entry:
10   br label %loop
12 loop:
13   %a = call i32 @f() nounwind readnone convergent
14   %exitcond = icmp ne i32 %a, 0
15   br i1 %exitcond, label %end, label %loop
17 end:
18   ret i32 %a
21 declare i32 @f() nounwind readnone convergent