88
99define void @foo (ptr noalias %a , ptr noalias %b , ptr noalias %c , i64 %N ) {
1010; CHECK-LABEL: VPlan 'Initial VPlan for VF={2,4},UF>=1' {
11- ; CHECK-NEXT: Live-in vp<%0 > = VF * UF
12- ; CHECK-NEXT: Live-in vp<%1 > = vector-trip-count
13- ; CHECK-NEXT: Live-in vp<%2 > = backedge-taken count
11+ ; CHECK-NEXT: Live-in vp<[[VFxUF:%.+]] > = VF * UF
12+ ; CHECK-NEXT: Live-in vp<[[VTC:%.+]] > = vector-trip-count
13+ ; CHECK-NEXT: Live-in vp<[[BTC:%.+]] > = backedge-taken count
1414; CHECK-NEXT: Live-in ir<%N> = original trip-count
1515; CHECK-EMPTY:
1616; CHECK-NEXT: vector.ph:
1717; CHECK-NEXT: Successor(s): vector loop
1818; CHECK-EMPTY:
1919; CHECK-NEXT: <x1> vector loop: {
2020; CHECK-NEXT: vector.body:
21- ; CHECK-NEXT: EMIT vp<%3 > = CANONICAL-INDUCTION ir<0>, vp<%8 >
21+ ; CHECK-NEXT: EMIT vp<[[CAN_IV:%.+]] > = CANONICAL-INDUCTION ir<0>, vp<[[CAN_INC:%.*]] >
2222; CHECK-NEXT: WIDEN-INDUCTION %iv = phi 0, %iv.next, ir<1>
23- ; CHECK-NEXT: EMIT vp<%4 > = icmp ule ir<%iv>, vp<%2 >
23+ ; CHECK-NEXT: EMIT vp<[[CMP:%.+]] > = icmp ule ir<%iv>, vp<[[BTC]] >
2424; CHECK-NEXT: Successor(s): pred.store
2525; CHECK-EMPTY:
2626; CHECK-NEXT: <xVFxUF> pred.store: {
2727; CHECK-NEXT: pred.store.entry:
28- ; CHECK-NEXT: BRANCH-ON-MASK vp<%4 >
28+ ; CHECK-NEXT: BRANCH-ON-MASK vp<[[CMP]] >
2929; CHECK-NEXT: Successor(s): pred.store.if, pred.store.continue
3030; CHECK-EMPTY:
3131; CHECK-NEXT: pred.store.if:
32- ; CHECK-NEXT: vp<%5 > = SCALAR-STEPS vp<%3 >, ir<1>
33- ; CHECK-NEXT: REPLICATE ir<%arrayidx> = getelementptr inbounds ir<%b>, vp<%5 >
32+ ; CHECK-NEXT: vp<[[STEPS:%.+]] > = SCALAR-STEPS vp<[[CAN_IV]] >, ir<1>
33+ ; CHECK-NEXT: REPLICATE ir<%arrayidx> = getelementptr inbounds ir<%b>, vp<[[STEPS]] >
3434; CHECK-NEXT: REPLICATE ir<%0> = load ir<%arrayidx>
35- ; CHECK-NEXT: REPLICATE ir<%arrayidx2> = getelementptr inbounds ir<%c>, vp<%5 >
35+ ; CHECK-NEXT: REPLICATE ir<%arrayidx2> = getelementptr inbounds ir<%c>, vp<[[STEPS]] >
3636; CHECK-NEXT: REPLICATE ir<%1> = load ir<%arrayidx2>
37- ; CHECK-NEXT: REPLICATE ir<%arrayidx4> = getelementptr inbounds ir<%a>, vp<%5 >
37+ ; CHECK-NEXT: REPLICATE ir<%arrayidx4> = getelementptr inbounds ir<%a>, vp<[[STEPS]] >
3838; CHECK-NEXT: REPLICATE ir<%add> = add nsw ir<%1>, ir<%0>
3939; CHECK-NEXT: REPLICATE store ir<%add>, ir<%arrayidx4>
4040; CHECK-NEXT: Successor(s): pred.store.continue
4141; CHECK-EMPTY:
4242; CHECK-NEXT: pred.store.continue:
43- ; CHECK-NEXT: PHI-PREDICATED-INSTRUCTION vp<%6 > = ir<%0>
44- ; CHECK-NEXT: PHI-PREDICATED-INSTRUCTION vp<%7 > = ir<%1>
43+ ; CHECK-NEXT: PHI-PREDICATED-INSTRUCTION vp<[[P1:%.+]] > = ir<%0>
44+ ; CHECK-NEXT: PHI-PREDICATED-INSTRUCTION vp<[[P2:%.+]] > = ir<%1>
4545; CHECK-NEXT: No successors
4646; CHECK-NEXT: }
4747; CHECK-NEXT: Successor(s): for.body.2
4848; CHECK-EMPTY:
4949; CHECK-NEXT: for.body.2:
50- ; CHECK-NEXT: EMIT vp<%8 > = add vp<%3 >, vp<%0 >
51- ; CHECK-NEXT: EMIT branch-on-count vp<%8 >, vp<%1 >
50+ ; CHECK-NEXT: EMIT vp<[[CAN_INC:%.+]] > = add vp<[[CAN_IV]] >, vp<[[VFxUF]] >
51+ ; CHECK-NEXT: EMIT branch-on-count vp<[[CAN_INC]] >, vp<[[VTC]] >
5252; CHECK-NEXT: No successors
5353; CHECK-NEXT: }
5454;
@@ -74,26 +74,26 @@ for.cond.cleanup:
7474
7575define void @safe_dep (ptr %p ) {
7676; CHECK-LABEL: VPlan 'Initial VPlan for VF={2},UF>=1' {
77- ; CHECK-NEXT: Live-in vp<%0 > = VF * UF
78- ; CHECK-NEXT: Live-in vp<%1 > = vector-trip-count
77+ ; CHECK-NEXT: Live-in vp<[[VFxUF:%.+]] > = VF * UF
78+ ; CHECK-NEXT: Live-in vp<[[VTC:%.+]] > = vector-trip-count
7979; CHECK-NEXT: Live-in ir<512> = original trip-count
8080; CHECK-EMPTY:
8181; CHECK-NEXT: vector.ph:
8282; CHECK-NEXT: Successor(s): vector loop
8383; CHECK-EMPTY:
8484; CHECK-NEXT: <x1> vector loop: {
8585; CHECK-NEXT: vector.body:
86- ; CHECK-NEXT: EMIT vp<%2 > = CANONICAL-INDUCTION ir<0>, vp<%6 >
87- ; CHECK-NEXT: vp<%3 > = SCALAR-STEPS vp<%2 >, ir<1>
88- ; CHECK-NEXT: CLONE ir<%a1> = getelementptr ir<%p>, vp<%3 >
89- ; CHECK-NEXT: vp<%4 > = vector-pointer ir<%a1>
90- ; CHECK-NEXT: WIDEN ir<%v> = load vp<%4 >
91- ; CHECK-NEXT: CLONE ir<%offset> = add vp<%3 >, ir<100>
86+ ; CHECK-NEXT: EMIT vp<[[CAN_IV:%.+]] > = CANONICAL-INDUCTION ir<0>, vp<[[CAN_INC:%.+]] >
87+ ; CHECK-NEXT: vp<[[STEPS:%.+]] > = SCALAR-STEPS vp<[[CAN_IV]] >, ir<1>
88+ ; CHECK-NEXT: CLONE ir<%a1> = getelementptr ir<%p>, vp<[[STEPS]] >
89+ ; CHECK-NEXT: vp<[[VPTR1:%.+]] > = vector-pointer ir<%a1>
90+ ; CHECK-NEXT: WIDEN ir<%v> = load vp<[[VPTR1]] >
91+ ; CHECK-NEXT: CLONE ir<%offset> = add vp<[[STEPS]] >, ir<100>
9292; CHECK-NEXT: CLONE ir<%a2> = getelementptr ir<%p>, ir<%offset>
93- ; CHECK-NEXT: vp<%5 > = vector-pointer ir<%a2>
94- ; CHECK-NEXT: WIDEN store vp<%5 >, ir<%v>
95- ; CHECK-NEXT: EMIT vp<%6 > = add nuw vp<%2 >, vp<%0 >
96- ; CHECK-NEXT: EMIT branch-on-count vp<%6 >, vp<%1 >
93+ ; CHECK-NEXT: vp<[[VPTR2:%.+]] > = vector-pointer ir<%a2>
94+ ; CHECK-NEXT: WIDEN store vp<[[VPTR2]] >, ir<%v>
95+ ; CHECK-NEXT: EMIT vp<[[CAN_INC]] > = add nuw vp<[[CAN_IV]] >, vp<[[VFxUF]] >
96+ ; CHECK-NEXT: EMIT branch-on-count vp<[[CAN_INC]] >, vp<[[VTC]] >
9797; CHECK-NEXT: No successors
9898; CHECK-NEXT: }
9999;
0 commit comments