xref: /llvm-project/llvm/test/Analysis/MemorySSA/loop-rotate-inv-template.ll (revision 7f172e82be0fcb4f0ae66f7bb3662d88b479d994)
1; RUN: opt -disable-output -passes=loop-rotate -verify-memoryssa %s
2; REQUIRES: asserts
3
4; Function Attrs: nounwind
5define dso_local void @bar() local_unnamed_addr #0 align 32 {
6entry:
7  br label %looplabel.exit.i
8
9looplabel.exit.i: ; preds = %if.end.i, %entry
10  %0 = phi ptr [ @foo, %entry ], [ undef, %if.end.i ]
11  %call3.i.i = call zeroext i1 %0(ptr nonnull dereferenceable(16) undef, ptr nonnull undef)
12  br i1 %call3.i.i, label %if.end.i, label %label.exit
13
14if.end.i:                                         ; preds = %looplabel.exit.i
15  %tobool.i = icmp eq ptr undef, null
16  br label %looplabel.exit.i
17
18label.exit: ; preds = %looplabel.exit.i
19  ret void
20}
21
22; Function Attrs: readonly
23declare dso_local i1 @foo(ptr, ptr) #1 align 32
24
25attributes #0 = { nounwind }
26attributes #1 = { readonly }
27
28