1; RUN: opt %loadPolly -analyze -polly-scops < %s | FileCheck %s
2
3; Verify that 'tmp' is stored in bb1 and read by bb3, as it is needed as
4; incoming value for the tmp11 PHI node.
5
6; CHECK: Stmt_bb1
7; CHECK-NEXT:   Domain :=
8; CHECK-NEXT:       { Stmt_bb1[] };
9; CHECK-NEXT:   Schedule :=
10; CHECK-NEXT:       { Stmt_bb1[] -> [0] };
11; CHECK-NEXT:   ReadAccess :=	[Reduction Type: NONE] [Scalar: 0]
12; CHECK-NEXT:       { Stmt_bb1[] -> MemRef_global[0] };
13; CHECK-NEXT:   MustWriteAccess :=	[Reduction Type: NONE] [Scalar: 1]
14; CHECK-NEXT:       { Stmt_bb1[] -> MemRef_tmp[] };
15; CHECK-NEXT: Stmt_bb3__TO__bb10
16; CHECK-NEXT:   Domain :=
17; CHECK-NEXT:       { Stmt_bb3__TO__bb10[] };
18; CHECK-NEXT:   Schedule :=
19; CHECK-NEXT:       { Stmt_bb3__TO__bb10[] -> [1] };
20; CHECK-NEXT:   ReadAccess :=	[Reduction Type: NONE] [Scalar: 1]
21; CHECK-NEXT:       { Stmt_bb3__TO__bb10[] -> MemRef_tmp[] };
22; CHECK-NEXT:   MustWriteAccess :=	[Reduction Type: NONE] [Scalar: 1]
23; CHECK-NEXT:       { Stmt_bb3__TO__bb10[] -> MemRef_tmp11[] };
24
25target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
26target triple = "x86_64-unknown-linux-gnu"
27
28%struct.hoge = type { double, double, i8, i8, i8 }
29
30@global = external local_unnamed_addr global %struct.hoge, align 8
31
32define void @widget() local_unnamed_addr {
33bb:
34  br label %bb1
35
36bb1:                                              ; preds = %bb
37  %tmp = load double, double* getelementptr inbounds (%struct.hoge, %struct.hoge* @global, i64 0, i32 0), align 8
38  br i1 false, label %bb3, label %bb2
39
40bb2:                                              ; preds = %bb1
41  br label %bb3
42
43bb3:                                              ; preds = %bb2, %bb1
44  br i1 false, label %bb8, label %bb4
45
46bb4:                                              ; preds = %bb3
47  br label %bb5
48
49bb5:                                              ; preds = %bb4
50  %tmp6 = and i32 undef, 16711680
51  %tmp7 = icmp eq i32 %tmp6, 0
52  br i1 %tmp7, label %bb8, label %bb10
53
54bb8:                                              ; preds = %bb5, %bb3
55  %tmp9 = phi double [ %tmp, %bb3 ], [ undef, %bb5 ]
56  br label %bb10
57
58bb10:                                             ; preds = %bb8, %bb5
59  %tmp11 = phi double [ undef, %bb5 ], [ %tmp9, %bb8 ]
60  ret void
61}
62