diff options
Diffstat (limited to 'llvm/test/Analysis/MemorySSA/unreachable.ll')
-rw-r--r-- | llvm/test/Analysis/MemorySSA/unreachable.ll | 31 |
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 +} |