brintos

brintos / llvm-project-archived public Read only

0
0
Text · 9.5 KiB · 5d87599 Raw
301 lines · plain
1; RUN: opt %loadNPMPolly '-passes=polly-custom<detect>' -polly-print-detect -stats -disable-output < %s 2>&1 | FileCheck %s2 3; REQUIRES: asserts4 5; CHECK-DAG:  4 polly-detect     - Maximal number of loops in scops (profitable scops only)6; CHECK-DAG:  4 polly-detect     - Maximal number of loops in scops7; CHECK-DAG: 11 polly-detect     - Number of loops in scops (profitable scops only)8; CHECK-DAG: 11 polly-detect     - Number of loops in scops9; CHECK-DAG: 11 polly-detect     - Number of total loops10; CHECK-DAG:  6 polly-detect     - Number of scops (profitable scops only)11; CHECK-DAG:  1 polly-detect     - Number of scops with maximal loop depth 4 (profitable scops only)12; CHECK-DAG:  2 polly-detect     - Number of scops with maximal loop depth 1 (profitable scops only)13; CHECK-DAG:  1 polly-detect     - Number of scops with maximal loop depth 3 (profitable scops only)14; CHECK-DAG:  1 polly-detect     - Number of scops with maximal loop depth 2 (profitable scops only)15; CHECK-DAG:  1 polly-detect     - Number of scops with maximal loop depth 0 (profitable scops only)16; CHECK-DAG:  6 polly-detect     - Number of scops17; CHECK-DAG:  1 polly-detect     - Number of scops with maximal loop depth 418; CHECK-DAG:  2 polly-detect     - Number of scops with maximal loop depth 119; CHECK-DAG:  1 polly-detect     - Number of scops with maximal loop depth 320; CHECK-DAG:  1 polly-detect     - Number of scops with maximal loop depth 221; CHECK-DAG:  1 polly-detect     - Number of scops with maximal loop depth 022 23;    void foo_0d(float *A) {24;      if (true)25;        A[0] += i;26;    }27;28;    void foo_1d(float *A) {29;      for (long i = 0; i < 1024; i++)30;        A[i] += i;31;    }32;33;    void foo_2d(float *A) {34;      for (long i = 0; i < 1024; i++)35;        for (long j = 0; j < 1024; j++)36;          A[i + j] += i + j;37;    }38;39;    void foo_3d(float *A) {40;      for (long i = 0; i < 1024; i++)41;        for (long j = 0; j < 1024; j++)42;          for (long k = 0; k < 1024; k++)43;            A[i + j + k] += i + j + k;44;    }45;46;    void foo_4d(float *A) {47;      for (long i = 0; i < 1024; i++)48;        for (long j = 0; j < 1024; j++)49;          for (long k = 0; k < 1024; k++)50;            for (long l = 0; l < 1024; l++)51;              A[i + j + k + l] += i + j + k + l;52;    }53;54;    void foo_zero_iterations(float *S) {55;      for (long i = 0; i < 0; i++)56;        A[i] += i;57;    }58target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"59 60define void @foo_0d(ptr %A) {61bb:62  br label %bb163 64bb1:65  br i1 true, label %exit, label %block66 67block:68  store float 42.0, ptr %A69  br label %exit70 71exit:72  ret void73}74 75define void @foo_1d(ptr %A) {76bb:77  br label %bb178 79bb1:                                              ; preds = %bb6, %bb80  %i.0 = phi i64 [ 0, %bb ], [ %tmp7, %bb6 ]81  %exitcond = icmp ne i64 %i.0, 102482  br i1 %exitcond, label %bb2, label %bb883 84bb2:                                              ; preds = %bb185  %tmp = sitofp i64 %i.0 to float86  %tmp3 = getelementptr inbounds float, ptr %A, i64 %i.087  %tmp4 = load float, ptr %tmp3, align 488  %tmp5 = fadd float %tmp4, %tmp89  store float %tmp5, ptr %tmp3, align 490  br label %bb691 92bb6:                                              ; preds = %bb293  %tmp7 = add nuw nsw i64 %i.0, 194  br label %bb195 96bb8:                                              ; preds = %bb197  ret void98}99 100define void @foo_2d(ptr %A) {101bb:102  br label %bb2103 104bb2:                                              ; preds = %bb14, %bb105  %i.0 = phi i64 [ 0, %bb ], [ %tmp15, %bb14 ]106  %exitcond1 = icmp ne i64 %i.0, 1024107  br i1 %exitcond1, label %bb3, label %bb16108 109bb3:                                              ; preds = %bb2110  br label %bb4111 112bb4:                                              ; preds = %bb11, %bb3113  %j.0 = phi i64 [ 0, %bb3 ], [ %tmp12, %bb11 ]114  %exitcond = icmp ne i64 %j.0, 1024115  br i1 %exitcond, label %bb5, label %bb13116 117bb5:                                              ; preds = %bb4118  %tmp = add nuw nsw i64 %i.0, %j.0119  %tmp6 = sitofp i64 %tmp to float120  %tmp7 = add nuw nsw i64 %i.0, %j.0121  %tmp8 = getelementptr inbounds float, ptr %A, i64 %tmp7122  %tmp9 = load float, ptr %tmp8, align 4123  %tmp10 = fadd float %tmp9, %tmp6124  store float %tmp10, ptr %tmp8, align 4125  br label %bb11126 127bb11:                                             ; preds = %bb5128  %tmp12 = add nuw nsw i64 %j.0, 1129  br label %bb4130 131bb13:                                             ; preds = %bb4132  br label %bb14133 134bb14:                                             ; preds = %bb13135  %tmp15 = add nuw nsw i64 %i.0, 1136  br label %bb2137 138bb16:                                             ; preds = %bb2139  ret void140}141 142define void @foo_3d(ptr %A) {143bb:144  br label %bb3145 146bb3:                                              ; preds = %bb22, %bb147  %i.0 = phi i64 [ 0, %bb ], [ %tmp23, %bb22 ]148  %exitcond2 = icmp ne i64 %i.0, 1024149  br i1 %exitcond2, label %bb4, label %bb24150 151bb4:                                              ; preds = %bb3152  br label %bb5153 154bb5:                                              ; preds = %bb19, %bb4155  %j.0 = phi i64 [ 0, %bb4 ], [ %tmp20, %bb19 ]156  %exitcond1 = icmp ne i64 %j.0, 1024157  br i1 %exitcond1, label %bb6, label %bb21158 159bb6:                                              ; preds = %bb5160  br label %bb7161 162bb7:                                              ; preds = %bb16, %bb6163  %k.0 = phi i64 [ 0, %bb6 ], [ %tmp17, %bb16 ]164  %exitcond = icmp ne i64 %k.0, 1024165  br i1 %exitcond, label %bb8, label %bb18166 167bb8:                                              ; preds = %bb7168  %tmp = add nuw nsw i64 %i.0, %j.0169  %tmp9 = add nuw nsw i64 %tmp, %k.0170  %tmp10 = sitofp i64 %tmp9 to float171  %tmp11 = add nuw nsw i64 %i.0, %j.0172  %tmp12 = add nuw nsw i64 %tmp11, %k.0173  %tmp13 = getelementptr inbounds float, ptr %A, i64 %tmp12174  %tmp14 = load float, ptr %tmp13, align 4175  %tmp15 = fadd float %tmp14, %tmp10176  store float %tmp15, ptr %tmp13, align 4177  br label %bb16178 179bb16:                                             ; preds = %bb8180  %tmp17 = add nuw nsw i64 %k.0, 1181  br label %bb7182 183bb18:                                             ; preds = %bb7184  br label %bb19185 186bb19:                                             ; preds = %bb18187  %tmp20 = add nuw nsw i64 %j.0, 1188  br label %bb5189 190bb21:                                             ; preds = %bb5191  br label %bb22192 193bb22:                                             ; preds = %bb21194  %tmp23 = add nuw nsw i64 %i.0, 1195  br label %bb3196 197bb24:                                             ; preds = %bb3198  ret void199}200 201define void @foo_4d(ptr %A) {202bb:203  br label %bb4204 205bb4:                                              ; preds = %bb30, %bb206  %i.0 = phi i64 [ 0, %bb ], [ %tmp31, %bb30 ]207  %exitcond3 = icmp ne i64 %i.0, 1024208  br i1 %exitcond3, label %bb5, label %bb32209 210bb5:                                              ; preds = %bb4211  br label %bb6212 213bb6:                                              ; preds = %bb27, %bb5214  %j.0 = phi i64 [ 0, %bb5 ], [ %tmp28, %bb27 ]215  %exitcond2 = icmp ne i64 %j.0, 1024216  br i1 %exitcond2, label %bb7, label %bb29217 218bb7:                                              ; preds = %bb6219  br label %bb8220 221bb8:                                              ; preds = %bb24, %bb7222  %k.0 = phi i64 [ 0, %bb7 ], [ %tmp25, %bb24 ]223  %exitcond1 = icmp ne i64 %k.0, 1024224  br i1 %exitcond1, label %bb9, label %bb26225 226bb9:                                              ; preds = %bb8227  br label %bb10228 229bb10:                                             ; preds = %bb21, %bb9230  %l.0 = phi i64 [ 0, %bb9 ], [ %tmp22, %bb21 ]231  %exitcond = icmp ne i64 %l.0, 1024232  br i1 %exitcond, label %bb11, label %bb23233 234bb11:                                             ; preds = %bb10235  %tmp = add nuw nsw i64 %i.0, %j.0236  %tmp12 = add nuw nsw i64 %tmp, %k.0237  %tmp13 = add nuw nsw i64 %tmp12, %l.0238  %tmp14 = sitofp i64 %tmp13 to float239  %tmp15 = add nuw nsw i64 %i.0, %j.0240  %tmp16 = add nuw nsw i64 %tmp15, %k.0241  %tmp17 = add nuw nsw i64 %tmp16, %l.0242  %tmp18 = getelementptr inbounds float, ptr %A, i64 %tmp17243  %tmp19 = load float, ptr %tmp18, align 4244  %tmp20 = fadd float %tmp19, %tmp14245  store float %tmp20, ptr %tmp18, align 4246  br label %bb21247 248bb21:                                             ; preds = %bb11249  %tmp22 = add nuw nsw i64 %l.0, 1250  br label %bb10251 252bb23:                                             ; preds = %bb10253  br label %bb24254 255bb24:                                             ; preds = %bb23256  %tmp25 = add nuw nsw i64 %k.0, 1257  br label %bb8258 259bb26:                                             ; preds = %bb8260  br label %bb27261 262bb27:                                             ; preds = %bb26263  %tmp28 = add nuw nsw i64 %j.0, 1264  br label %bb6265 266bb29:                                             ; preds = %bb6267  br label %bb30268 269bb30:                                             ; preds = %bb29270  %tmp31 = add nuw nsw i64 %i.0, 1271  br label %bb4272 273bb32:                                             ; preds = %bb4274  ret void275}276 277define void @foo_zero_iterations(ptr %A) {278bb:279  br label %bb1280 281bb1:                                              ; preds = %bb6, %bb282  %i.0 = phi i64 [ 0, %bb ], [ %tmp7, %bb6 ]283  %exitcond = icmp ne i64 %i.0, 0284  br i1 %exitcond, label %bb2, label %bb8285 286bb2:                                              ; preds = %bb1287  %tmp = sitofp i64 %i.0 to float288  %tmp3 = getelementptr inbounds float, ptr %A, i64 %i.0289  %tmp4 = load float, ptr %tmp3, align 4290  %tmp5 = fadd float %tmp4, %tmp291  store float %tmp5, ptr %tmp3, align 4292  br label %bb6293 294bb6:                                              ; preds = %bb2295  %tmp7 = add nuw nsw i64 %i.0, 1296  br label %bb1297 298bb8:                                              ; preds = %bb1299  ret void300}301