summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/Transforms/Util/MemorySSA/function-clobber.ll27
1 files changed, 27 insertions, 0 deletions
diff --git a/llvm/test/Transforms/Util/MemorySSA/function-clobber.ll b/llvm/test/Transforms/Util/MemorySSA/function-clobber.ll
index 97e231a4ea2..937ab245191 100644
--- a/llvm/test/Transforms/Util/MemorySSA/function-clobber.ll
+++ b/llvm/test/Transforms/Util/MemorySSA/function-clobber.ll
@@ -24,3 +24,30 @@ define i32 @foo() {
%3 = add i32 %2, %1
ret i32 %3
}
+
+declare void @readEverything() readonly
+declare void @clobberEverything()
+
+; CHECK-LABEL: define void @bar
+define void @bar() {
+; CHECK: 1 = MemoryDef(liveOnEntry)
+; CHECK-NEXT: call void @clobberEverything()
+ call void @clobberEverything()
+ br i1 undef, label %if.end, label %if.then
+
+if.then:
+; CHECK: MemoryUse(1)
+; CHECK-NEXT: call void @readEverything()
+ call void @readEverything()
+; CHECK: 2 = MemoryDef(1)
+; CHECK-NEXT: call void @clobberEverything()
+ call void @clobberEverything()
+ br label %if.end
+
+if.end:
+; CHECK: 3 = MemoryPhi({%0,1},{if.then,2})
+; CHECK: MemoryUse(3)
+; CHECK-NEXT: call void @readEverything()
+ call void @readEverything()
+ ret void
+}
OpenPOWER on IntegriCloud