diff options
Diffstat (limited to 'llvm/test/Transforms/CodeExtractor/extract-assume.ll')
-rw-r--r-- | llvm/test/Transforms/CodeExtractor/extract-assume.ll | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/llvm/test/Transforms/CodeExtractor/extract-assume.ll b/llvm/test/Transforms/CodeExtractor/extract-assume.ll new file mode 100644 index 00000000000..b79c6a69137 --- /dev/null +++ b/llvm/test/Transforms/CodeExtractor/extract-assume.ll @@ -0,0 +1,29 @@ +; RUN: opt -passes="function(slp-vectorizer),module(hotcoldsplit),function(slp-vectorizer,print<assumptions>)" -disable-output %s 2>&1 | FileCheck %s +; +; Make sure this compiles. Check that function assumption cache is refreshed +; after extracting blocks with assume calls from the function. + +; CHECK: Cached assumptions for function: fun +; CHECK-NEXT: Cached assumptions for function: fun.cold +; CHECK-NEXT: %cmp = icmp uge i32 %x, 64 + +declare void @fun2(i32) #0 + +define void @fun(i32 %x) { +entry: + br i1 undef, label %if.then, label %if.else + +if.then: + ret void + +if.else: + %cmp = icmp uge i32 %x, 64 + call void @llvm.assume(i1 %cmp) + call void @fun2(i32 %x) + unreachable +} + +declare void @llvm.assume(i1) #1 + +attributes #0 = { alwaysinline } +attributes #1 = { nounwind } |