brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.5 KiB · d48665b Raw
131 lines · plain
1; RUN: opt %loadNPMPolly -polly-delicm-max-ops=1000000 '-passes=polly-custom<delicm>' -polly-print-delicm -disable-output < %s | FileCheck %s2;3; This causes an assertion to fail on out-of-quota after 1000000 operations.4; (The error was specific to -polly-delicm-max-ops=1000000 and changes5;  in the implementation are likely to change the number of operations6;  up to the point where the error uses to occur)7;8target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"9 10define void @test(i32 %size, ptr %lhs, i32 %lhsStride, ptr %_rhs, ptr %res, double %alpha) {11entry:12  br label %if.end13 14if.end:                                           ; preds = %entry15  %sub = add nsw i32 %size, -816  %cmp.i.i.i = icmp sgt i32 %sub, 017  %.sroa.speculated = select i1 %cmp.i.i.i, i32 %sub, i32 018  %and36 = and i32 %.sroa.speculated, -219  %cmp38463 = icmp sgt i32 %and36, 020  br i1 %cmp38463, label %for.body40, label %for.cond177.preheader21 22for.cond177.preheader:                            ; preds = %for.cond.cleanup142, %if.end23  br label %for.body18024 25for.body40:                                       ; preds = %for.cond.cleanup142, %if.end26  %j.0464 = phi i32 [ %add55, %for.cond.cleanup142 ], [ 0, %if.end ]27  %mul41 = mul nsw i32 %j.0464, %lhsStride28  %add.ptr42 = getelementptr inbounds double, ptr %lhs, i32 %mul4129  %add43 = or i32 %j.0464, 130  %arrayidx46 = getelementptr inbounds double, ptr %_rhs, i32 %j.046431  %tmp = load double, ptr %arrayidx46, align 832  %mul47 = fmul double %tmp, %alpha33  %add55 = add nuw nsw i32 %j.0464, 234  %arrayidx67 = getelementptr inbounds double, ptr %res, i32 %j.046435  %tmp1 = load double, ptr %arrayidx67, align 836  store double undef, ptr %arrayidx67, align 837  %arrayidx75 = getelementptr inbounds double, ptr %res, i32 %add4338  %tmp2 = load double, ptr %arrayidx75, align 839  store double undef, ptr %arrayidx75, align 840  %arrayidx78 = getelementptr inbounds double, ptr %add.ptr42, i32 %add4341  %tmp3 = load double, ptr %arrayidx78, align 842  %mul.i.i388 = fmul double %mul47, %tmp343  %add88 = fadd double undef, 0.000000e+0044  %cmp120448 = icmp ult i32 %add55, %size45  br i1 %cmp120448, label %for.body122.preheader, label %for.cond.cleanup14246 47for.body122.preheader:                            ; preds = %for.body4048  %add.ptr117 = getelementptr inbounds double, ptr %res, i32 %add5549  br label %for.body12250 51for.body122:                                      ; preds = %for.body122, %for.body122.preheader52  %i118.0455 = phi i32 [ %add137, %for.body122 ], [ %add55, %for.body122.preheader ]53  %resIt.0454 = phi ptr [ %add.ptr135, %for.body122 ], [ %add.ptr117, %for.body122.preheader ]54  %ptmp2.0450 = phi double [ undef, %for.body122 ], [ 0.000000e+00, %for.body122.preheader ]55  %tmp4 = load double, ptr %resIt.0454, align 856  %add.i.i.i386 = fadd double undef, %tmp457  %add.i.i.i384 = fadd double undef, %add.i.i.i38658  store double %add.i.i.i384, ptr %resIt.0454, align 859  %add.ptr135 = getelementptr inbounds double, ptr %resIt.0454, i32 160  %add137 = add nuw i32 %i118.0455, 161  %exitcond469 = icmp eq i32 %add137, %size62  br i1 %exitcond469, label %for.cond.cleanup142.loopexit, label %for.body12263 64for.cond.cleanup142.loopexit:                     ; preds = %for.body12265  %.pre = load double, ptr %arrayidx67, align 866  %.pre471 = load double, ptr %arrayidx75, align 867  br label %for.cond.cleanup14268 69for.cond.cleanup142:                              ; preds = %for.cond.cleanup142.loopexit, %for.body4070  %tmp5 = phi double [ undef, %for.body40 ], [ %.pre471, %for.cond.cleanup142.loopexit ]71  %tmp6 = phi double [ undef, %for.body40 ], [ %.pre, %for.cond.cleanup142.loopexit ]72  %ptmp2.0.lcssa = phi double [ 0.000000e+00, %for.body40 ], [ undef, %for.cond.cleanup142.loopexit ]73  %add163 = fadd double %add88, %ptmp2.0.lcssa74  store double undef, ptr %arrayidx67, align 875  store double undef, ptr %arrayidx75, align 876  %cmp38 = icmp ult i32 %add55, %and3677  br i1 %cmp38, label %for.body40, label %for.cond177.preheader78 79for.cond.cleanup179:                              ; preds = %for.cond.cleanup19880  ret void81 82for.body180:                                      ; preds = %for.cond.cleanup198, %for.cond177.preheader83  %j176.0442 = phi i32 [ %add195, %for.cond.cleanup198 ], [ %and36, %for.cond177.preheader ]84  %arrayidx185 = getelementptr inbounds double, ptr %_rhs, i32 %j176.044285  %tmp7 = load double, ptr %arrayidx185, align 886  %mul186 = fmul double %tmp7, %alpha87  %arrayidx189 = getelementptr inbounds double, ptr %lhs, i32 %j176.044288  %tmp8 = load double, ptr %arrayidx189, align 889  %mul.i.i373 = fmul double %tmp8, %mul18690  %arrayidx192 = getelementptr inbounds double, ptr %res, i32 %j176.044291  %tmp9 = load double, ptr %arrayidx192, align 892  %add193 = fadd double %tmp9, %mul.i.i37393  store double %add193, ptr %arrayidx192, align 894  %add195 = add nuw nsw i32 %j176.0442, 195  %cmp197438 = icmp slt i32 %add195, %size96  br i1 %cmp197438, label %for.body199, label %for.cond.cleanup19897 98for.cond.cleanup198.loopexit:                     ; preds = %for.body19999  %.pre472 = load double, ptr %arrayidx192, align 8100  br label %for.cond.cleanup198101 102for.cond.cleanup198:                              ; preds = %for.cond.cleanup198.loopexit, %for.body180103  %tmp10 = phi double [ %add193, %for.body180 ], [ %.pre472, %for.cond.cleanup198.loopexit ]104  %t2187.0.lcssa = phi double [ 0.000000e+00, %for.body180 ], [ %add207, %for.cond.cleanup198.loopexit ]105  %add213 = fadd double %tmp10, undef106  store double %add213, ptr %arrayidx192, align 8107  %exitcond468 = icmp eq i32 %add195, %size108  br i1 %exitcond468, label %for.cond.cleanup179, label %for.body180109 110for.body199:                                      ; preds = %for.body199, %for.body180111  %i194.0440 = phi i32 [ %inc209, %for.body199 ], [ %add195, %for.body180 ]112  %arrayidx200 = getelementptr inbounds double, ptr %lhs, i32 %i194.0440113  %tmp11 = load double, ptr %arrayidx200, align 8114  %mul.i.i372 = fmul double %mul186, %tmp11115  %arrayidx202 = getelementptr inbounds double, ptr %res, i32 %i194.0440116  %tmp12 = load double, ptr %arrayidx202, align 8117  %add203 = fadd double %tmp12, %mul.i.i372118  store double %add203, ptr %arrayidx202, align 8119  %arrayidx205 = getelementptr inbounds double, ptr %_rhs, i32 %i194.0440120  %tmp13 = load double, ptr %arrayidx200, align 8121  %tmp14 = load double, ptr %arrayidx205, align 8122  %mul.i.i = fmul double %tmp13, %tmp14123  %add207 = fadd double undef, %mul.i.i124  %inc209 = add nuw nsw i32 %i194.0440, 1125  %exitcond = icmp eq i32 %inc209, %size126  br i1 %exitcond, label %for.cond.cleanup198.loopexit, label %for.body199127}128 129 130; CHECK: Zone not computed131