brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.2 KiB · f48089a Raw
195 lines · plain
1; RUN: opt %loadNPMPolly -pass-remarks-analysis=polly-scops '-passes=polly-custom<scops>' -polly-print-scops -disable-output < %s 2>&1 | FileCheck %s2 3; We build a scop of the following form to check that the domain construction4; does not take a huge amount of time, but that we instead just bail out.5;6;       loop.header7;      /    |    \ \8;    A0    A2    A4 \9;      \  /  \  /    \10;       A1    A3      \11;      /  \  /  \     |12;    B0    B2    B4   |13;      \  /  \  /     |14;       B1    B3      ^15;      /  \  /  \     |16;    C0    C2    C4   |17;      \  /  \  /    /18;       C1    C3    /19;        \   /     /20;     loop backedge21 22; CHECK: Low complexity assumption: {  : false }23 24define void @foo(ptr %A, ptr %B, ptr %C, ptr %D, ptr %E,25                 i64 %A1.p, i64 %A2.p, i64 %A3.p,26                 i64 %B1.p, i64 %B2.p, i64 %B3.p,27                 i64 %C1.p, i64 %C2.p, i64 %C3.p,28                 i64 %D1.p, i64 %D2.p, i64 %D3.p,29                 i64 %E1.p, i64 %E2.p, i64 %E3.p) {30entry:31  br label %loop.header32 33loop.header:34  %indvar = phi i64 [0, %entry], [%indvar.next, %loop.backedge]35  switch i2 0, label %A0 [i2 1, label %A2 i2 2, label %A4]36 37A0:38  %val.A0 = load float, ptr %A39  store float %val.A0, ptr %A40  br label %A141 42A2:43  %val.A2 = load float, ptr %A44  store float %val.A2, ptr %A45  %A2.cmp = icmp eq i64 %A2.p, 046  br i1 %A2.cmp, label %A1, label %A347 48A4:49  %val.A4 = load float, ptr %A50  store float %val.A4, ptr %A51  br label %A352 53A1:54  %val.A1 = load float, ptr %A55  store float %val.A1, ptr %A56  %A1.cmp = icmp eq i64 %A1.p, 057  br i1 %A1.cmp, label %B0, label %B258 59A3:60  %val.A3 = load float, ptr %A61  store float %val.A3, ptr %A62  %A3.cmp = icmp eq i64 %A3.p, 063  br i1 %A3.cmp, label %B2, label %B464 65B0:66  %val.B0 = load float, ptr %B67  store float %val.B0, ptr %B68  br label %B169 70B2:71  %val.B2 = load float, ptr %B72  store float %val.B2, ptr %B73  %B2.cmp = icmp eq i64 %B2.p, 074  br i1 %B2.cmp, label %B1, label %B375 76B4:77  %val.B4 = load float, ptr %B78  store float %val.B4, ptr %B79  br label %B380 81B1:82  %val.B1 = load float, ptr %B83  store float %val.B1, ptr %B84  %B1.cmp = icmp eq i64 %B1.p, 085  br i1 %B1.cmp, label %C0, label %C286 87B3:88  %val.B3 = load float, ptr %A89  store float %val.B3, ptr %A90  %B3.cmp = icmp eq i64 %A3.p, 091  br i1 %B3.cmp, label %C2, label %C492 93C0:94  %val.C0 = load float, ptr %C95  store float %val.C0, ptr %C96  br label %C197 98C2:99  %val.C2 = load float, ptr %C100  store float %val.C2, ptr %C101  %C2.cmp = icmp eq i64 %C2.p, 0102  br i1 %C2.cmp, label %C1, label %C3103 104C4:105  %val.C4 = load float, ptr %C106  store float %val.C4, ptr %C107  br label %C3108 109C1:110  %val.C1 = load float, ptr %C111  store float %val.C1, ptr %C112  %C1.cmp = icmp eq i64 %C1.p, 0113  br i1 %C1.cmp, label %D0, label %D2114 115C3:116  %val.C3 = load float, ptr %C117  store float %val.C3, ptr %C118  %C3.cmp = icmp eq i64 %C3.p, 0119  br i1 %C3.cmp, label %D2, label %D4120 121D0:122  %val.D0 = load float, ptr %D123  store float %val.D0, ptr %D124  br label %D1125 126D2:127  %val.D2 = load float, ptr %D128  store float %val.D2, ptr %D129  %D2.cmp = icmp eq i64 %D2.p, 0130  br i1 %D2.cmp, label %D1, label %D3131 132D4:133  %val.D4 = load float, ptr %D134  store float %val.D4, ptr %D135  br label %D3136 137D1:138  %val.D1 = load float, ptr %D139  store float %val.D1, ptr %D140  %D1.cmp = icmp eq i64 %D1.p, 0141  br i1 %D1.cmp, label %E0, label %E2142 143D3:144  %val.D3 = load float, ptr %D145  store float %val.D3, ptr %D146  %D3.cmp = icmp eq i64 %D3.p, 0147  br i1 %D3.cmp, label %E2, label %E4148 149E0:150  %val.E0 = load float, ptr %E151  store float %val.E0, ptr %E152  br label %E1153 154E2:155  %val.E2 = load float, ptr %E156  store float %val.E2, ptr %E157  %E2.cmp = icmp eq i64 %E2.p, 0158  br i1 %E2.cmp, label %E1, label %E3159 160E4:161  %val.E4 = load float, ptr %E162  store float %val.E4, ptr %E163  br label %E3164 165E1:166  %val.E1 = load float, ptr %E167  store float %val.E1, ptr %E168  %E1.cmp = icmp eq i64 %E1.p, 0169  br i1 %E1.cmp, label %F0, label %F2170 171E3:172  %val.E3 = load float, ptr %E173  store float %val.E3, ptr %E174  %E3.cmp = icmp eq i64 %E3.p, 0175  br i1 %E3.cmp, label %F2, label %F4176 177F0:178  br label %loop.backedge179 180F2:181  br label %loop.backedge182 183F4:184  br label %loop.backedge185 186loop.backedge:187  %indvar.next = add i64 %indvar, 1188  %cmp = icmp ne i64 %indvar, 1000189  br i1 %cmp, label %loop.header, label %exit190 191exit:192  ret void193 194}195