xref: /llvm-project/llvm/test/Analysis/MemorySSA/multiple-locations.ll (revision 8e44f13c6d294e6b4864441b22045b507782540c)
1; RUN: opt -aa-pipeline=basic-aa -passes='print<memoryssa>,verify<memoryssa>' -disable-output < %s 2>&1 | FileCheck %s
2;
3; Checks that basicAA is doing some amount of disambiguation for us
4
5define i32 @foo(i1 %cond) {
6  %a = alloca i32, align 4
7  %b = alloca i32, align 4
8; CHECK: 1 = MemoryDef(liveOnEntry)
9; CHECK-NEXT: store i32 0
10  store i32 0, ptr %a, align 4
11; CHECK: 2 = MemoryDef(1)
12; CHECK-NEXT: store i32 1
13  store i32 1, ptr %b, align 4
14
15; CHECK: MemoryUse(1)
16; CHECK-NEXT: %1 = load i32
17  %1 = load i32, ptr %a, align 4
18; CHECK: MemoryUse(2)
19; CHECK-NEXT: %2 = load i32
20  %2 = load i32, ptr %b, align 4
21
22  %3 = add i32 %1, %2
23  ret i32 %3
24}
25