xref: /llvm-project/polly/test/ScheduleOptimizer/ManualOptimization/distribute_heuristic.ll (revision e1f056f692d869708c1898d9d65a69ac5584a0ed)
1; RUN: opt %loadNPMPolly -polly-reschedule=0 -polly-pragma-based-opts=1 '-passes=print<polly-opt-isl>' -disable-output < %s | FileCheck %s --match-full-lines --check-prefix=ON
2; RUN: opt %loadNPMPolly -polly-reschedule=0 -polly-pragma-based-opts=0 '-passes=print<polly-opt-isl>' -disable-output < %s | FileCheck %s --match-full-lines --check-prefix=OFF
3;
4define void @func(i32 %n, ptr noalias nonnull %A, ptr noalias nonnull %B) {
5entry:
6  br label %for
7
8for:
9  %j = phi i32 [0, %entry], [%j.inc, %inc]
10  %j.cmp = icmp slt i32 %j, %n
11  br i1 %j.cmp, label %body, label %exit
12
13    body:
14      store double 42.0, ptr %A
15      %c = fadd double 21.0, 21.0
16      store double %c, ptr %B
17      br label %inc
18
19inc:
20  %j.inc = add nuw nsw i32 %j, 1
21  br label %for, !llvm.loop !2
22
23exit:
24  br label %return
25
26return:
27  ret void
28}
29
30
31!2 = distinct !{!2, !5}
32!5 = !{!"llvm.loop.distribute.enable"}
33
34
35; ON: Printing analysis 'Polly - Optimize schedule of SCoP' for region: 'for => return' in function 'func':
36; ON:      Calculated schedule:
37; ON-NEXT: domain: "[n] -> { Stmt_body[i0] : 0 <= i0 < n; Stmt_body_b[i0] : 0 <= i0 < n }"
38; ON-NEXT: child:
39; ON-NEXT:   sequence:
40; ON-NEXT:   - filter: "[n] -> { Stmt_body[i0] : 0 <= i0 < n }"
41; ON-NEXT:     child:
42; ON-NEXT:       schedule: "[n] -> [{ Stmt_body[i0] -> [(i0)] }]"
43; ON-NEXT:   - filter: "[n] -> { Stmt_body_b[i0] : 0 <= i0 < n }"
44; ON-NEXT:     child:
45; ON-NEXT:       schedule: "[n] -> [{ Stmt_body_b[i0] -> [(i0)] }]"
46
47
48; OFF-LABEL: Printing analysis 'Polly - Optimize schedule of SCoP' for region: 'for => return' in function 'func':
49; OFF-NEXT:  Calculated schedule:
50; OFF-NEXT:    n/a
51
52