@@ -587,3 +587,54 @@ body: |
587587 $w0 = COPY %7
588588 RET_ReallyLR implicit $w0
589589 ...
590+
591+ # PTEST is not redundant when it's Pg operand is a subregister copy, but not
592+ # from the first subregister of ppr2mul2
593+ ---
594+ name : whilege_x2_b64_s64_psub1
595+ alignment : 2
596+ tracksRegLiveness : true
597+ registers :
598+ - { id: 0, class: gpr64 }
599+ - { id: 1, class: gpr64 }
600+ - { id: 2, class: ppr }
601+ - { id: 3, class: ppr2mul2 }
602+ - { id: 4, class: ppr }
603+ - { id: 5, class: ppr }
604+ - { id: 6, class: gpr32 }
605+ - { id: 7, class: gpr32 }
606+ liveins :
607+ - { reg: '$x0', virtual-reg: '%0' }
608+ - { reg: '$x1', virtual-reg: '%1' }
609+ frameInfo :
610+ maxCallFrameSize : 0
611+ body : |
612+ bb.0.entry:
613+ liveins: $x0, $x1
614+
615+ ; CHECK-LABEL: name: whilege_x2_b64_s64_psub1
616+ ; CHECK: liveins: $x0, $x1
617+ ; CHECK-NEXT: {{ $}}
618+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr64 = COPY $x0
619+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr64 = COPY $x1
620+ ; CHECK-NEXT: [[PTRUE_D:%[0-9]+]]:ppr = PTRUE_D 31, implicit $vg
621+ ; CHECK-NEXT: [[WHILEGE_2PXX_D:%[0-9]+]]:ppr2mul2 = WHILEGE_2PXX_D [[COPY]], [[COPY1]], implicit-def $nzcv
622+ ; CHECK-NEXT: [[COPY2:%[0-9]+]]:ppr = COPY [[WHILEGE_2PXX_D]].psub0
623+ ; CHECK-NEXT: [[COPY3:%[0-9]+]]:ppr = COPY [[WHILEGE_2PXX_D]].psub1
624+ ; CHECK-NEXT: PTEST_PP killed [[PTRUE_D]], killed [[COPY3]], implicit-def $nzcv
625+ ; CHECK-NEXT: [[COPY4:%[0-9]+]]:gpr32 = COPY $wzr
626+ ; CHECK-NEXT: [[CSINCWr:%[0-9]+]]:gpr32 = CSINCWr [[COPY4]], $wzr, 0, implicit $nzcv
627+ ; CHECK-NEXT: $w0 = COPY [[CSINCWr]]
628+ ; CHECK-NEXT: RET_ReallyLR implicit $w0
629+ %0:gpr64 = COPY $x0
630+ %1:gpr64 = COPY $x1
631+ %2:ppr = PTRUE_D 31, implicit $vg
632+ %3:ppr2mul2 = WHILEGE_2PXX_D %0, %1, implicit-def $nzcv
633+ %4:ppr = COPY %3.psub0
634+ %5:ppr = COPY %3.psub1
635+ PTEST_PP killed %2, killed %5, implicit-def $nzcv
636+ %6:gpr32 = COPY $wzr
637+ %7:gpr32 = CSINCWr %6, $wzr, 0, implicit $nzcv
638+ $w0 = COPY %7
639+ RET_ReallyLR implicit $w0
640+ ...
0 commit comments