summaryrefslogtreecommitdiffstats
path: root/llvm/test/Analysis/MemorySSA/unreachable.ll
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/Analysis/MemorySSA/unreachable.ll')
-rw-r--r--llvm/test/Analysis/MemorySSA/unreachable.ll31
1 files changed, 31 insertions, 0 deletions
diff --git a/llvm/test/Analysis/MemorySSA/unreachable.ll b/llvm/test/Analysis/MemorySSA/unreachable.ll
new file mode 100644
index 00000000000..6a936435373
--- /dev/null
+++ b/llvm/test/Analysis/MemorySSA/unreachable.ll
@@ -0,0 +1,31 @@
+; RUN: opt -licm -enable-mssa-loop-dependency -verify-memoryssa %s -S | FileCheck %s
+; REQUIRES: asserts
+; Ensure verification doesn't fail with unreachable blocks.
+
+target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
+target triple = "x86_64-grtev4-linux-gnu"
+
+declare dso_local void @f()
+
+; CHECK-LABEL: @foo
+define dso_local void @foo() {
+entry:
+ br i1 undef, label %if.then, label %if.end
+
+if.then: ; preds = %entry
+ br label %try.cont
+
+if.end: ; preds = %entry
+; 1 = MemoryDef(liveOnEntry)
+ call void @f()
+ br label %try.cont
+
+catch: ; No predecessors!
+; 2 = MemoryDef(liveOnEntry)
+ call void @f()
+ br label %try.cont
+
+try.cont: ; preds = %if.end, %catch, %if.then
+; 3 = MemoryPhi({if.then,liveOnEntry},{if.end,1},{catch,liveOnEntry})
+ ret void
+}
OpenPOWER on IntegriCloud