; RUN: opt < %s -S -licm | FileCheck %s ; Check that we do not hoist convergent functions out of loop ; CHECK: define i32 @test ; CHECK: loop: ; CHECK: call i32 @f define i32 @test(i32* nocapture noalias %x, i32* nocapture %y) { entry: br label %loop loop: %a = call i32 @f() nounwind readnone convergent %exitcond = icmp ne i32 %a, 0 br i1 %exitcond, label %end, label %loop end: ret i32 %a } declare i32 @f() nounwind readnone convergent