Lines Matching refs:loop

1 ; RUN: opt < %s -S -loop-unroll -unroll-threshold=30 | FileCheck %s
2 ; RUN: opt < %s -S -loop-unroll -unroll-threshold=30 -unroll-allow-peeling=false | FileCheck %s --c…
7 ; CHECK: loop.peel:
8 ; CHECK: loop:
12 ; DISABLE-NOT: loop.peel:
14 br label %loop
16 loop:
17 %i = phi i32 [ 0, %entry ], [ %inc, %loop ]
18 %sum = phi i32 [ 0, %entry ], [ %incsum, %loop ]
19 %plus = phi i32 [ %a, %entry ], [ %b, %loop ]
25 br i1 %cmp, label %loop, label %exit
32 ; This loop should be peeled twice because it has a Phi which becomes invariant
35 ; CHECK: loop.peel{{.*}}:
36 ; CHECK: loop.peel{{.*}}:
42 br label %loop
44 loop:
45 %i = phi i32 [ 0, %entry ], [ %inc, %loop ]
46 %sum = phi i32 [ 0, %entry ], [ %incsum, %loop ]
47 %half.inv = phi i32 [ %a, %entry ], [ %b, %loop ]
48 %plus = phi i32 [ %a, %entry ], [ %half.inv, %loop ]
54 br i1 %cmp, label %loop, label %exit
61 ; This loop should be peeled thrice because it has a Phi which becomes invariant
64 ; CHECK: loop.peel{{.*}}:
65 ; CHECK: loop.peel{{.*}}:
66 ; CHECK: loop.peel{{.*}}:
73 br label %loop
75 loop:
76 %i = phi i32 [ 0, %entry ], [ %inc, %loop ]
77 %sum = phi i32 [ 0, %entry ], [ %incsum, %loop ]
78 %half.inv = phi i32 [ %a, %entry ], [ %b, %loop ]
79 %half.inv.2 = phi i32 [ %a, %entry ], [ %half.inv, %loop ]
80 %plus = phi i32 [ %a, %entry ], [ %half.inv.2, %loop ]
86 br i1 %cmp, label %loop, label %exit
93 ; This loop should normally be peeled thrice because it has a Phi which becomes
94 ; invariant starting from 4th iteration, but the size of the loop only allows
96 ; code. Thus, %plus Phi node should stay in loop even despite its backedge
99 ; CHECK: loop.peel{{.*}}:
100 ; CHECK: loop.peel{{.*}}:
103 ; CHECK: %plus = phi i32 [ %a, {{.*}} ], [ %b, %loop ]
107 br label %loop
109 loop:
110 %i = phi i32 [ 0, %entry ], [ %inc, %loop ]
111 %sum = phi i32 [ 0, %entry ], [ %incsum, %loop ]
112 %half.inv = phi i32 [ %a, %entry ], [ %b, %loop ]
113 %half.inv.2 = phi i32 [ %a, %entry ], [ %half.inv, %loop ]
114 %plus = phi i32 [ %a, %entry ], [ %half.inv.2, %loop ]
127 br i1 %cmp, label %loop, label %exit
136 ; CHECK-NOT: loop.peel{{.*}}:
137 ; CHECK: loop:
142 br label %loop
144 loop:
145 %i = phi i32 [ 0, %entry ], [ %inc, %loop ]
146 %sum = phi i32 [ 0, %entry ], [ %incsum2, %loop ]
147 %plus = phi i32 [ %a, %entry ], [ %b, %loop ]
167 br i1 %cmp, label %loop, label %exit
175 ; TODO: Actually this loop should be partially unrolled with factor 2.
177 ; CHECK-NOT: loop.peel{{.*}}:
178 ; CHECK: loop:
184 br label %loop
186 loop:
187 %i = phi i32 [ 0, %entry ], [ %inc, %loop ]
188 %phi.a = phi i32 [ %a, %entry ], [ %phi.b, %loop ]
189 %phi.b = phi i32 [ %b, %entry ], [ %phi.a, %loop ]
190 %sum = phi i32 [ 0, %entry], [ %incsum, %loop ]
195 br i1 %cmp, label %loop, label %exit