blob: a1b8d2ce53354d3d34c7e24e5feded9d9a46f1da [file] [log] [blame]
Bill Wendlingd5cc8b82012-04-24 09:15:38 +00001; RUN: opt < %s -basicaa -aa-eval -print-all-alias-modref-info -disable-output |& FileCheck %s
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
Bill Wendlingd5cc8b82012-04-24 09:15:38 +00008; CHECK: NoAlias: i32* %P, i32* @Z
9
Dan Gohman32d1fe52010-11-11 21:08:46 +000010define void @foo(i32 %cond) nounwind {
Evan Cheng50a59142009-10-13 22:02:20 +000011entry:
Evan Cheng2c4f2822009-10-14 01:45:10 +000012 %"alloca point" = bitcast i32 0 to i32
13 %tmp = icmp ne i32 %cond, 0
14 br i1 %tmp, label %bb, label %bb1
Evan Cheng50a59142009-10-13 22:02:20 +000015
Evan Cheng2c4f2822009-10-14 01:45:10 +000016bb:
17 br label %bb2
Evan Cheng50a59142009-10-13 22:02:20 +000018
Evan Cheng2c4f2822009-10-14 01:45:10 +000019bb1:
20 br label %bb2
Evan Cheng50a59142009-10-13 22:02:20 +000021
Evan Cheng2c4f2822009-10-14 01:45:10 +000022bb2:
23 %P = phi i32* [ @X, %bb ], [ @Y, %bb1 ]
24 %tmp1 = load i32* @Z, align 4
25 store i32 123, i32* %P, align 4
26 %tmp2 = load i32* @Z, align 4
27 br label %return
Evan Cheng50a59142009-10-13 22:02:20 +000028
Evan Cheng2c4f2822009-10-14 01:45:10 +000029return:
Evan Cheng50a59142009-10-13 22:02:20 +000030 ret void
31}