annotate polly/test/ScopInfo/ranged_parameter_wrap_2.ll @ 150:1d019706d866

LLVM10
author anatofuz
date Thu, 13 Feb 2020 15:10:13 +0900
parents
children c4bab56944e8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 ; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
anatofuz
parents:
diff changeset
2 ;
anatofuz
parents:
diff changeset
3 ; Check that the context is built fast and does not explode due to us
anatofuz
parents:
diff changeset
4 ; combining a large number of non-convex ranges. Instead, after a certain
anatofuz
parents:
diff changeset
5 ; time, we store range information with reduced precision.
anatofuz
parents:
diff changeset
6 ;
anatofuz
parents:
diff changeset
7 ; CHECK: Context:
anatofuz
parents:
diff changeset
8 ; CHECK: [tmp_0, tmp_1, tmp_2, tmp_3, tmp_4, tmp_5, tmp_6, tmp_7, tmp_8,
anatofuz
parents:
diff changeset
9 ; CHECK: tmp_9, tmp_10, tmp_11, tmp_12, tmp_13, tmp_14, tmp_15] -> { :
anatofuz
parents:
diff changeset
10 ; CHECK: -2147483648 <= tmp_0 <= 2147483647 and
anatofuz
parents:
diff changeset
11 ; CHECK: -2147483648 <= tmp_1 <= 2147483647 and
anatofuz
parents:
diff changeset
12 ; CHECK: -2147483648 <= tmp_2 <= 2147483647 and
anatofuz
parents:
diff changeset
13 ; CHECK: -2147483648 <= tmp_3 <= 2147483647 and
anatofuz
parents:
diff changeset
14 ; CHECK: -2147483648 <= tmp_4 <= 2147483647 and
anatofuz
parents:
diff changeset
15 ; CHECK: -2147483648 <= tmp_5 <= 2147483647 and
anatofuz
parents:
diff changeset
16 ; CHECK: -2147483648 <= tmp_6 <= 2147483647 and
anatofuz
parents:
diff changeset
17 ; CHECK: -2147483648 <= tmp_7 <= 2147483647 and
anatofuz
parents:
diff changeset
18 ; CHECK: -2147483648 <= tmp_8 <= 2147483647 and
anatofuz
parents:
diff changeset
19 ; CHECK: -2147483648 <= tmp_9 <= 2147483647 and
anatofuz
parents:
diff changeset
20 ; CHECK: -2147483648 <= tmp_10 <= 2147483647 and
anatofuz
parents:
diff changeset
21 ; CHECK: -2147483648 <= tmp_11 <= 2147483647 and
anatofuz
parents:
diff changeset
22 ; CHECK: -2147483648 <= tmp_12 <= 2147483647 and
anatofuz
parents:
diff changeset
23 ; CHECK: -2147483648 <= tmp_13 <= 2147483647 and
anatofuz
parents:
diff changeset
24 ; CHECK: -2147483648 <= tmp_14 <= 2147483647 and
anatofuz
parents:
diff changeset
25 ; CHECK: -2147483648 <= tmp_15 <= 2147483647 and
anatofuz
parents:
diff changeset
26 ; CHECK: ((tmp_0 >= 256 and tmp_1 >= 256 and tmp_2 >= 256) or
anatofuz
parents:
diff changeset
27 ; CHECK: (tmp_0 >= 256 and tmp_1 >= 256 and tmp_2 < 0) or
anatofuz
parents:
diff changeset
28 ; CHECK: (tmp_0 >= 256 and tmp_1 < 0 and tmp_2 >= 256) or
anatofuz
parents:
diff changeset
29 ; CHECK: (tmp_0 >= 256 and tmp_1 < 0 and tmp_2 < 0) or
anatofuz
parents:
diff changeset
30 ; CHECK: (tmp_0 < 0 and tmp_1 >= 256 and tmp_2 >= 256) or
anatofuz
parents:
diff changeset
31 ; CHECK: (tmp_0 < 0 and tmp_1 >= 256 and tmp_2 < 0) or
anatofuz
parents:
diff changeset
32 ; CHECK: (tmp_0 < 0 and tmp_1 < 0 and tmp_2 >= 256) or
anatofuz
parents:
diff changeset
33 ; CHECK: (tmp_0 < 0 and tmp_1 < 0 and tmp_2 < 0)) }
anatofuz
parents:
diff changeset
34 ;
anatofuz
parents:
diff changeset
35 ; void jd(int *A, int *p /* in [256, 0) */) {
anatofuz
parents:
diff changeset
36 ; for (int i = 0; i < 1024; i++)
anatofuz
parents:
diff changeset
37 ; A[i + *p] = i;
anatofuz
parents:
diff changeset
38 ; }
anatofuz
parents:
diff changeset
39 ;
anatofuz
parents:
diff changeset
40 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
anatofuz
parents:
diff changeset
41
anatofuz
parents:
diff changeset
42 define void @jd(i32* %A,
anatofuz
parents:
diff changeset
43 i32* %p_0,
anatofuz
parents:
diff changeset
44 i32* %p_1,
anatofuz
parents:
diff changeset
45 i32* %p_2,
anatofuz
parents:
diff changeset
46 i32* %p_3,
anatofuz
parents:
diff changeset
47 i32* %p_4,
anatofuz
parents:
diff changeset
48 i32* %p_5,
anatofuz
parents:
diff changeset
49 i32* %p_6,
anatofuz
parents:
diff changeset
50 i32* %p_7,
anatofuz
parents:
diff changeset
51 i32* %p_8,
anatofuz
parents:
diff changeset
52 i32* %p_9,
anatofuz
parents:
diff changeset
53 i32* %p_10,
anatofuz
parents:
diff changeset
54 i32* %p_11,
anatofuz
parents:
diff changeset
55 i32* %p_12,
anatofuz
parents:
diff changeset
56 i32* %p_13,
anatofuz
parents:
diff changeset
57 i32* %p_14,
anatofuz
parents:
diff changeset
58 i32* %p_15
anatofuz
parents:
diff changeset
59 ) {
anatofuz
parents:
diff changeset
60 entry:
anatofuz
parents:
diff changeset
61 %tmp_0 = load i32, i32* %p_0, !range !0
anatofuz
parents:
diff changeset
62 %tmp_1 = load i32, i32* %p_1, !range !0
anatofuz
parents:
diff changeset
63 %tmp_2 = load i32, i32* %p_2, !range !0
anatofuz
parents:
diff changeset
64 %tmp_3 = load i32, i32* %p_3, !range !0
anatofuz
parents:
diff changeset
65 %tmp_4 = load i32, i32* %p_4, !range !0
anatofuz
parents:
diff changeset
66 %tmp_5 = load i32, i32* %p_5, !range !0
anatofuz
parents:
diff changeset
67 %tmp_6 = load i32, i32* %p_6, !range !0
anatofuz
parents:
diff changeset
68 %tmp_7 = load i32, i32* %p_7, !range !0
anatofuz
parents:
diff changeset
69 %tmp_8 = load i32, i32* %p_8, !range !0
anatofuz
parents:
diff changeset
70 %tmp_9 = load i32, i32* %p_9, !range !0
anatofuz
parents:
diff changeset
71 %tmp_10 = load i32, i32* %p_10, !range !0
anatofuz
parents:
diff changeset
72 %tmp_11 = load i32, i32* %p_11, !range !0
anatofuz
parents:
diff changeset
73 %tmp_12 = load i32, i32* %p_12, !range !0
anatofuz
parents:
diff changeset
74 %tmp_13 = load i32, i32* %p_13, !range !0
anatofuz
parents:
diff changeset
75 %tmp_14 = load i32, i32* %p_14, !range !0
anatofuz
parents:
diff changeset
76 %tmp_15 = load i32, i32* %p_15, !range !0
anatofuz
parents:
diff changeset
77 br label %for.cond
anatofuz
parents:
diff changeset
78
anatofuz
parents:
diff changeset
79 for.cond: ; preds = %for.inc, %entry
anatofuz
parents:
diff changeset
80 %i.0 = phi i32 [ 0, %entry ], [ %inc, %for.inc ]
anatofuz
parents:
diff changeset
81 %exitcond = icmp ne i32 %i.0, 1024
anatofuz
parents:
diff changeset
82 br i1 %exitcond, label %for.body_0, label %for.end
anatofuz
parents:
diff changeset
83
anatofuz
parents:
diff changeset
84 for.body_0:
anatofuz
parents:
diff changeset
85 %add_0 = add i32 %i.0, %tmp_0
anatofuz
parents:
diff changeset
86 %idxprom_0 = sext i32 %add_0 to i64
anatofuz
parents:
diff changeset
87 %arrayidx_0 = getelementptr inbounds i32, i32* %A, i64 %idxprom_0
anatofuz
parents:
diff changeset
88 store i32 %i.0, i32* %arrayidx_0, align 4
anatofuz
parents:
diff changeset
89 br label %for.body_1
anatofuz
parents:
diff changeset
90
anatofuz
parents:
diff changeset
91 for.body_1:
anatofuz
parents:
diff changeset
92 %add_1 = add i32 %i.0, %tmp_1
anatofuz
parents:
diff changeset
93 %idxprom_1 = sext i32 %add_1 to i64
anatofuz
parents:
diff changeset
94 %arrayidx_1 = getelementptr inbounds i32, i32* %A, i64 %idxprom_1
anatofuz
parents:
diff changeset
95 store i32 %i.0, i32* %arrayidx_1, align 4
anatofuz
parents:
diff changeset
96 br label %for.body_2
anatofuz
parents:
diff changeset
97
anatofuz
parents:
diff changeset
98 for.body_2:
anatofuz
parents:
diff changeset
99 %add_2 = add i32 %i.0, %tmp_2
anatofuz
parents:
diff changeset
100 %idxprom_2 = sext i32 %add_2 to i64
anatofuz
parents:
diff changeset
101 %arrayidx_2 = getelementptr inbounds i32, i32* %A, i64 %idxprom_2
anatofuz
parents:
diff changeset
102 store i32 %i.0, i32* %arrayidx_2, align 4
anatofuz
parents:
diff changeset
103 br label %for.body_3
anatofuz
parents:
diff changeset
104
anatofuz
parents:
diff changeset
105 for.body_3:
anatofuz
parents:
diff changeset
106 %add_3 = add i32 %i.0, %tmp_3
anatofuz
parents:
diff changeset
107 %idxprom_3 = sext i32 %add_3 to i64
anatofuz
parents:
diff changeset
108 %arrayidx_3 = getelementptr inbounds i32, i32* %A, i64 %idxprom_3
anatofuz
parents:
diff changeset
109 store i32 %i.0, i32* %arrayidx_3, align 4
anatofuz
parents:
diff changeset
110 br label %for.body_4
anatofuz
parents:
diff changeset
111
anatofuz
parents:
diff changeset
112 for.body_4:
anatofuz
parents:
diff changeset
113 %add_4 = add i32 %i.0, %tmp_4
anatofuz
parents:
diff changeset
114 %idxprom_4 = sext i32 %add_4 to i64
anatofuz
parents:
diff changeset
115 %arrayidx_4 = getelementptr inbounds i32, i32* %A, i64 %idxprom_4
anatofuz
parents:
diff changeset
116 store i32 %i.0, i32* %arrayidx_4, align 4
anatofuz
parents:
diff changeset
117 br label %for.body_5
anatofuz
parents:
diff changeset
118
anatofuz
parents:
diff changeset
119 for.body_5:
anatofuz
parents:
diff changeset
120 %add_5 = add i32 %i.0, %tmp_5
anatofuz
parents:
diff changeset
121 %idxprom_5 = sext i32 %add_5 to i64
anatofuz
parents:
diff changeset
122 %arrayidx_5 = getelementptr inbounds i32, i32* %A, i64 %idxprom_5
anatofuz
parents:
diff changeset
123 store i32 %i.0, i32* %arrayidx_5, align 4
anatofuz
parents:
diff changeset
124 br label %for.body_6
anatofuz
parents:
diff changeset
125
anatofuz
parents:
diff changeset
126 for.body_6:
anatofuz
parents:
diff changeset
127 %add_6 = add i32 %i.0, %tmp_6
anatofuz
parents:
diff changeset
128 %idxprom_6 = sext i32 %add_6 to i64
anatofuz
parents:
diff changeset
129 %arrayidx_6 = getelementptr inbounds i32, i32* %A, i64 %idxprom_6
anatofuz
parents:
diff changeset
130 store i32 %i.0, i32* %arrayidx_6, align 4
anatofuz
parents:
diff changeset
131 br label %for.body_7
anatofuz
parents:
diff changeset
132
anatofuz
parents:
diff changeset
133 for.body_7:
anatofuz
parents:
diff changeset
134 %add_7 = add i32 %i.0, %tmp_7
anatofuz
parents:
diff changeset
135 %idxprom_7 = sext i32 %add_7 to i64
anatofuz
parents:
diff changeset
136 %arrayidx_7 = getelementptr inbounds i32, i32* %A, i64 %idxprom_7
anatofuz
parents:
diff changeset
137 store i32 %i.0, i32* %arrayidx_7, align 4
anatofuz
parents:
diff changeset
138 br label %for.body_8
anatofuz
parents:
diff changeset
139
anatofuz
parents:
diff changeset
140 for.body_8:
anatofuz
parents:
diff changeset
141 %add_8 = add i32 %i.0, %tmp_8
anatofuz
parents:
diff changeset
142 %idxprom_8 = sext i32 %add_8 to i64
anatofuz
parents:
diff changeset
143 %arrayidx_8 = getelementptr inbounds i32, i32* %A, i64 %idxprom_8
anatofuz
parents:
diff changeset
144 store i32 %i.0, i32* %arrayidx_8, align 4
anatofuz
parents:
diff changeset
145 br label %for.body_9
anatofuz
parents:
diff changeset
146
anatofuz
parents:
diff changeset
147 for.body_9:
anatofuz
parents:
diff changeset
148 %add_9 = add i32 %i.0, %tmp_9
anatofuz
parents:
diff changeset
149 %idxprom_9 = sext i32 %add_9 to i64
anatofuz
parents:
diff changeset
150 %arrayidx_9 = getelementptr inbounds i32, i32* %A, i64 %idxprom_9
anatofuz
parents:
diff changeset
151 store i32 %i.0, i32* %arrayidx_9, align 4
anatofuz
parents:
diff changeset
152 br label %for.body_10
anatofuz
parents:
diff changeset
153
anatofuz
parents:
diff changeset
154 for.body_10:
anatofuz
parents:
diff changeset
155 %add_10 = add i32 %i.0, %tmp_10
anatofuz
parents:
diff changeset
156 %idxprom_10 = sext i32 %add_10 to i64
anatofuz
parents:
diff changeset
157 %arrayidx_10 = getelementptr inbounds i32, i32* %A, i64 %idxprom_10
anatofuz
parents:
diff changeset
158 store i32 %i.0, i32* %arrayidx_10, align 4
anatofuz
parents:
diff changeset
159 br label %for.body_11
anatofuz
parents:
diff changeset
160
anatofuz
parents:
diff changeset
161 for.body_11:
anatofuz
parents:
diff changeset
162 %add_11 = add i32 %i.0, %tmp_11
anatofuz
parents:
diff changeset
163 %idxprom_11 = sext i32 %add_11 to i64
anatofuz
parents:
diff changeset
164 %arrayidx_11 = getelementptr inbounds i32, i32* %A, i64 %idxprom_11
anatofuz
parents:
diff changeset
165 store i32 %i.0, i32* %arrayidx_11, align 4
anatofuz
parents:
diff changeset
166 br label %for.body_12
anatofuz
parents:
diff changeset
167
anatofuz
parents:
diff changeset
168 for.body_12:
anatofuz
parents:
diff changeset
169 %add_12 = add i32 %i.0, %tmp_12
anatofuz
parents:
diff changeset
170 %idxprom_12 = sext i32 %add_12 to i64
anatofuz
parents:
diff changeset
171 %arrayidx_12 = getelementptr inbounds i32, i32* %A, i64 %idxprom_12
anatofuz
parents:
diff changeset
172 store i32 %i.0, i32* %arrayidx_12, align 4
anatofuz
parents:
diff changeset
173 br label %for.body_13
anatofuz
parents:
diff changeset
174
anatofuz
parents:
diff changeset
175 for.body_13:
anatofuz
parents:
diff changeset
176 %add_13 = add i32 %i.0, %tmp_13
anatofuz
parents:
diff changeset
177 %idxprom_13 = sext i32 %add_13 to i64
anatofuz
parents:
diff changeset
178 %arrayidx_13 = getelementptr inbounds i32, i32* %A, i64 %idxprom_13
anatofuz
parents:
diff changeset
179 store i32 %i.0, i32* %arrayidx_13, align 4
anatofuz
parents:
diff changeset
180 br label %for.body_14
anatofuz
parents:
diff changeset
181
anatofuz
parents:
diff changeset
182 for.body_14:
anatofuz
parents:
diff changeset
183 %add_14 = add i32 %i.0, %tmp_14
anatofuz
parents:
diff changeset
184 %idxprom_14 = sext i32 %add_14 to i64
anatofuz
parents:
diff changeset
185 %arrayidx_14 = getelementptr inbounds i32, i32* %A, i64 %idxprom_14
anatofuz
parents:
diff changeset
186 store i32 %i.0, i32* %arrayidx_14, align 4
anatofuz
parents:
diff changeset
187 br label %for.body_15
anatofuz
parents:
diff changeset
188
anatofuz
parents:
diff changeset
189 for.body_15:
anatofuz
parents:
diff changeset
190 %add_15 = add i32 %i.0, %tmp_15
anatofuz
parents:
diff changeset
191 %idxprom_15 = sext i32 %add_15 to i64
anatofuz
parents:
diff changeset
192 %arrayidx_15 = getelementptr inbounds i32, i32* %A, i64 %idxprom_15
anatofuz
parents:
diff changeset
193 store i32 %i.0, i32* %arrayidx_15, align 4
anatofuz
parents:
diff changeset
194 br label %for.body_end
anatofuz
parents:
diff changeset
195
anatofuz
parents:
diff changeset
196 for.body_end:
anatofuz
parents:
diff changeset
197 br label %for.inc
anatofuz
parents:
diff changeset
198
anatofuz
parents:
diff changeset
199 for.inc:
anatofuz
parents:
diff changeset
200 %inc = add nsw i32 %i.0, 1
anatofuz
parents:
diff changeset
201 br label %for.cond
anatofuz
parents:
diff changeset
202
anatofuz
parents:
diff changeset
203 for.end: ; preds = %for.cond
anatofuz
parents:
diff changeset
204 ret void
anatofuz
parents:
diff changeset
205 }
anatofuz
parents:
diff changeset
206
anatofuz
parents:
diff changeset
207 !0 = !{ i32 256, i32 0 }