39 lines
718 B
LLVM
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
|