blob: 02889600fb8fff9eb21b2dd93c197f8dcc31e39f [file] [log] [blame]
Evan Cheng2c4f2822009-10-14 01:45:10 +00001; RUN: opt < %s -basicaa -aa-eval -print-all-alias-modref-info -disable-output |& grep {NoAlias:.*%P,.*@Z}
Evan Cheng50a59142009-10-13 22:02:20 +00002; rdar://7282591
3
Evan Cheng2c4f2822009-10-14 01:45:10 +00004@X = common global i32 0
5@Y = common global i32 0
6@Z = common global i32 0
Evan Cheng50a59142009-10-13 22:02:20 +00007
Evan Cheng2c4f2822009-10-14 01:45:10 +00008define void @foo(i32 %cond) nounwind ssp {
Evan Cheng50a59142009-10-13 22:02:20 +00009entry:
Evan Cheng2c4f2822009-10-14 01:45:10 +000010 %"alloca point" = bitcast i32 0 to i32
11 %tmp = icmp ne i32 %cond, 0
12 br i1 %tmp, label %bb, label %bb1
Evan Cheng50a59142009-10-13 22:02:20 +000013
Evan Cheng2c4f2822009-10-14 01:45:10 +000014bb:
15 br label %bb2
Evan Cheng50a59142009-10-13 22:02:20 +000016
Evan Cheng2c4f2822009-10-14 01:45:10 +000017bb1:
18 br label %bb2
Evan Cheng50a59142009-10-13 22:02:20 +000019
Evan Cheng2c4f2822009-10-14 01:45:10 +000020bb2:
21 %P = phi i32* [ @X, %bb ], [ @Y, %bb1 ]
22 %tmp1 = load i32* @Z, align 4
23 store i32 123, i32* %P, align 4
24 %tmp2 = load i32* @Z, align 4
25 br label %return
Evan Cheng50a59142009-10-13 22:02:20 +000026
Evan Cheng2c4f2822009-10-14 01:45:10 +000027return:
Evan Cheng50a59142009-10-13 22:02:20 +000028 ret void
29}