@@ -603,4 +603,73 @@ body: |
603603 $x10 = COPY %9
604604 PseudoRET implicit $x10
605605 ...
606-
606+ ---
607+ name : recurrence
608+ tracksRegLiveness : true
609+ body : |
610+ ; CHECK-LABEL: name: recurrence
611+ ; CHECK: bb.0:
612+ ; CHECK-NEXT: successors: %bb.1(0x80000000)
613+ ; CHECK-NEXT: liveins: $x8
614+ ; CHECK-NEXT: {{ $}}
615+ ; CHECK-NEXT: %avl:gprnox0 = COPY $x8
616+ ; CHECK-NEXT: %start:vr = PseudoVMV_V_I_M1 $noreg, 0, -1, 3 /* e8 */, 3 /* ta, ma */
617+ ; CHECK-NEXT: PseudoBR %bb.1
618+ ; CHECK-NEXT: {{ $}}
619+ ; CHECK-NEXT: bb.1:
620+ ; CHECK-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
621+ ; CHECK-NEXT: {{ $}}
622+ ; CHECK-NEXT: %phi:vr = PHI %start, %bb.0, %inc, %bb.1
623+ ; CHECK-NEXT: %inc:vr = PseudoVADD_VI_M1 $noreg, %phi, 1, -1, 3 /* e8 */, 3 /* ta, ma */
624+ ; CHECK-NEXT: BNE $noreg, $noreg, %bb.1
625+ ; CHECK-NEXT: {{ $}}
626+ ; CHECK-NEXT: bb.2:
627+ ; CHECK-NEXT: PseudoVSE8_V_M1 %inc, $noreg, %avl, 3 /* e8 */
628+ bb.0:
629+ liveins: $x8
630+ %avl:gprnox0 = COPY $x8
631+ %start:vr = PseudoVMV_V_I_M1 $noreg, 0, -1, 3 /* e8 */, 3, /* ta, ma */
632+ PseudoBR %bb.1
633+ bb.1:
634+ %phi:vr = PHI %start, %bb.0, %inc, %bb.1
635+ %inc:vr = PseudoVADD_VI_M1 $noreg, %phi, 1, -1, 3 /* e8 */, 3 /* ta, ma */
636+ BNE $noreg, $noreg, %bb.1
637+ bb.2:
638+ PseudoVSE8_V_M1 %inc, $noreg, %avl, 3 /* e8 */
639+ ...
640+ ---
641+ name : recurrence_cant_reduce
642+ tracksRegLiveness : true
643+ body : |
644+ ; CHECK-LABEL: name: recurrence_cant_reduce
645+ ; CHECK: bb.0:
646+ ; CHECK-NEXT: successors: %bb.1(0x80000000)
647+ ; CHECK-NEXT: liveins: $x8, $x9
648+ ; CHECK-NEXT: {{ $}}
649+ ; CHECK-NEXT: %avl1:gprnox0 = COPY $x8
650+ ; CHECK-NEXT: %avl2:gprnox0 = COPY $x8
651+ ; CHECK-NEXT: %start:vr = PseudoVMV_V_I_M1 $noreg, 0, %avl1, 3 /* e8 */, 3 /* ta, ma */
652+ ; CHECK-NEXT: PseudoBR %bb.1
653+ ; CHECK-NEXT: {{ $}}
654+ ; CHECK-NEXT: bb.1:
655+ ; CHECK-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
656+ ; CHECK-NEXT: {{ $}}
657+ ; CHECK-NEXT: %phi:vr = PHI %start, %bb.0, %inc, %bb.1
658+ ; CHECK-NEXT: %inc:vr = PseudoVADD_VI_M1 $noreg, %phi, 1, %avl1, 3 /* e8 */, 3 /* ta, ma */
659+ ; CHECK-NEXT: BNE $noreg, $noreg, %bb.1
660+ ; CHECK-NEXT: {{ $}}
661+ ; CHECK-NEXT: bb.2:
662+ ; CHECK-NEXT: PseudoVSE8_V_M1 %inc, $noreg, %avl2, 3 /* e8 */
663+ bb.0:
664+ liveins: $x8, $x9
665+ %avl1:gprnox0 = COPY $x8
666+ %avl2:gprnox0 = COPY $x8
667+ %start:vr = PseudoVMV_V_I_M1 $noreg, 0, -1, 3 /* e8 */, 3, /* ta, ma */
668+ PseudoBR %bb.1
669+ bb.1:
670+ %phi:vr = PHI %start, %bb.0, %inc, %bb.1
671+ %inc:vr = PseudoVADD_VI_M1 $noreg, %phi, 1, %avl1, 3 /* e8 */, 3 /* ta, ma */
672+ BNE $noreg, $noreg, %bb.1
673+ bb.2:
674+ PseudoVSE8_V_M1 %inc, $noreg, %avl2, 3 /* e8 */
675+ ...
0 commit comments