| ; 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 |