xref: /llvm-project/llvm/test/Analysis/MemorySSA/pr43317.ll (revision 1469d82e1cb3edc939d6b93089046edfef0cf36c)
1; RUN: opt -disable-output -passes='loop-mssa(licm),print<memoryssa>' < %s 2>&1 | FileCheck %s
2@v_274 = external dso_local global i64, align 1
3@v_295 = external dso_local global i16, align 1
4@v_335 = external dso_local global i32, align 1
5
6; CHECK-LABEL: @main(i1 %arg)
7; CHECK-NOT: 5 = MemoryPhi(
8; CHECK-NOT: 6 = MemoryPhi(
9; CHECK: 4 = MemoryPhi(
10; CHECK-NOT: 7 = MemoryPhi(
11define dso_local void @main(i1 %arg) {
12entry:
13  store i32 undef, ptr @v_335, align 1
14  br i1 %arg, label %gate, label %exit
15
16nopredentry1:                                     ; No predecessors!
17  br label %preinfiniteloop
18
19nopredentry2:                                     ; No predecessors!
20  br label %gate
21
22gate:                                             ; preds = %nopredentry2, %entry
23  br i1 %arg, label %preinfiniteloop, label %exit
24
25preinfiniteloop:                                  ; preds = %gate, %nopredentry1
26  br label %infiniteloop
27
28infiniteloop:                                     ; preds = %infiniteloop, %preinfiniteloop
29  store i16 undef, ptr @v_295, align 1
30  br label %infiniteloop
31
32exit:                                             ; preds = %gate, %entry
33  store i64 undef, ptr @v_274, align 1
34  ret void
35}
36