brintos

brintos / llvm-project-archived public Read only

0
0
Text · 14.1 KiB · 45cbdf9 Raw
298 lines · plain
1; RUN: opt < %s -loop-reduce2target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"3target triple = "aarch64-unknown-linux-gnu"4 5@d = internal unnamed_addr global ptr null, align 86 7define dso_local i32 @main(i1 %arg) local_unnamed_addr {8entry:9  %.pre.pre = load ptr, ptr @d, align 810  br label %for.body911 12for.body9:                                        ; preds = %for.body9, %entry13  %i = phi ptr [ %.pre.pre, %entry ], [ %incdec.ptr, %for.body9 ]14  %incdec.ptr = getelementptr inbounds ptr, ptr %i, i64 -115  br i1 %arg, label %for.body9, label %for.inc16 17for.inc:                                          ; preds = %for.body918  br label %for.body9.11819 20for.body9.1:                                      ; preds = %for.inc.547, %for.body9.121  %i1 = phi ptr [ %incdec.ptr.1, %for.body9.1 ], [ %incdec.ptr.542, %for.inc.547 ]22  %incdec.ptr.1 = getelementptr inbounds ptr, ptr %i1, i64 -123  br i1 %arg, label %for.body9.1, label %for.inc.124 25for.inc.1:                                        ; preds = %for.body9.126  br label %for.body9.1.127 28for.body9.2:                                      ; preds = %for.inc.1.5, %for.body9.229  %i2 = phi ptr [ %incdec.ptr.2, %for.body9.2 ], [ %incdec.ptr.1.5, %for.inc.1.5 ]30  %incdec.ptr.2 = getelementptr inbounds ptr, ptr %i2, i64 -131  br i1 %arg, label %for.body9.2, label %for.inc.232 33for.inc.2:                                        ; preds = %for.body9.234  br label %for.body9.2.135 36for.body9.3:                                      ; preds = %for.inc.2.5, %for.body9.337  %i3 = phi ptr [ %incdec.ptr.3, %for.body9.3 ], [ %incdec.ptr.2.5, %for.inc.2.5 ]38  %incdec.ptr.3 = getelementptr inbounds ptr, ptr %i3, i64 -139  br i1 %arg, label %for.body9.3, label %for.inc.340 41for.inc.3:                                        ; preds = %for.body9.342  br label %for.body9.3.143 44for.body9.4:                                      ; preds = %for.inc.3.5, %for.body9.445  %i4 = phi ptr [ %incdec.ptr.4, %for.body9.4 ], [ %incdec.ptr.3.5, %for.inc.3.5 ]46  %incdec.ptr.4 = getelementptr inbounds ptr, ptr %i4, i64 -147  br i1 %arg, label %for.body9.4, label %for.inc.448 49for.inc.4:                                        ; preds = %for.body9.450  br label %for.body9.4.151 52for.body9.5:                                      ; preds = %for.inc.4.5, %for.body9.553  %i5 = phi ptr [ %incdec.ptr.5, %for.body9.5 ], [ %incdec.ptr.4.5, %for.inc.4.5 ]54  %incdec.ptr.5 = getelementptr inbounds ptr, ptr %i5, i64 -155  br i1 %arg, label %for.body9.5, label %for.inc.556 57for.inc.5:                                        ; preds = %for.body9.558  br label %for.body9.5.159 60for.body9.5.1:                                    ; preds = %for.body9.5.1, %for.inc.561  %i6 = phi ptr [ %incdec.ptr.5.1, %for.body9.5.1 ], [ %incdec.ptr.5, %for.inc.5 ]62  %incdec.ptr.5.1 = getelementptr inbounds ptr, ptr %i6, i64 -163  br i1 %arg, label %for.body9.5.1, label %for.inc.5.164 65for.inc.5.1:                                      ; preds = %for.body9.5.166  br label %for.body9.5.267 68for.body9.5.2:                                    ; preds = %for.body9.5.2, %for.inc.5.169  %i7 = phi ptr [ %incdec.ptr.5.2, %for.body9.5.2 ], [ %incdec.ptr.5.1, %for.inc.5.1 ]70  %incdec.ptr.5.2 = getelementptr inbounds ptr, ptr %i7, i64 -171  br i1 %arg, label %for.body9.5.2, label %for.inc.5.272 73for.inc.5.2:                                      ; preds = %for.body9.5.274  br label %for.body9.5.375 76for.body9.5.3:                                    ; preds = %for.body9.5.3, %for.inc.5.277  %i8 = phi ptr [ %incdec.ptr.5.3, %for.body9.5.3 ], [ %incdec.ptr.5.2, %for.inc.5.2 ]78  %incdec.ptr.5.3 = getelementptr inbounds ptr, ptr %i8, i64 -179  br i1 %arg, label %for.body9.5.3, label %for.inc.5.380 81for.inc.5.3:                                      ; preds = %for.body9.5.382  br label %for.body9.5.483 84for.body9.5.4:                                    ; preds = %for.body9.5.4, %for.inc.5.385  %i9 = phi ptr [ %incdec.ptr.5.4, %for.body9.5.4 ], [ %incdec.ptr.5.3, %for.inc.5.3 ]86  %incdec.ptr.5.4 = getelementptr inbounds ptr, ptr %i9, i64 -187  br i1 %arg, label %for.body9.5.4, label %for.inc.5.488 89for.inc.5.4:                                      ; preds = %for.body9.5.490  br label %for.body9.5.591 92for.body9.5.5:                                    ; preds = %for.body9.5.5, %for.inc.5.493  %i10 = phi ptr [ undef, %for.body9.5.5 ], [ %incdec.ptr.5.4, %for.inc.5.4 ]94  %i12 = load i64, ptr %i10, align 895  br label %for.body9.5.596 97for.body9.4.1:                                    ; preds = %for.body9.4.1, %for.inc.498  %i13 = phi ptr [ %incdec.ptr.4.1, %for.body9.4.1 ], [ %incdec.ptr.4, %for.inc.4 ]99  %incdec.ptr.4.1 = getelementptr inbounds ptr, ptr %i13, i64 -1100  br i1 %arg, label %for.body9.4.1, label %for.inc.4.1101 102for.inc.4.1:                                      ; preds = %for.body9.4.1103  br label %for.body9.4.2104 105for.body9.4.2:                                    ; preds = %for.body9.4.2, %for.inc.4.1106  %i14 = phi ptr [ %incdec.ptr.4.2, %for.body9.4.2 ], [ %incdec.ptr.4.1, %for.inc.4.1 ]107  %incdec.ptr.4.2 = getelementptr inbounds ptr, ptr %i14, i64 -1108  br i1 %arg, label %for.body9.4.2, label %for.inc.4.2109 110for.inc.4.2:                                      ; preds = %for.body9.4.2111  br label %for.body9.4.3112 113for.body9.4.3:                                    ; preds = %for.body9.4.3, %for.inc.4.2114  %i15 = phi ptr [ %incdec.ptr.4.3, %for.body9.4.3 ], [ %incdec.ptr.4.2, %for.inc.4.2 ]115  %incdec.ptr.4.3 = getelementptr inbounds ptr, ptr %i15, i64 -1116  br i1 %arg, label %for.body9.4.3, label %for.inc.4.3117 118for.inc.4.3:                                      ; preds = %for.body9.4.3119  br label %for.body9.4.4120 121for.body9.4.4:                                    ; preds = %for.body9.4.4, %for.inc.4.3122  %i16 = phi ptr [ %incdec.ptr.4.4, %for.body9.4.4 ], [ %incdec.ptr.4.3, %for.inc.4.3 ]123  %incdec.ptr.4.4 = getelementptr inbounds ptr, ptr %i16, i64 -1124  br i1 %arg, label %for.body9.4.4, label %for.inc.4.4125 126for.inc.4.4:                                      ; preds = %for.body9.4.4127  br label %for.body9.4.5128 129for.body9.4.5:                                    ; preds = %for.body9.4.5, %for.inc.4.4130  %i17 = phi ptr [ %incdec.ptr.4.5, %for.body9.4.5 ], [ %incdec.ptr.4.4, %for.inc.4.4 ]131  %incdec.ptr.4.5 = getelementptr inbounds ptr, ptr %i17, i64 -1132  br i1 %arg, label %for.body9.4.5, label %for.inc.4.5133 134for.inc.4.5:                                      ; preds = %for.body9.4.5135  br label %for.body9.5136 137for.body9.3.1:                                    ; preds = %for.body9.3.1, %for.inc.3138  %i18 = phi ptr [ %incdec.ptr.3.1, %for.body9.3.1 ], [ %incdec.ptr.3, %for.inc.3 ]139  %incdec.ptr.3.1 = getelementptr inbounds ptr, ptr %i18, i64 -1140  br i1 %arg, label %for.body9.3.1, label %for.inc.3.1141 142for.inc.3.1:                                      ; preds = %for.body9.3.1143  br label %for.body9.3.2144 145for.body9.3.2:                                    ; preds = %for.body9.3.2, %for.inc.3.1146  %i19 = phi ptr [ %incdec.ptr.3.2, %for.body9.3.2 ], [ %incdec.ptr.3.1, %for.inc.3.1 ]147  %incdec.ptr.3.2 = getelementptr inbounds ptr, ptr %i19, i64 -1148  br i1 %arg, label %for.body9.3.2, label %for.inc.3.2149 150for.inc.3.2:                                      ; preds = %for.body9.3.2151  br label %for.body9.3.3152 153for.body9.3.3:                                    ; preds = %for.body9.3.3, %for.inc.3.2154  %i20 = phi ptr [ %incdec.ptr.3.3, %for.body9.3.3 ], [ %incdec.ptr.3.2, %for.inc.3.2 ]155  %incdec.ptr.3.3 = getelementptr inbounds ptr, ptr %i20, i64 -1156  br i1 %arg, label %for.body9.3.3, label %for.inc.3.3157 158for.inc.3.3:                                      ; preds = %for.body9.3.3159  br label %for.body9.3.4160 161for.body9.3.4:                                    ; preds = %for.body9.3.4, %for.inc.3.3162  %i21 = phi ptr [ %incdec.ptr.3.4, %for.body9.3.4 ], [ %incdec.ptr.3.3, %for.inc.3.3 ]163  %incdec.ptr.3.4 = getelementptr inbounds ptr, ptr %i21, i64 -1164  br i1 %arg, label %for.body9.3.4, label %for.inc.3.4165 166for.inc.3.4:                                      ; preds = %for.body9.3.4167  br label %for.body9.3.5168 169for.body9.3.5:                                    ; preds = %for.body9.3.5, %for.inc.3.4170  %i22 = phi ptr [ %incdec.ptr.3.5, %for.body9.3.5 ], [ %incdec.ptr.3.4, %for.inc.3.4 ]171  %incdec.ptr.3.5 = getelementptr inbounds ptr, ptr %i22, i64 -1172  br i1 %arg, label %for.body9.3.5, label %for.inc.3.5173 174for.inc.3.5:                                      ; preds = %for.body9.3.5175  br label %for.body9.4176 177for.body9.2.1:                                    ; preds = %for.body9.2.1, %for.inc.2178  %i23 = phi ptr [ %incdec.ptr.2.1, %for.body9.2.1 ], [ %incdec.ptr.2, %for.inc.2 ]179  %incdec.ptr.2.1 = getelementptr inbounds ptr, ptr %i23, i64 -1180  br i1 %arg, label %for.body9.2.1, label %for.inc.2.1181 182for.inc.2.1:                                      ; preds = %for.body9.2.1183  br label %for.body9.2.2184 185for.body9.2.2:                                    ; preds = %for.body9.2.2, %for.inc.2.1186  %i24 = phi ptr [ %incdec.ptr.2.2, %for.body9.2.2 ], [ %incdec.ptr.2.1, %for.inc.2.1 ]187  %incdec.ptr.2.2 = getelementptr inbounds ptr, ptr %i24, i64 -1188  br i1 %arg, label %for.body9.2.2, label %for.inc.2.2189 190for.inc.2.2:                                      ; preds = %for.body9.2.2191  br label %for.body9.2.3192 193for.body9.2.3:                                    ; preds = %for.body9.2.3, %for.inc.2.2194  %i25 = phi ptr [ %incdec.ptr.2.3, %for.body9.2.3 ], [ %incdec.ptr.2.2, %for.inc.2.2 ]195  %incdec.ptr.2.3 = getelementptr inbounds ptr, ptr %i25, i64 -1196  br i1 %arg, label %for.body9.2.3, label %for.inc.2.3197 198for.inc.2.3:                                      ; preds = %for.body9.2.3199  br label %for.body9.2.4200 201for.body9.2.4:                                    ; preds = %for.body9.2.4, %for.inc.2.3202  %i26 = phi ptr [ %incdec.ptr.2.4, %for.body9.2.4 ], [ %incdec.ptr.2.3, %for.inc.2.3 ]203  %incdec.ptr.2.4 = getelementptr inbounds ptr, ptr %i26, i64 -1204  br i1 %arg, label %for.body9.2.4, label %for.inc.2.4205 206for.inc.2.4:                                      ; preds = %for.body9.2.4207  br label %for.body9.2.5208 209for.body9.2.5:                                    ; preds = %for.body9.2.5, %for.inc.2.4210  %i27 = phi ptr [ %incdec.ptr.2.5, %for.body9.2.5 ], [ %incdec.ptr.2.4, %for.inc.2.4 ]211  %incdec.ptr.2.5 = getelementptr inbounds ptr, ptr %i27, i64 -1212  br i1 %arg, label %for.body9.2.5, label %for.inc.2.5213 214for.inc.2.5:                                      ; preds = %for.body9.2.5215  br label %for.body9.3216 217for.body9.1.1:                                    ; preds = %for.body9.1.1, %for.inc.1218  %i28 = phi ptr [ %incdec.ptr.1.1, %for.body9.1.1 ], [ %incdec.ptr.1, %for.inc.1 ]219  %incdec.ptr.1.1 = getelementptr inbounds ptr, ptr %i28, i64 -1220  br i1 %arg, label %for.body9.1.1, label %for.inc.1.1221 222for.inc.1.1:                                      ; preds = %for.body9.1.1223  br label %for.body9.1.2224 225for.body9.1.2:                                    ; preds = %for.body9.1.2, %for.inc.1.1226  %i29 = phi ptr [ %incdec.ptr.1.2, %for.body9.1.2 ], [ %incdec.ptr.1.1, %for.inc.1.1 ]227  %incdec.ptr.1.2 = getelementptr inbounds ptr, ptr %i29, i64 -1228  br i1 %arg, label %for.body9.1.2, label %for.inc.1.2229 230for.inc.1.2:                                      ; preds = %for.body9.1.2231  br label %for.body9.1.3232 233for.body9.1.3:                                    ; preds = %for.body9.1.3, %for.inc.1.2234  %i30 = phi ptr [ %incdec.ptr.1.3, %for.body9.1.3 ], [ %incdec.ptr.1.2, %for.inc.1.2 ]235  %incdec.ptr.1.3 = getelementptr inbounds ptr, ptr %i30, i64 -1236  br i1 %arg, label %for.body9.1.3, label %for.inc.1.3237 238for.inc.1.3:                                      ; preds = %for.body9.1.3239  br label %for.body9.1.4240 241for.body9.1.4:                                    ; preds = %for.body9.1.4, %for.inc.1.3242  %i31 = phi ptr [ %incdec.ptr.1.4, %for.body9.1.4 ], [ %incdec.ptr.1.3, %for.inc.1.3 ]243  %incdec.ptr.1.4 = getelementptr inbounds ptr, ptr %i31, i64 -1244  br i1 %arg, label %for.body9.1.4, label %for.inc.1.4245 246for.inc.1.4:                                      ; preds = %for.body9.1.4247  br label %for.body9.1.5248 249for.body9.1.5:                                    ; preds = %for.body9.1.5, %for.inc.1.4250  %i32 = phi ptr [ %incdec.ptr.1.5, %for.body9.1.5 ], [ %incdec.ptr.1.4, %for.inc.1.4 ]251  %incdec.ptr.1.5 = getelementptr inbounds ptr, ptr %i32, i64 -1252  br i1 %arg, label %for.body9.1.5, label %for.inc.1.5253 254for.inc.1.5:                                      ; preds = %for.body9.1.5255  br label %for.body9.2256 257for.body9.118:                                    ; preds = %for.body9.118, %for.inc258  %i33 = phi ptr [ %incdec.ptr, %for.inc ], [ %incdec.ptr.114, %for.body9.118 ]259  %incdec.ptr.114 = getelementptr inbounds ptr, ptr %i33, i64 -1260  br i1 %arg, label %for.body9.118, label %for.inc.119261 262for.inc.119:                                      ; preds = %for.body9.118263  br label %for.body9.225264 265for.body9.225:                                    ; preds = %for.body9.225, %for.inc.119266  %i34 = phi ptr [ %incdec.ptr.114, %for.inc.119 ], [ %incdec.ptr.221, %for.body9.225 ]267  %incdec.ptr.221 = getelementptr inbounds ptr, ptr %i34, i64 -1268  %i36 = load i64, ptr %i34, align 8269  br i1 %arg, label %for.body9.225, label %for.inc.226270 271for.inc.226:                                      ; preds = %for.body9.225272  br label %for.body9.332273 274for.body9.332:                                    ; preds = %for.body9.332, %for.inc.226275  %i37 = phi ptr [ %incdec.ptr.221, %for.inc.226 ], [ %incdec.ptr.328, %for.body9.332 ]276  %incdec.ptr.328 = getelementptr inbounds ptr, ptr %i37, i64 -1277  br i1 %arg, label %for.body9.332, label %for.inc.333278 279for.inc.333:                                      ; preds = %for.body9.332280  br label %for.body9.439281 282for.body9.439:                                    ; preds = %for.body9.439, %for.inc.333283  %i38 = phi ptr [ %incdec.ptr.328, %for.inc.333 ], [ %incdec.ptr.435, %for.body9.439 ]284  %incdec.ptr.435 = getelementptr inbounds ptr, ptr %i38, i64 -1285  br i1 %arg, label %for.body9.439, label %for.inc.440286 287for.inc.440:                                      ; preds = %for.body9.439288  br label %for.body9.546289 290for.body9.546:                                    ; preds = %for.body9.546, %for.inc.440291  %i39 = phi ptr [ %incdec.ptr.435, %for.inc.440 ], [ %incdec.ptr.542, %for.body9.546 ]292  %incdec.ptr.542 = getelementptr inbounds ptr, ptr %i39, i64 -1293  br i1 %arg, label %for.body9.546, label %for.inc.547294 295for.inc.547:                                      ; preds = %for.body9.546296  br label %for.body9.1297}298