39 lines · plain
1; RUN: opt %loadNPMPolly -polly-pragma-based-opts=1 '-passes=polly-custom<opt-isl>' -polly-print-opt-isl -disable-output < %s | FileCheck %s --match-full-lines2; RUN: opt %loadNPMPolly -polly-pragma-based-opts=0 '-passes=polly-custom<opt-isl>' -polly-print-opt-isl -disable-output < %s | FileCheck %s --match-full-lines3;4; Unrolling with heuristic factor.5; Currently not supported and expected to be handled by LLVM's unroll pass.6;7define void @func(i32 %n, ptr noalias nonnull %A) {8entry:9 br label %for10 11for:12 %j = phi i32 [0, %entry], [%j.inc, %inc]13 %j.cmp = icmp slt i32 %j, %n14 br i1 %j.cmp, label %body, label %exit15 16 body:17 store double 42.0, ptr %A18 br label %inc19 20inc:21 %j.inc = add nuw nsw i32 %j, 122 br label %for, !llvm.loop !223 24exit:25 br label %return26 27return:28 ret void29}30 31 32!2 = distinct !{!2, !4}33!4 = !{!"llvm.loop.unroll.enable", i1 true}34 35 36; CHECK-LABEL: Printing analysis 'Polly - Optimize schedule of SCoP' for region: 'for => return' in function 'func':37; CHECK-NEXT: Calculated schedule:38; CHECK-NEXT: n/a39