brintos

brintos / llvm-project-archived public Read only

0
0
Text · 9.4 KiB · a7dbe0b Raw
225 lines · plain
1; RUN: opt %loadNPMPolly '-passes=polly-custom<scops>' -polly-print-scops -disable-output < %s 2>&1 | FileCheck %s2;3; CHECK: Assumed Context:4; CHECK-NEXT: { : }5;6; Make sure the large number of read-only accesses does not cause make us7; invalidate the scop.8;9;    void many_read_only_accesses(float A[], float B[]) {10;      for (long i = 0; i < 1024; i++) {11;        for (long j = 0; j < 1024; j++) {12;          A[j] += B[i] + B[i + 1] + B[i + 2] + B[i + 3] + B[i + 4] + B[i + 5] +13;                  B[i + 6] + B[i + 7] + B[i + 8] + B[i + 9] + B[i + 0] + B[i + 11] +14;                  B[i + 12] + B[i + 13] + B[i + 14] + B[i + 15] + B[i + 16] +15;                  B[i + 17] + B[i + 18] + B[i + 19] + B[i + 10] + B[i + 21] +16;                  B[i + 22] + B[i + 23] + B[i + 24] + B[i + 25] + B[i + 26] +17;                  B[i + 27] + B[i + 28] + B[i + 29] + B[i + 20] + B[i + 31] +18;                  B[i + 32] + B[i + 33] + B[i + 34] + B[i + 35] + B[i + 36] +19;                  B[i + 37] + B[i + 38] + B[i + 39] + B[i + 30];20;        }21;      }22;    }23;24target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"25 26define void @many_read_only_accesses(ptr %A, ptr %B) {27bb:28  br label %bb229 30bb2:                                              ; preds = %bb172, %bb31  %i.0 = phi i64 [ 0, %bb ], [ %tmp173, %bb172 ]32  %exitcond1 = icmp ne i64 %i.0, 102433  br i1 %exitcond1, label %bb3, label %bb17434 35bb3:                                              ; preds = %bb236  br label %bb437 38bb4:                                              ; preds = %bb169, %bb339  %j.0 = phi i64 [ 0, %bb3 ], [ %tmp170, %bb169 ]40  %exitcond = icmp ne i64 %j.0, 102441  br i1 %exitcond, label %bb5, label %bb17142 43bb5:                                              ; preds = %bb444  %tmp = getelementptr inbounds float, ptr %B, i64 %i.045  %tmp6 = load float, ptr %tmp, align 446  %tmp7 = add nuw nsw i64 %i.0, 147  %tmp8 = getelementptr inbounds float, ptr %B, i64 %tmp748  %tmp9 = load float, ptr %tmp8, align 449  %tmp10 = fadd float %tmp6, %tmp950  %tmp11 = add nuw nsw i64 %i.0, 251  %tmp12 = getelementptr inbounds float, ptr %B, i64 %tmp1152  %tmp13 = load float, ptr %tmp12, align 453  %tmp14 = fadd float %tmp10, %tmp1354  %tmp15 = add nuw nsw i64 %i.0, 355  %tmp16 = getelementptr inbounds float, ptr %B, i64 %tmp1556  %tmp17 = load float, ptr %tmp16, align 457  %tmp18 = fadd float %tmp14, %tmp1758  %tmp19 = add nuw nsw i64 %i.0, 459  %tmp20 = getelementptr inbounds float, ptr %B, i64 %tmp1960  %tmp21 = load float, ptr %tmp20, align 461  %tmp22 = fadd float %tmp18, %tmp2162  %tmp23 = add nuw nsw i64 %i.0, 563  %tmp24 = getelementptr inbounds float, ptr %B, i64 %tmp2364  %tmp25 = load float, ptr %tmp24, align 465  %tmp26 = fadd float %tmp22, %tmp2566  %tmp27 = add nuw nsw i64 %i.0, 667  %tmp28 = getelementptr inbounds float, ptr %B, i64 %tmp2768  %tmp29 = load float, ptr %tmp28, align 469  %tmp30 = fadd float %tmp26, %tmp2970  %tmp31 = add nuw nsw i64 %i.0, 771  %tmp32 = getelementptr inbounds float, ptr %B, i64 %tmp3172  %tmp33 = load float, ptr %tmp32, align 473  %tmp34 = fadd float %tmp30, %tmp3374  %tmp35 = add nuw nsw i64 %i.0, 875  %tmp36 = getelementptr inbounds float, ptr %B, i64 %tmp3576  %tmp37 = load float, ptr %tmp36, align 477  %tmp38 = fadd float %tmp34, %tmp3778  %tmp39 = add nuw nsw i64 %i.0, 979  %tmp40 = getelementptr inbounds float, ptr %B, i64 %tmp3980  %tmp41 = load float, ptr %tmp40, align 481  %tmp42 = fadd float %tmp38, %tmp4182  %tmp43 = getelementptr inbounds float, ptr %B, i64 %i.083  %tmp44 = load float, ptr %tmp43, align 484  %tmp45 = fadd float %tmp42, %tmp4485  %tmp46 = add nuw nsw i64 %i.0, 1186  %tmp47 = getelementptr inbounds float, ptr %B, i64 %tmp4687  %tmp48 = load float, ptr %tmp47, align 488  %tmp49 = fadd float %tmp45, %tmp4889  %tmp50 = add nuw nsw i64 %i.0, 1290  %tmp51 = getelementptr inbounds float, ptr %B, i64 %tmp5091  %tmp52 = load float, ptr %tmp51, align 492  %tmp53 = fadd float %tmp49, %tmp5293  %tmp54 = add nuw nsw i64 %i.0, 1394  %tmp55 = getelementptr inbounds float, ptr %B, i64 %tmp5495  %tmp56 = load float, ptr %tmp55, align 496  %tmp57 = fadd float %tmp53, %tmp5697  %tmp58 = add nuw nsw i64 %i.0, 1498  %tmp59 = getelementptr inbounds float, ptr %B, i64 %tmp5899  %tmp60 = load float, ptr %tmp59, align 4100  %tmp61 = fadd float %tmp57, %tmp60101  %tmp62 = add nuw nsw i64 %i.0, 15102  %tmp63 = getelementptr inbounds float, ptr %B, i64 %tmp62103  %tmp64 = load float, ptr %tmp63, align 4104  %tmp65 = fadd float %tmp61, %tmp64105  %tmp66 = add nuw nsw i64 %i.0, 16106  %tmp67 = getelementptr inbounds float, ptr %B, i64 %tmp66107  %tmp68 = load float, ptr %tmp67, align 4108  %tmp69 = fadd float %tmp65, %tmp68109  %tmp70 = add nuw nsw i64 %i.0, 17110  %tmp71 = getelementptr inbounds float, ptr %B, i64 %tmp70111  %tmp72 = load float, ptr %tmp71, align 4112  %tmp73 = fadd float %tmp69, %tmp72113  %tmp74 = add nuw nsw i64 %i.0, 18114  %tmp75 = getelementptr inbounds float, ptr %B, i64 %tmp74115  %tmp76 = load float, ptr %tmp75, align 4116  %tmp77 = fadd float %tmp73, %tmp76117  %tmp78 = add nuw nsw i64 %i.0, 19118  %tmp79 = getelementptr inbounds float, ptr %B, i64 %tmp78119  %tmp80 = load float, ptr %tmp79, align 4120  %tmp81 = fadd float %tmp77, %tmp80121  %tmp82 = add nuw nsw i64 %i.0, 10122  %tmp83 = getelementptr inbounds float, ptr %B, i64 %tmp82123  %tmp84 = load float, ptr %tmp83, align 4124  %tmp85 = fadd float %tmp81, %tmp84125  %tmp86 = add nuw nsw i64 %i.0, 21126  %tmp87 = getelementptr inbounds float, ptr %B, i64 %tmp86127  %tmp88 = load float, ptr %tmp87, align 4128  %tmp89 = fadd float %tmp85, %tmp88129  %tmp90 = add nuw nsw i64 %i.0, 22130  %tmp91 = getelementptr inbounds float, ptr %B, i64 %tmp90131  %tmp92 = load float, ptr %tmp91, align 4132  %tmp93 = fadd float %tmp89, %tmp92133  %tmp94 = add nuw nsw i64 %i.0, 23134  %tmp95 = getelementptr inbounds float, ptr %B, i64 %tmp94135  %tmp96 = load float, ptr %tmp95, align 4136  %tmp97 = fadd float %tmp93, %tmp96137  %tmp98 = add nuw nsw i64 %i.0, 24138  %tmp99 = getelementptr inbounds float, ptr %B, i64 %tmp98139  %tmp100 = load float, ptr %tmp99, align 4140  %tmp101 = fadd float %tmp97, %tmp100141  %tmp102 = add nuw nsw i64 %i.0, 25142  %tmp103 = getelementptr inbounds float, ptr %B, i64 %tmp102143  %tmp104 = load float, ptr %tmp103, align 4144  %tmp105 = fadd float %tmp101, %tmp104145  %tmp106 = add nuw nsw i64 %i.0, 26146  %tmp107 = getelementptr inbounds float, ptr %B, i64 %tmp106147  %tmp108 = load float, ptr %tmp107, align 4148  %tmp109 = fadd float %tmp105, %tmp108149  %tmp110 = add nuw nsw i64 %i.0, 27150  %tmp111 = getelementptr inbounds float, ptr %B, i64 %tmp110151  %tmp112 = load float, ptr %tmp111, align 4152  %tmp113 = fadd float %tmp109, %tmp112153  %tmp114 = add nuw nsw i64 %i.0, 28154  %tmp115 = getelementptr inbounds float, ptr %B, i64 %tmp114155  %tmp116 = load float, ptr %tmp115, align 4156  %tmp117 = fadd float %tmp113, %tmp116157  %tmp118 = add nuw nsw i64 %i.0, 29158  %tmp119 = getelementptr inbounds float, ptr %B, i64 %tmp118159  %tmp120 = load float, ptr %tmp119, align 4160  %tmp121 = fadd float %tmp117, %tmp120161  %tmp122 = add nuw nsw i64 %i.0, 20162  %tmp123 = getelementptr inbounds float, ptr %B, i64 %tmp122163  %tmp124 = load float, ptr %tmp123, align 4164  %tmp125 = fadd float %tmp121, %tmp124165  %tmp126 = add nuw nsw i64 %i.0, 31166  %tmp127 = getelementptr inbounds float, ptr %B, i64 %tmp126167  %tmp128 = load float, ptr %tmp127, align 4168  %tmp129 = fadd float %tmp125, %tmp128169  %tmp130 = add nuw nsw i64 %i.0, 32170  %tmp131 = getelementptr inbounds float, ptr %B, i64 %tmp130171  %tmp132 = load float, ptr %tmp131, align 4172  %tmp133 = fadd float %tmp129, %tmp132173  %tmp134 = add nuw nsw i64 %i.0, 33174  %tmp135 = getelementptr inbounds float, ptr %B, i64 %tmp134175  %tmp136 = load float, ptr %tmp135, align 4176  %tmp137 = fadd float %tmp133, %tmp136177  %tmp138 = add nuw nsw i64 %i.0, 34178  %tmp139 = getelementptr inbounds float, ptr %B, i64 %tmp138179  %tmp140 = load float, ptr %tmp139, align 4180  %tmp141 = fadd float %tmp137, %tmp140181  %tmp142 = add nuw nsw i64 %i.0, 35182  %tmp143 = getelementptr inbounds float, ptr %B, i64 %tmp142183  %tmp144 = load float, ptr %tmp143, align 4184  %tmp145 = fadd float %tmp141, %tmp144185  %tmp146 = add nuw nsw i64 %i.0, 36186  %tmp147 = getelementptr inbounds float, ptr %B, i64 %tmp146187  %tmp148 = load float, ptr %tmp147, align 4188  %tmp149 = fadd float %tmp145, %tmp148189  %tmp150 = add nuw nsw i64 %i.0, 37190  %tmp151 = getelementptr inbounds float, ptr %B, i64 %tmp150191  %tmp152 = load float, ptr %tmp151, align 4192  %tmp153 = fadd float %tmp149, %tmp152193  %tmp154 = add nuw nsw i64 %i.0, 38194  %tmp155 = getelementptr inbounds float, ptr %B, i64 %tmp154195  %tmp156 = load float, ptr %tmp155, align 4196  %tmp157 = fadd float %tmp153, %tmp156197  %tmp158 = add nuw nsw i64 %i.0, 39198  %tmp159 = getelementptr inbounds float, ptr %B, i64 %tmp158199  %tmp160 = load float, ptr %tmp159, align 4200  %tmp161 = fadd float %tmp157, %tmp160201  %tmp162 = add nuw nsw i64 %i.0, 30202  %tmp163 = getelementptr inbounds float, ptr %B, i64 %tmp162203  %tmp164 = load float, ptr %tmp163, align 4204  %tmp165 = fadd float %tmp161, %tmp164205  %tmp166 = getelementptr inbounds float, ptr %A, i64 %j.0206  %tmp167 = load float, ptr %tmp166, align 4207  %tmp168 = fadd float %tmp167, %tmp165208  store float %tmp168, ptr %tmp166, align 4209  br label %bb169210 211bb169:                                            ; preds = %bb5212  %tmp170 = add nuw nsw i64 %j.0, 1213  br label %bb4214 215bb171:                                            ; preds = %bb4216  br label %bb172217 218bb172:                                            ; preds = %bb171219  %tmp173 = add nuw nsw i64 %i.0, 1220  br label %bb2221 222bb174:                                            ; preds = %bb2223  ret void224}225