xref: /llvm-project/llvm/test/Transforms/HotColdSplit/stale-assume-in-original-func.ll (revision 4d211ac84212cbf1ea8b98584df585df781c6557)
1; RUN: opt -S -passes=hotcoldsplit -hotcoldsplit-threshold=-1 < %s 2>&1 | FileCheck %s
2
3; CHECK-LABEL: define {{.*}} @foo(
4; CHECK-NOT: llvm.assume
5; CHECK: call void @foo.cold.1()
6; CHECK: llvm.assume
7; CHECK-NEXT: ret void
8
9; CHECK-LABEL: define {{.*}} @foo.cold.1(
10; CHECK-NOT: llvm.assume
11; CHECK: call void @cold()
12; CHECK-NOT: llvm.assume
13; CHECK: }
14
15define void @foo(i1 %cond) {
16entry:
17  br i1 %cond, label %cold, label %cont
18
19cold:
20  call void @llvm.assume(i1 %cond)
21  call void @cold()
22  br label %cont
23
24cont:
25  %cmp = icmp eq i1 %cond, true
26  br i1 %cmp, label %exit1, label %exit2
27
28exit1:
29  call void @llvm.assume(i1 %cond)
30  ret void
31
32exit2:
33  ret void
34}
35
36declare void @llvm.assume(i1)
37
38declare void @cold() cold
39