llvm-for-llvmta/test/Transforms/HotColdSplit/stale-assume-in-original-fu...

39 lines
718 B
LLVM

; RUN: opt -S -hotcoldsplit -hotcoldsplit-threshold=-1 < %s 2>&1 | FileCheck %s
; CHECK-LABEL: define {{.*}} @foo(
; CHECK-NOT: llvm.assume
; CHECK: call void @foo.cold.1()
; CHECK: llvm.assume
; CHECK-NEXT: ret void
; CHECK-LABEL: define {{.*}} @foo.cold.1(
; CHECK-NOT: llvm.assume
; CHECK: call void @cold()
; CHECK-NOT: llvm.assume
; CHECK: }
define void @foo(i1 %cond) {
entry:
br i1 %cond, label %cold, label %cont
cold:
call void @llvm.assume(i1 %cond)
call void @cold()
br label %cont
cont:
%cmp = icmp eq i1 %cond, true
br i1 %cmp, label %exit1, label %exit2
exit1:
call void @llvm.assume(i1 %cond)
ret void
exit2:
ret void
}
declare void @llvm.assume(i1)
declare void @cold() cold