261 lines · plain
1; RUN: opt %loadNPMPolly '-passes=polly-custom<scops>' -polly-print-detect -polly-print-scops -disable-output < %s 2>&1 | FileCheck %s2 3; CHECK-NOT: Assumed Context:4target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"5 6%struct.hoge = type { i32, ptr, ptr, ptr, i32, ptr, ptr, i32, i32, ptr, i32, ptr, [6 x i32], i32, ptr, i32 }7%struct.widget = type { i32, i32, ptr, ptr, ptr, i32, ptr, i32, i32, [3 x i32], i32 }8%struct.quux = type { ptr, ptr, ptr, i32, i32, i32, ptr }9%struct.hoge.0 = type { i32, ptr }10%struct.barney = type { [3 x i32], [3 x i32] }11%struct.ham = type { ptr, i32, i32, i32, i32 }12%struct.wombat = type { ptr, i32, i32 }13%struct.foo = type { i32, i32, i32, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }14%struct.wibble = type { ptr, i32 }15%struct.foo.1 = type { [3 x i32], [3 x i32], i32, i32, [4 x i32], [4 x i32] }16 17; Function Attrs: nounwind uwtable18define void @hoge() {19bb:20 %tmp52 = alloca ptr, align 821 %tmp53 = alloca ptr, align 822 %tmp54 = alloca ptr, align 823 %tmp55 = alloca ptr, align 824 br label %bb5625 26bb56: ; preds = %bb27 switch i32 undef, label %bb59 [28 i32 0, label %bb5729 i32 1, label %bb5830 ]31 32bb57: ; preds = %bb5633 unreachable34 35bb58: ; preds = %bb5636 unreachable37 38bb59: ; preds = %bb5639 %tmp = load ptr, ptr %tmp54, align 8, !tbaa !140 %tmp60 = getelementptr inbounds %struct.barney, ptr %tmp, i32 0, i32 141 %tmp62 = load i32, ptr %tmp60, align 4, !tbaa !542 %tmp63 = load ptr, ptr %tmp54, align 8, !tbaa !143 %tmp66 = sub nsw i32 %tmp62, 044 %tmp67 = add nsw i32 %tmp66, 145 %tmp68 = icmp slt i32 0, %tmp6746 br i1 %tmp68, label %bb69, label %bb7047 48bb69: ; preds = %bb5949 br label %bb7050 51bb70: ; preds = %bb69, %bb5952 %tmp71 = load ptr, ptr %tmp54, align 8, !tbaa !153 %tmp72 = getelementptr inbounds %struct.barney, ptr %tmp71, i32 0, i32 154 %tmp73 = getelementptr inbounds [3 x i32], ptr %tmp72, i64 0, i64 155 %tmp74 = load i32, ptr %tmp73, align 4, !tbaa !556 %tmp75 = load ptr, ptr %tmp54, align 8, !tbaa !157 %tmp77 = getelementptr inbounds [3 x i32], ptr %tmp75, i64 0, i64 158 %tmp78 = sub nsw i32 %tmp74, 059 %tmp79 = add nsw i32 %tmp78, 160 %tmp80 = icmp slt i32 0, %tmp7961 br i1 %tmp80, label %bb81, label %bb8262 63bb81: ; preds = %bb7064 br label %bb8265 66bb82: ; preds = %bb81, %bb7067 %tmp83 = load ptr, ptr %tmp54, align 8, !tbaa !168 %tmp84 = getelementptr inbounds %struct.barney, ptr %tmp83, i32 0, i32 169 %tmp86 = load i32, ptr %tmp84, align 4, !tbaa !570 %tmp87 = load ptr, ptr %tmp54, align 8, !tbaa !171 %tmp90 = sub nsw i32 %tmp86, 072 %tmp91 = add nsw i32 %tmp90, 173 %tmp92 = icmp slt i32 0, %tmp9174 br i1 %tmp92, label %bb93, label %bb9475 76bb93: ; preds = %bb8277 br label %bb9478 79bb94: ; preds = %bb93, %bb8280 %tmp95 = load ptr, ptr %tmp54, align 8, !tbaa !181 %tmp96 = getelementptr inbounds %struct.barney, ptr %tmp95, i32 0, i32 182 %tmp98 = load i32, ptr %tmp96, align 4, !tbaa !583 %tmp99 = load ptr, ptr %tmp54, align 8, !tbaa !184 %tmp102 = sub nsw i32 %tmp98, 085 %tmp103 = add nsw i32 %tmp102, 186 %tmp104 = icmp slt i32 0, %tmp10387 br i1 %tmp104, label %bb105, label %bb10688 89bb105: ; preds = %bb9490 br label %bb10691 92bb106: ; preds = %bb105, %bb9493 %tmp107 = load ptr, ptr %tmp53, align 8, !tbaa !194 %tmp108 = getelementptr inbounds %struct.barney, ptr %tmp107, i32 0, i32 195 %tmp109 = getelementptr inbounds [3 x i32], ptr %tmp108, i64 0, i64 196 %tmp110 = load i32, ptr %tmp109, align 4, !tbaa !597 %tmp111 = load ptr, ptr %tmp53, align 8, !tbaa !198 %tmp113 = getelementptr inbounds [3 x i32], ptr %tmp111, i64 0, i64 199 %tmp114 = sub nsw i32 %tmp110, 0100 %tmp115 = add nsw i32 %tmp114, 1101 %tmp116 = icmp slt i32 0, %tmp115102 br i1 %tmp116, label %bb117, label %bb118103 104bb117: ; preds = %bb106105 br label %bb118106 107bb118: ; preds = %bb117, %bb106108 %tmp119 = load ptr, ptr %tmp53, align 8, !tbaa !1109 %tmp120 = getelementptr inbounds %struct.barney, ptr %tmp119, i32 0, i32 1110 %tmp122 = load i32, ptr %tmp120, align 4, !tbaa !5111 %tmp123 = load ptr, ptr %tmp53, align 8, !tbaa !1112 %tmp126 = sub nsw i32 %tmp122, 0113 %tmp127 = add nsw i32 %tmp126, 1114 %tmp128 = icmp slt i32 0, %tmp127115 br i1 %tmp128, label %bb129, label %bb130116 117bb129: ; preds = %bb118118 br label %bb130119 120bb130: ; preds = %bb129, %bb118121 %tmp131 = load ptr, ptr %tmp54, align 8, !tbaa !1122 %tmp132 = getelementptr inbounds %struct.barney, ptr %tmp131, i32 0, i32 1123 %tmp134 = load i32, ptr %tmp132, align 4, !tbaa !5124 %tmp135 = load ptr, ptr %tmp54, align 8, !tbaa !1125 %tmp138 = sub nsw i32 %tmp134, 0126 %tmp139 = add nsw i32 %tmp138, 1127 %tmp140 = icmp slt i32 0, %tmp139128 br i1 %tmp140, label %bb141, label %bb142129 130bb141: ; preds = %bb130131 br label %bb142132 133bb142: ; preds = %bb141, %bb130134 %tmp143 = load ptr, ptr %tmp55, align 8, !tbaa !1135 %tmp144 = getelementptr inbounds %struct.barney, ptr %tmp143, i32 0, i32 1136 %tmp146 = load i32, ptr %tmp144, align 4, !tbaa !5137 %tmp147 = load ptr, ptr %tmp55, align 8, !tbaa !1138 %tmp150 = sub nsw i32 %tmp146, 0139 %tmp151 = add nsw i32 %tmp150, 1140 %tmp152 = icmp slt i32 0, %tmp151141 br i1 %tmp152, label %bb153, label %bb154142 143bb153: ; preds = %bb142144 br label %bb154145 146bb154: ; preds = %bb153, %bb142147 %tmp155 = load ptr, ptr %tmp53, align 8, !tbaa !1148 %tmp156 = getelementptr inbounds %struct.barney, ptr %tmp155, i32 0, i32 1149 %tmp158 = load i32, ptr %tmp156, align 4, !tbaa !5150 %tmp159 = load ptr, ptr %tmp53, align 8, !tbaa !1151 %tmp162 = load i32, ptr %tmp159, align 4, !tbaa !5152 %tmp163 = sub nsw i32 %tmp158, %tmp162153 %tmp164 = add nsw i32 %tmp163, 1154 %tmp165 = icmp slt i32 0, %tmp164155 br i1 %tmp165, label %bb166, label %bb167156 157bb166: ; preds = %bb154158 br label %bb167159 160bb167: ; preds = %bb166, %bb154161 %tmp168 = load ptr, ptr %tmp53, align 8, !tbaa !1162 %tmp169 = getelementptr inbounds %struct.barney, ptr %tmp168, i32 0, i32 1163 %tmp171 = load i32, ptr %tmp169, align 4, !tbaa !5164 %tmp172 = load ptr, ptr %tmp53, align 8, !tbaa !1165 %tmp175 = load i32, ptr %tmp172, align 4, !tbaa !5166 %tmp176 = sub nsw i32 %tmp171, %tmp175167 %tmp177 = add nsw i32 %tmp176, 1168 %tmp178 = icmp slt i32 0, %tmp177169 br i1 %tmp178, label %bb179, label %bb180170 171bb179: ; preds = %bb167172 br label %bb180173 174bb180: ; preds = %bb179, %bb167175 %tmp181 = load ptr, ptr %tmp53, align 8, !tbaa !1176 %tmp182 = getelementptr inbounds %struct.barney, ptr %tmp181, i32 0, i32 1177 %tmp183 = getelementptr inbounds [3 x i32], ptr %tmp182, i64 0, i64 1178 %tmp184 = load i32, ptr %tmp183, align 4, !tbaa !5179 %tmp185 = load ptr, ptr %tmp53, align 8, !tbaa !1180 %tmp187 = getelementptr inbounds [3 x i32], ptr %tmp185, i64 0, i64 1181 %tmp188 = load i32, ptr %tmp187, align 4, !tbaa !5182 %tmp189 = sub nsw i32 %tmp184, %tmp188183 %tmp190 = add nsw i32 %tmp189, 1184 %tmp191 = icmp slt i32 0, %tmp190185 br i1 %tmp191, label %bb192, label %bb193186 187bb192: ; preds = %bb180188 br label %bb193189 190bb193: ; preds = %bb192, %bb180191 %tmp194 = load ptr, ptr %tmp54, align 8, !tbaa !1192 %tmp195 = getelementptr inbounds %struct.barney, ptr %tmp194, i32 0, i32 1193 %tmp197 = load i32, ptr %tmp195, align 4, !tbaa !5194 %tmp198 = load ptr, ptr %tmp54, align 8, !tbaa !1195 %tmp201 = load i32, ptr %tmp198, align 4, !tbaa !5196 %tmp202 = sub nsw i32 %tmp197, %tmp201197 %tmp203 = add nsw i32 %tmp202, 1198 %tmp204 = icmp slt i32 0, %tmp203199 br i1 %tmp204, label %bb205, label %bb206200 201bb205: ; preds = %bb193202 br label %bb206203 204bb206: ; preds = %bb205, %bb193205 %tmp207 = load ptr, ptr %tmp54, align 8, !tbaa !1206 %tmp208 = getelementptr inbounds %struct.barney, ptr %tmp207, i32 0, i32 1207 %tmp210 = load i32, ptr %tmp208, align 4, !tbaa !5208 %tmp211 = load ptr, ptr %tmp54, align 8, !tbaa !1209 %tmp214 = load i32, ptr %tmp211, align 4, !tbaa !5210 %tmp215 = sub nsw i32 %tmp210, %tmp214211 %tmp216 = add nsw i32 %tmp215, 1212 %tmp217 = icmp slt i32 0, %tmp216213 br i1 %tmp217, label %bb218, label %bb219214 215bb218: ; preds = %bb206216 br label %bb219217 218bb219: ; preds = %bb218, %bb206219 %tmp220 = load ptr, ptr %tmp54, align 8, !tbaa !1220 %tmp221 = getelementptr inbounds %struct.barney, ptr %tmp220, i32 0, i32 1221 %tmp222 = getelementptr inbounds [3 x i32], ptr %tmp221, i64 0, i64 1222 %tmp223 = load i32, ptr %tmp222, align 4, !tbaa !5223 %tmp224 = load ptr, ptr %tmp54, align 8, !tbaa !1224 %tmp226 = getelementptr inbounds [3 x i32], ptr %tmp224, i64 0, i64 1225 %tmp227 = load i32, ptr %tmp226, align 4, !tbaa !5226 %tmp228 = sub nsw i32 %tmp223, %tmp227227 %tmp229 = add nsw i32 %tmp228, 1228 %tmp230 = icmp slt i32 0, %tmp229229 br i1 %tmp230, label %bb231, label %bb232230 231bb231: ; preds = %bb219232 br label %bb232233 234bb232: ; preds = %bb231, %bb219235 %tmp233 = load ptr, ptr %tmp55, align 8, !tbaa !1236 %tmp234 = getelementptr inbounds %struct.barney, ptr %tmp233, i32 0, i32 1237 %tmp236 = load i32, ptr %tmp234, align 4, !tbaa !5238 %tmp237 = load ptr, ptr %tmp55, align 8, !tbaa !1239 %tmp240 = load i32, ptr %tmp237, align 4, !tbaa !5240 %tmp241 = sub nsw i32 %tmp236, %tmp240241 %tmp242 = add nsw i32 %tmp241, 1242 %tmp243 = icmp slt i32 0, %tmp242243 br i1 %tmp243, label %bb244, label %bb245244 245bb244: ; preds = %bb232246 br label %bb245247 248bb245: ; preds = %bb244, %bb232249 unreachable250}251 252!llvm.ident = !{!0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0}253 254!0 = !{!"clang version 3.8.0 (trunk 252261) (llvm/trunk 252271)"}255!1 = !{!2, !2, i64 0}256!2 = !{!"any pointer", !3, i64 0}257!3 = !{!"omnipotent char", !4, i64 0}258!4 = !{!"Simple C/C++ TBAA"}259!5 = !{!6, !6, i64 0}260!6 = !{!"int", !3, i64 0}261