Revert "[InstCombine] Support gep nuw in icmp folds" (#118698)
[llvm-project.git] / polly / test / Simplify / scalability2.ll
blobadcf9eef348a96710e513499238e0d30bd495538
1 ; RUN: opt %loadNPMPolly -polly-ignore-inbounds '-passes=print<polly-simplify>' -disable-output < %s | FileCheck %s -match-full-lines
3 ; Test scalability.
5 define void @func(i32 %n, ptr noalias nonnull %A,
6 i32 %p0, i32 %p1, i32 %p2, i32 %p3, i32 %p4, i32 %p5, i32 %p6, i32 %p7, i32 %p8, i32 %p9,
7 i32 %p10, i32 %p11, i32 %p12, i32 %p13, i32 %p14, i32 %p15, i32 %p16, i32 %p17, i32 %p18, i32 %p19,
8 i32 %p20, i32 %p21, i32 %p22, i32 %p23, i32 %p24, i32 %p25, i32 %p26, i32 %p27, i32 %p28, i32 %p29,
9 i32 %p30, i32 %p31, i32 %p32, i32 %p33, i32 %p34, i32 %p35, i32 %p36, i32 %p37, i32 %p38, i32 %p39,
10 i32 %p40, i32 %p41, i32 %p42, i32 %p43, i32 %p44, i32 %p45, i32 %p46, i32 %p47, i32 %p48, i32 %p49,
11 i32 %p50, i32 %p51, i32 %p52, i32 %p53, i32 %p54, i32 %p55, i32 %p56, i32 %p57, i32 %p58, i32 %p59) {
12 entry:
13   br label %for
15 for:
16   %j = phi i32 [0, %entry], [%j.inc, %inc]
17   %j.cmp = icmp slt i32 %j, %n
18   br i1 %j.cmp, label %body, label %exit
21     body:
22       %A0 = getelementptr inbounds double, ptr %A, i32 %p0
23       %A1 = getelementptr inbounds double, ptr %A, i32 %p1
24       %A2 = getelementptr inbounds double, ptr %A, i32 %p2
25       %A3 = getelementptr inbounds double, ptr %A, i32 %p3
26       %A4 = getelementptr inbounds double, ptr %A, i32 %p4
27       %A5 = getelementptr inbounds double, ptr %A, i32 %p5
28       %A6 = getelementptr inbounds double, ptr %A, i32 %p6
29       %A7 = getelementptr inbounds double, ptr %A, i32 %p7
30       %A8 = getelementptr inbounds double, ptr %A, i32 %p8
31       %A9 = getelementptr inbounds double, ptr %A, i32 %p9
32       %A10 = getelementptr inbounds double, ptr %A, i32 %p10
33       %A11 = getelementptr inbounds double, ptr %A, i32 %p11
34       %A12 = getelementptr inbounds double, ptr %A, i32 %p12
35       %A13 = getelementptr inbounds double, ptr %A, i32 %p13
36       %A14 = getelementptr inbounds double, ptr %A, i32 %p14
37       %A15 = getelementptr inbounds double, ptr %A, i32 %p15
38       %A16 = getelementptr inbounds double, ptr %A, i32 %p16
39       %A17 = getelementptr inbounds double, ptr %A, i32 %p17
40       %A18 = getelementptr inbounds double, ptr %A, i32 %p18
41       %A19 = getelementptr inbounds double, ptr %A, i32 %p19
42       %A20 = getelementptr inbounds double, ptr %A, i32 %p20
43       %A21 = getelementptr inbounds double, ptr %A, i32 %p21
44       %A22 = getelementptr inbounds double, ptr %A, i32 %p22
45       %A23 = getelementptr inbounds double, ptr %A, i32 %p23
46       %A24 = getelementptr inbounds double, ptr %A, i32 %p24
47       %A25 = getelementptr inbounds double, ptr %A, i32 %p25
48       %A26 = getelementptr inbounds double, ptr %A, i32 %p26
49       %A27 = getelementptr inbounds double, ptr %A, i32 %p27
50       %A28 = getelementptr inbounds double, ptr %A, i32 %p28
51       %A29 = getelementptr inbounds double, ptr %A, i32 %p29
52       %A30 = getelementptr inbounds double, ptr %A, i32 %p30
53       %A31 = getelementptr inbounds double, ptr %A, i32 %p31
54       %A32 = getelementptr inbounds double, ptr %A, i32 %p32
55       %A33 = getelementptr inbounds double, ptr %A, i32 %p33
56       %A34 = getelementptr inbounds double, ptr %A, i32 %p34
57       %A35 = getelementptr inbounds double, ptr %A, i32 %p35
58       %A36 = getelementptr inbounds double, ptr %A, i32 %p36
59       %A37 = getelementptr inbounds double, ptr %A, i32 %p37
60       %A38 = getelementptr inbounds double, ptr %A, i32 %p38
61       %A39 = getelementptr inbounds double, ptr %A, i32 %p39
62       %A40 = getelementptr inbounds double, ptr %A, i32 %p40
63       %A41 = getelementptr inbounds double, ptr %A, i32 %p41
64       %A42 = getelementptr inbounds double, ptr %A, i32 %p42
65       %A43 = getelementptr inbounds double, ptr %A, i32 %p43
66       %A44 = getelementptr inbounds double, ptr %A, i32 %p44
67       %A45 = getelementptr inbounds double, ptr %A, i32 %p45
68       %A46 = getelementptr inbounds double, ptr %A, i32 %p46
69       %A47 = getelementptr inbounds double, ptr %A, i32 %p47
70       %A48 = getelementptr inbounds double, ptr %A, i32 %p48
71       %A49 = getelementptr inbounds double, ptr %A, i32 %p49
72       %A50 = getelementptr inbounds double, ptr %A, i32 %p50
73       %A51 = getelementptr inbounds double, ptr %A, i32 %p51
74       %A52 = getelementptr inbounds double, ptr %A, i32 %p52
75       %A53 = getelementptr inbounds double, ptr %A, i32 %p53
76       %A54 = getelementptr inbounds double, ptr %A, i32 %p54
77       %A55 = getelementptr inbounds double, ptr %A, i32 %p55
78       %A56 = getelementptr inbounds double, ptr %A, i32 %p56
79       %A57 = getelementptr inbounds double, ptr %A, i32 %p57
80       %A58 = getelementptr inbounds double, ptr %A, i32 %p58
81       %A59 = getelementptr inbounds double, ptr %A, i32 %p59
83       %val0 = load double, ptr %A0
84       store double %val0, ptr %A1
86       %val2 = load double, ptr %A2
87       store double %val2, ptr %A3
89       %val4 = load double, ptr %A4
90       store double %val4, ptr %A5
92       %val6 = load double, ptr %A6
93       store double %val6, ptr %A7
95       %val8 = load double, ptr %A8
96       store double %val8, ptr %A9
98       %val10 = load double, ptr %A10
99       store double %val10, ptr %A11
101       %val12 = load double, ptr %A12
102       store double %val12, ptr %A13
104       %val13 = load double, ptr %A13
105       store double %val13, ptr %A15
107       %val16 = load double, ptr %A16
108       store double %val16, ptr %A17
110       %val18 = load double, ptr %A18
111       store double %val18, ptr %A19
113       %val20 = load double, ptr %A20
114       store double %val20, ptr %A21
116       %val22 = load double, ptr %A22
117       store double %val22, ptr %A23
119       %val24 = load double, ptr %A24
120       store double %val24, ptr %A25
122       %val26 = load double, ptr %A26
123       store double %val26, ptr %A27
125       %val28 = load double, ptr %A28
126       store double %val28, ptr %A29
128       %val30 = load double, ptr %A30
129       store double %val30, ptr %A31
131       %val32 = load double, ptr %A32
132       store double %val32, ptr %A33
134       %val34 = load double, ptr %A34
135       store double %val34, ptr %A35
137       %val36 = load double, ptr %A36
138       store double %val36, ptr %A37
140       %val38 = load double, ptr %A38
141       store double %val38, ptr %A39
143       %val40 = load double, ptr %A40
144       store double %val40, ptr %A41
146       %val42 = load double, ptr %A42
147       store double %val42, ptr %A43
149       %val44 = load double, ptr %A44
150       store double %val44, ptr %A45
152       %val46 = load double, ptr %A46
153       store double %val46, ptr %A47
155       %val48 = load double, ptr %A48
156       store double %val48, ptr %A49
158       %val50 = load double, ptr %A50
159       store double %val50, ptr %A51
161       %val52 = load double, ptr %A52
162       store double %val52, ptr %A53
164       %val54 = load double, ptr %A54
165       store double %val54, ptr %A55
167       %val56 = load double, ptr %A56
168       store double %val56, ptr %A57
170       %val58 = load double, ptr %A58
171       store double %val58, ptr %A59
173       br label %inc
176 inc:
177   %j.inc = add nuw nsw i32 %j, 1
178   br label %for
180 exit:
181   br label %return
183 return:
184   ret void
188 ; CHECK: SCoP could not be simplified