|
8 | 8 | define void @foo(i64 %n) {
|
9 | 9 | ; CHECK: VPlan 'HCFGBuilder: Plain CFG
|
10 | 10 | ; CHECK-NEXT: {
|
11 |
| -; CHECK-NEXT: Live-in vp<[[VTC:%.+]]> = vector-trip-count |
12 |
| -; CHECK-NEXT: Live-in ir<8> = original trip-count |
13 | 11 | ; CHECK-EMPTY:
|
14 | 12 | ; CHECK-NEXT: ir-bb<entry>:
|
15 |
| -; CHECK-NEXT: Successor(s): vector.ph |
| 13 | +; CHECK-NEXT: Successor(s): vector.body |
16 | 14 | ; CHECK-EMPTY:
|
17 |
| -; CHECK-NEXT: vector.ph: |
18 |
| -; CHECK-NEXT: Successor(s): vector loop |
| 15 | +; CHECK-NEXT: vector.body: |
| 16 | +; CHECK-NEXT: WIDEN-PHI ir<%outer.iv> = phi ir<0>, ir<%outer.iv.next> |
| 17 | +; CHECK-NEXT: EMIT ir<%gep.1> = getelementptr ir<@arr2>, ir<0>, ir<%outer.iv> |
| 18 | +; CHECK-NEXT: EMIT store ir<%outer.iv>, ir<%gep.1> |
| 19 | +; CHECK-NEXT: EMIT ir<%add> = add ir<%outer.iv>, ir<%n> |
| 20 | +; CHECK-NEXT: Successor(s): inner |
19 | 21 | ; CHECK-EMPTY:
|
20 |
| -; CHECK-NEXT: <x1> vector loop: { |
21 |
| -; CHECK-NEXT: vector.body: |
22 |
| -; CHECK-NEXT: WIDEN-PHI ir<%outer.iv> = phi ir<0>, ir<%outer.iv.next> |
23 |
| -; CHECK-NEXT: EMIT ir<%gep.1> = getelementptr ir<@arr2>, ir<0>, ir<%outer.iv> |
24 |
| -; CHECK-NEXT: EMIT store ir<%outer.iv>, ir<%gep.1> |
25 |
| -; CHECK-NEXT: EMIT ir<%add> = add ir<%outer.iv>, ir<%n> |
26 |
| -; CHECK-NEXT: Successor(s): inner |
27 |
| -; CHECK-EMPTY: |
28 |
| -; CHECK-NEXT: <x1> inner: { |
29 |
| -; CHECK-NEXT: inner: |
30 |
| -; CHECK-NEXT: WIDEN-PHI ir<%inner.iv> = phi ir<0>, ir<%inner.iv.next> |
31 |
| -; CHECK-NEXT: EMIT ir<%gep.2> = getelementptr ir<@arr>, ir<0>, ir<%inner.iv>, ir<%outer.iv> |
32 |
| -; CHECK-NEXT: EMIT store ir<%add>, ir<%gep.2> |
33 |
| -; CHECK-NEXT: EMIT ir<%inner.iv.next> = add ir<%inner.iv>, ir<1> |
34 |
| -; CHECK-NEXT: EMIT ir<%inner.ec> = icmp ir<%inner.iv.next>, ir<8> |
35 |
| -; CHECK-NEXT: EMIT branch-on-cond ir<%inner.ec> |
36 |
| -; CHECK-NEXT: No successors |
37 |
| -; CHECK-NEXT: } |
38 |
| -; CHECK-NEXT: Successor(s): outer.latch |
39 |
| -; CHECK-EMPTY: |
40 |
| -; CHECK-NEXT: outer.latch: |
41 |
| -; CHECK-NEXT: EMIT ir<%outer.iv.next> = add ir<%outer.iv>, ir<1> |
42 |
| -; CHECK-NEXT: EMIT ir<%outer.ec> = icmp ir<%outer.iv.next>, ir<8> |
43 |
| -; CHECK-NEXT: Successor(s): vector.latch |
44 |
| -; CHECK-EMPTY: |
45 |
| -; CHECK-NEXT: vector.latch: |
| 22 | +; CHECK-NEXT: <x1> inner: { |
| 23 | +; CHECK-NEXT: inner: |
| 24 | +; CHECK-NEXT: WIDEN-PHI ir<%inner.iv> = phi ir<0>, ir<%inner.iv.next> |
| 25 | +; CHECK-NEXT: EMIT ir<%gep.2> = getelementptr ir<@arr>, ir<0>, ir<%inner.iv>, ir<%outer.iv> |
| 26 | +; CHECK-NEXT: EMIT store ir<%add>, ir<%gep.2> |
| 27 | +; CHECK-NEXT: EMIT ir<%inner.iv.next> = add ir<%inner.iv>, ir<1> |
| 28 | +; CHECK-NEXT: EMIT ir<%inner.ec> = icmp ir<%inner.iv.next>, ir<8> |
| 29 | +; CHECK-NEXT: EMIT branch-on-cond ir<%inner.ec> |
46 | 30 | ; CHECK-NEXT: No successors
|
47 |
| -; CHECK-NEXT: } |
48 |
| -; CHECK-NEXT: Successor(s): middle.block |
49 |
| -; CHECK-EMPTY: |
50 |
| -; CHECK-NEXT: middle.block: |
51 |
| -; CHECK-NEXT: EMIT vp<[[C:%.+]]> = icmp eq ir<8>, vp<[[VTC]]> |
52 |
| -; CHECK-NEXT: EMIT branch-on-cond vp<[[C]]> |
53 |
| -; CHECK-NEXT: Successor(s): ir-bb<exit>, scalar.ph |
54 |
| -; CHECK-EMPTY: |
55 |
| -; CHECK-NEXT: scalar.ph: |
56 |
| -; CHECK-NEXT: Successor(s): ir-bb<outer.header> |
57 |
| -; CHECK-EMPTY: |
58 |
| -; CHECK-NEXT: ir-bb<outer.header>: |
59 |
| -; CHECK-NEXT: IR %outer.iv = phi i64 [ 0, %entry ], [ %outer.iv.next, %outer.latch ] |
60 |
| -; CHECK-NEXT: IR %gep.1 = getelementptr inbounds [8 x i64], ptr @arr2, i64 0, i64 %outer.iv |
61 |
| -; CHECK-NEXT: IR store i64 %outer.iv, ptr %gep.1, align 4 |
62 |
| -; CHECK-NEXT: IR %add = add nsw i64 %outer.iv, %n |
63 |
| -; CHECK-NEXT: No successors |
| 31 | +; CHECK-NEXT: } |
| 32 | +; CHECK-NEXT: Successor(s): outer.latch |
64 | 33 | ; CHECK-EMPTY:
|
65 |
| -; CHECK-NEXT: ir-bb<exit>: |
66 |
| -; CHECK-NEXT: No successors |
| 34 | +; CHECK-NEXT: outer.latch: |
| 35 | +; CHECK-NEXT: EMIT ir<%outer.iv.next> = add ir<%outer.iv>, ir<1> |
| 36 | +; CHECK-NEXT: EMIT ir<%outer.ec> = icmp ir<%outer.iv.next>, ir<8> |
| 37 | +; CHECK-NEXT: Successor(s): vector.body |
67 | 38 | ; CHECK-NEXT: }
|
68 | 39 | entry:
|
69 | 40 | br label %outer.header
|
|
0 commit comments