1; RUN: opt %loadPolly -polly-codegen -polly-ignore-aliasing -S < %s \ 2; RUN: | FileCheck %s 3; 4; void manyarrays(float A1[], float A2[], float A3[], float A4[], float A5[], 5; float A6[], float A7[], float A8[], float A9[]) { 6; for (long i = 0; i <= 1024; i++) { 7; A1[i] += i; 8; A2[i] += i; 9; A3[i] += i; 10; A4[i] += i; 11; A5[i] += i; 12; A6[i] += i; 13; A7[i] += i; 14; A8[i] += i; 15; A9[i] += i; 16; } 17; } 18; 19; CHECK-LABEL @manyarrays 20; CHECK: load{{.*}}!alias.scope 21; CHECK: store{{.*}}!alias.scope 22; CHECK: load{{.*}}!alias.scope 23; CHECK: store{{.*}}!alias.scope 24; CHECK: load{{.*}}!alias.scope 25; CHECK: store{{.*}}!alias.scope 26; CHECK: load{{.*}}!alias.scope 27; CHECK: store{{.*}}!alias.scope 28; CHECK: load{{.*}}!alias.scope 29; CHECK: store{{.*}}!alias.scope 30; CHECK: load{{.*}}!alias.scope 31; CHECK: store{{.*}}!alias.scope 32; CHECK: load{{.*}}!alias.scope 33; CHECK: store{{.*}}!alias.scope 34; CHECK: load{{.*}}!alias.scope 35; CHECK: store{{.*}}!alias.scope 36; CHECK: load{{.*}}!alias.scope 37; CHECK: store{{.*}}!alias.scope 38; 39; void toomanyarrays(float A1[], float A2[], float A3[], float A4[], float A5[], 40; float A6[], float A7[], float A8[], float A9[], float A10[], 41; float A11[]) { 42; for (long i = 0; i <= 1024; i++) { 43; A1[i] += i; 44; A2[i] += i; 45; A3[i] += i; 46; A4[i] += i; 47; A5[i] += i; 48; A6[i] += i; 49; A7[i] += i; 50; A8[i] += i; 51; A9[i] += i; 52; A10[i] += i; 53; A11[i] += i; 54; } 55; } 56; 57; CHECK-LABEL: @toomanyarrays 58; CHECK-NOT: !alias.scope 59; 60target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" 61 62define void @manyarrays(float* %A1, float* %A2, float* %A3, float* %A4, float* %A5, float* %A6, float* %A7, float* %A8, float* %A9) { 63bb: 64 br label %bb1 65 66bb1: ; preds = %bb38, %bb 67 %i.0 = phi i64 [ 0, %bb ], [ %tmp39, %bb38 ] 68 %exitcond = icmp ne i64 %i.0, 1025 69 br i1 %exitcond, label %bb2, label %bb40 70 71bb2: ; preds = %bb1 72 %tmp = sitofp i64 %i.0 to float 73 %tmp3 = getelementptr inbounds float, float* %A1, i64 %i.0 74 %tmp4 = load float, float* %tmp3, align 4 75 %tmp5 = fadd float %tmp4, %tmp 76 store float %tmp5, float* %tmp3, align 4 77 %tmp6 = sitofp i64 %i.0 to float 78 %tmp7 = getelementptr inbounds float, float* %A2, i64 %i.0 79 %tmp8 = load float, float* %tmp7, align 4 80 %tmp9 = fadd float %tmp8, %tmp6 81 store float %tmp9, float* %tmp7, align 4 82 %tmp10 = sitofp i64 %i.0 to float 83 %tmp11 = getelementptr inbounds float, float* %A3, i64 %i.0 84 %tmp12 = load float, float* %tmp11, align 4 85 %tmp13 = fadd float %tmp12, %tmp10 86 store float %tmp13, float* %tmp11, align 4 87 %tmp14 = sitofp i64 %i.0 to float 88 %tmp15 = getelementptr inbounds float, float* %A4, i64 %i.0 89 %tmp16 = load float, float* %tmp15, align 4 90 %tmp17 = fadd float %tmp16, %tmp14 91 store float %tmp17, float* %tmp15, align 4 92 %tmp18 = sitofp i64 %i.0 to float 93 %tmp19 = getelementptr inbounds float, float* %A5, i64 %i.0 94 %tmp20 = load float, float* %tmp19, align 4 95 %tmp21 = fadd float %tmp20, %tmp18 96 store float %tmp21, float* %tmp19, align 4 97 %tmp22 = sitofp i64 %i.0 to float 98 %tmp23 = getelementptr inbounds float, float* %A6, i64 %i.0 99 %tmp24 = load float, float* %tmp23, align 4 100 %tmp25 = fadd float %tmp24, %tmp22 101 store float %tmp25, float* %tmp23, align 4 102 %tmp26 = sitofp i64 %i.0 to float 103 %tmp27 = getelementptr inbounds float, float* %A7, i64 %i.0 104 %tmp28 = load float, float* %tmp27, align 4 105 %tmp29 = fadd float %tmp28, %tmp26 106 store float %tmp29, float* %tmp27, align 4 107 %tmp30 = sitofp i64 %i.0 to float 108 %tmp31 = getelementptr inbounds float, float* %A8, i64 %i.0 109 %tmp32 = load float, float* %tmp31, align 4 110 %tmp33 = fadd float %tmp32, %tmp30 111 store float %tmp33, float* %tmp31, align 4 112 %tmp34 = sitofp i64 %i.0 to float 113 %tmp35 = getelementptr inbounds float, float* %A9, i64 %i.0 114 %tmp36 = load float, float* %tmp35, align 4 115 %tmp37 = fadd float %tmp36, %tmp34 116 store float %tmp37, float* %tmp35, align 4 117 br label %bb38 118 119bb38: ; preds = %bb2 120 %tmp39 = add nuw nsw i64 %i.0, 1 121 br label %bb1 122 123bb40: ; preds = %bb1 124 ret void 125} 126 127define void @toomanyarrays(float* %A1, float* %A2, float* %A3, float* %A4, float* %A5, float* %A6, float* %A7, float* %A8, float* %A9, float* %A10, float* %A11) { 128bb: 129 br label %bb1 130 131bb1: ; preds = %bb46, %bb 132 %i.0 = phi i64 [ 0, %bb ], [ %tmp47, %bb46 ] 133 %exitcond = icmp ne i64 %i.0, 1025 134 br i1 %exitcond, label %bb2, label %bb48 135 136bb2: ; preds = %bb1 137 %tmp = sitofp i64 %i.0 to float 138 %tmp3 = getelementptr inbounds float, float* %A1, i64 %i.0 139 %tmp4 = load float, float* %tmp3, align 4 140 %tmp5 = fadd float %tmp4, %tmp 141 store float %tmp5, float* %tmp3, align 4 142 %tmp6 = sitofp i64 %i.0 to float 143 %tmp7 = getelementptr inbounds float, float* %A2, i64 %i.0 144 %tmp8 = load float, float* %tmp7, align 4 145 %tmp9 = fadd float %tmp8, %tmp6 146 store float %tmp9, float* %tmp7, align 4 147 %tmp10 = sitofp i64 %i.0 to float 148 %tmp11 = getelementptr inbounds float, float* %A3, i64 %i.0 149 %tmp12 = load float, float* %tmp11, align 4 150 %tmp13 = fadd float %tmp12, %tmp10 151 store float %tmp13, float* %tmp11, align 4 152 %tmp14 = sitofp i64 %i.0 to float 153 %tmp15 = getelementptr inbounds float, float* %A4, i64 %i.0 154 %tmp16 = load float, float* %tmp15, align 4 155 %tmp17 = fadd float %tmp16, %tmp14 156 store float %tmp17, float* %tmp15, align 4 157 %tmp18 = sitofp i64 %i.0 to float 158 %tmp19 = getelementptr inbounds float, float* %A5, i64 %i.0 159 %tmp20 = load float, float* %tmp19, align 4 160 %tmp21 = fadd float %tmp20, %tmp18 161 store float %tmp21, float* %tmp19, align 4 162 %tmp22 = sitofp i64 %i.0 to float 163 %tmp23 = getelementptr inbounds float, float* %A6, i64 %i.0 164 %tmp24 = load float, float* %tmp23, align 4 165 %tmp25 = fadd float %tmp24, %tmp22 166 store float %tmp25, float* %tmp23, align 4 167 %tmp26 = sitofp i64 %i.0 to float 168 %tmp27 = getelementptr inbounds float, float* %A7, i64 %i.0 169 %tmp28 = load float, float* %tmp27, align 4 170 %tmp29 = fadd float %tmp28, %tmp26 171 store float %tmp29, float* %tmp27, align 4 172 %tmp30 = sitofp i64 %i.0 to float 173 %tmp31 = getelementptr inbounds float, float* %A8, i64 %i.0 174 %tmp32 = load float, float* %tmp31, align 4 175 %tmp33 = fadd float %tmp32, %tmp30 176 store float %tmp33, float* %tmp31, align 4 177 %tmp34 = sitofp i64 %i.0 to float 178 %tmp35 = getelementptr inbounds float, float* %A9, i64 %i.0 179 %tmp36 = load float, float* %tmp35, align 4 180 %tmp37 = fadd float %tmp36, %tmp34 181 store float %tmp37, float* %tmp35, align 4 182 %tmp38 = sitofp i64 %i.0 to float 183 %tmp39 = getelementptr inbounds float, float* %A10, i64 %i.0 184 %tmp40 = load float, float* %tmp39, align 4 185 %tmp41 = fadd float %tmp40, %tmp38 186 store float %tmp41, float* %tmp39, align 4 187 %tmp42 = sitofp i64 %i.0 to float 188 %tmp43 = getelementptr inbounds float, float* %A11, i64 %i.0 189 %tmp44 = load float, float* %tmp43, align 4 190 %tmp45 = fadd float %tmp44, %tmp42 191 store float %tmp45, float* %tmp43, align 4 192 br label %bb46 193 194bb46: ; preds = %bb2 195 %tmp47 = add nuw nsw i64 %i.0, 1 196 br label %bb1 197 198bb48: ; preds = %bb1 199 ret void 200} 201