1; This testcase ensures that CFL AA handles trivial cases with storing
2; pointers in pointers appropriately.
3; Derived from:
4; char a, b;
5; char *m = &a, *n = &b;
6; *m;
7; *n;
8
9; RUN: opt < %s -cfl-aa -aa-eval -print-may-aliases -disable-output 2>&1 | FileCheck %s
10
11%T = type { i32, [10 x i8] }
12
13; CHECK:     Function: test
14
15define void @test() {
16; CHECK: 15 Total Alias Queries Performed
17; CHECK: 13 no alias responses
18  %M = alloca %T*, align 8
19  %N = alloca %T*, align 8
20  %A = alloca %T, align 8
21  %B = alloca %T, align 8
22
23  store %T* %A, %T** %M
24  store %T* %B, %T** %N
25
26  %AP = load %T*, %T** %M ; PartialAlias with %A
27  %BP = load %T*, %T** %N ; PartialAlias with %B
28
29  ret void
30}
31