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