summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/CodeExtractor/extract-assume.ll
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/Transforms/CodeExtractor/extract-assume.ll')
-rw-r--r--llvm/test/Transforms/CodeExtractor/extract-assume.ll29
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 }
OpenPOWER on IntegriCloud