[JSON][PM] Port json import/export over to new pm
[polly-mirror.git] / test / ScopInfo / process_added_dimensions.ll
blob48a8bdf4c3a998a5baf7102ba0d775e6d6c1f2c1
1 ; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
3 ; CHECK:      Context:
4 ; CHECK-NEXT: {  :  }
5 ; CHECK:      Assumed Context:
6 ; CHECK-NEXT: {  :  }
7 ; CHECK:      Invalid Context:
8 ; CHECK-NEXT: {  : 1 = 0 }
9 ; CHECK:      Statements {
10 ; CHECK-NEXT:     Stmt_for_cond40_preheader_4
11 ; CHECK-NEXT:         Domain :=
12 ; CHECK-NEXT:             { Stmt_for_cond40_preheader_4[i0] : 0 <= i0 <= 1 };
13 ; CHECK-NEXT:         Schedule :=
14 ; CHECK-NEXT:             { Stmt_for_cond40_preheader_4[i0] -> [i0, 0] };
15 ; CHECK-NEXT:         MustWriteAccess :=    [Reduction Type: NONE] [Scalar: 0]
16 ; CHECK-NEXT:             { Stmt_for_cond40_preheader_4[i0] -> MemRef_call[5, 5, 0] };
17 ; CHECK-NEXT:     Stmt_for_cond40_preheader_5
18 ; CHECK-NEXT:         Domain :=
19 ; CHECK-NEXT:             { Stmt_for_cond40_preheader_5[i0] : 0 <= i0 <= 1 };
20 ; CHECK-NEXT:         Schedule :=
21 ; CHECK-NEXT:             { Stmt_for_cond40_preheader_5[i0] -> [i0, 1] };
22 ; CHECK-NEXT:         ReadAccess :=    [Reduction Type: NONE] [Scalar: 0]
23 ; CHECK-NEXT:             { Stmt_for_cond40_preheader_5[i0] -> MemRef_call[5, 5, 0] };
24 ; CHECK-NEXT:         MustWriteAccess :=    [Reduction Type: NONE] [Scalar: 1]
25 ; CHECK-NEXT:             { Stmt_for_cond40_preheader_5[i0] -> MemRef__pre160[] };
26 ; CHECK-NEXT: }
28 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
29 target triple = "x86_64-unknown-linux-gnu"
31 declare noalias i8* @malloc()
33 define i32 @main() {
34 entry:
35   %call = tail call noalias i8* @malloc()
36   %0 = bitcast i8* %call to [6 x [6 x [64 x i32]]]*
37   %arrayidx51.5.phi.trans.insert = getelementptr inbounds i8, i8* %call, i64 8960
38   %1 = bitcast i8* %arrayidx51.5.phi.trans.insert to i32*
39   br label %for.cond40.preheader.4
41 for.end76:                                        ; preds = %for.inc71.5
42   ret i32 %.pre160
44 for.cond40.preheader.4:                           ; preds = %for.inc71.5, %entry
45   %t.0131 = phi i32 [ 0, %entry ], [ %inc75, %for.inc71.5 ]
46   %indvars.iv.next135 = add nuw nsw i64 0, 1
47   %2 = trunc i64 %indvars.iv.next135 to i32
48   %indvars.iv.next = add nuw nsw i64 0, 1
49   %exitcond = icmp eq i64 %indvars.iv.next, 64
50   %exitcond137 = icmp eq i32 %2, 6
51   %indvars.iv.next135.1 = add nuw nsw i64 1, 1
52   %indvars.iv.next.1 = add nuw nsw i64 0, 1
53   %exitcond.1 = icmp eq i64 %indvars.iv.next.1, 64
54   %lftr.wideiv.1 = trunc i64 %indvars.iv.next135.1 to i32
55   %exitcond137.1 = icmp eq i32 %lftr.wideiv.1, 6
56   %indvars.iv.next135.2 = add nuw nsw i64 2, 1
57   %indvars.iv.next.2 = add nuw nsw i64 0, 1
58   %exitcond.2 = icmp eq i64 %indvars.iv.next.2, 64
59   %lftr.wideiv.2 = trunc i64 %indvars.iv.next135.2 to i32
60   %exitcond137.2 = icmp eq i32 %lftr.wideiv.2, 6
61   %indvars.iv.next135.3 = add nuw nsw i64 3, 1
62   %indvars.iv.next.3 = add nuw nsw i64 0, 1
63   %exitcond.3 = icmp eq i64 %indvars.iv.next.3, 64
64   %lftr.wideiv.3 = trunc i64 %indvars.iv.next135.3 to i32
65   %exitcond137.3 = icmp eq i32 %lftr.wideiv.3, 6
66   %indvars.iv.next135.4 = add nuw nsw i64 4, 1
67   %indvars.iv.next.4 = add nuw nsw i64 0, 1
68   %exitcond.4 = icmp eq i64 %indvars.iv.next.4, 64
69   %lftr.wideiv.4 = trunc i64 %indvars.iv.next135.4 to i32
70   %exitcond137.4 = icmp eq i32 %lftr.wideiv.4, 6
71   %arrayidx23.5 = getelementptr inbounds [6 x [6 x [64 x i32]]], [6 x [6 x [64 x i32]]]* %0, i64 0, i64 5, i64 5, i64 0
72   store i32 36, i32* %arrayidx23.5, align 4
73   %indvars.iv.next.5 = add nuw nsw i64 0, 1
74   %exitcond.5 = icmp eq i64 %indvars.iv.next.5, 64
75   %indvars.iv.next143 = add nuw nsw i64 1, 1
76   %exitcond145 = icmp eq i64 %indvars.iv.next143, 64
77   %indvars.iv.next149 = add nuw nsw i64 0, 1
78   %lftr.wideiv150 = trunc i64 %indvars.iv.next149 to i32
79   %exitcond151 = icmp eq i32 %lftr.wideiv150, 6
80   %indvars.iv.next143.1 = add nuw nsw i64 1, 1
81   %exitcond145.1 = icmp eq i64 %indvars.iv.next143.1, 64
82   %indvars.iv.next149.1 = add nuw nsw i64 1, 1
83   %lftr.wideiv150.1 = trunc i64 %indvars.iv.next149.1 to i32
84   %exitcond151.1 = icmp eq i32 %lftr.wideiv150.1, 6
85   %indvars.iv.next143.2 = add nuw nsw i64 1, 1
86   %exitcond145.2 = icmp eq i64 %indvars.iv.next143.2, 64
87   %indvars.iv.next149.2 = add nuw nsw i64 2, 1
88   %lftr.wideiv150.2 = trunc i64 %indvars.iv.next149.2 to i32
89   %exitcond151.2 = icmp eq i32 %lftr.wideiv150.2, 6
90   %indvars.iv.next143.3 = add nuw nsw i64 1, 1
91   %exitcond145.3 = icmp eq i64 %indvars.iv.next143.3, 64
92   %indvars.iv.next149.3 = add nuw nsw i64 3, 1
93   %lftr.wideiv150.3 = trunc i64 %indvars.iv.next149.3 to i32
94   %exitcond151.3 = icmp eq i32 %lftr.wideiv150.3, 6
95   br label %for.body44.4
97 for.body44.4:                                     ; preds = %for.body44.4, %for.cond40.preheader.4
98   %indvars.iv142.4 = phi i64 [ 1, %for.cond40.preheader.4 ], [ %indvars.iv.next143.4, %for.body44.4 ]
99   %indvars.iv.next143.4 = add nuw nsw i64 %indvars.iv142.4, 1
100   %exitcond145.4 = icmp eq i64 %indvars.iv.next143.4, 64
101   br i1 %exitcond145.4, label %for.cond40.preheader.5, label %for.body44.4
103 for.cond40.preheader.5:                           ; preds = %for.body44.4
104   %indvars.iv.next149.4 = add nuw nsw i64 4, 1
105   %lftr.wideiv150.4 = trunc i64 %indvars.iv.next149.4 to i32
106   %exitcond151.4 = icmp eq i32 %lftr.wideiv150.4, 6
107   %.pre160 = load i32, i32* %1, align 4
108   br label %for.body44.5
110 for.body44.5:                                     ; preds = %for.body44.5, %for.cond40.preheader.5
111   %indvars.iv142.5 = phi i64 [ 1, %for.cond40.preheader.5 ], [ %indvars.iv.next143.5, %for.body44.5 ]
112   %indvars.iv.next143.5 = add nuw nsw i64 %indvars.iv142.5, 1
113   %exitcond145.5 = icmp eq i64 %indvars.iv.next143.5, 64
114   br i1 %exitcond145.5, label %for.inc71.5, label %for.body44.5
116 for.inc71.5:                                      ; preds = %for.body44.5
117   %inc75 = add nuw nsw i32 %t.0131, 1
118   %exitcond155 = icmp eq i32 %inc75, 2
119   br i1 %exitcond155, label %for.end76, label %for.cond40.preheader.4