@@ -557,3 +557,174 @@ body: |
557
557
S_ENDPGM 0, implicit $agpr0_agpr1_agpr2_agpr3
558
558
559
559
...
560
+
561
+ ---
562
+ name : vreg_128_mixed_sgpr_vgpr_copy_sources_0
563
+ tracksRegLiveness : true
564
+ body : |
565
+ bb.0:
566
+ liveins: $vgpr0, $vgpr1, $sgpr8, $sgpr9
567
+
568
+ ; CHECK-LABEL: name: vreg_128_mixed_sgpr_vgpr_copy_sources_0
569
+ ; CHECK: liveins: $vgpr0, $vgpr1, $sgpr8, $sgpr9
570
+ ; CHECK-NEXT: {{ $}}
571
+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
572
+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
573
+ ; CHECK-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $sgpr8
574
+ ; CHECK-NEXT: [[COPY3:%[0-9]+]]:sreg_32 = COPY $sgpr9
575
+ ; CHECK-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vreg_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub3
576
+ ; CHECK-NEXT: [[COPY4:%[0-9]+]]:areg_128 = COPY [[REG_SEQUENCE]]
577
+ ; CHECK-NEXT: $agpr0_agpr1_agpr2_agpr3 = COPY [[COPY4]]
578
+ ; CHECK-NEXT: S_ENDPGM 0, implicit $agpr0_agpr1_agpr2_agpr3
579
+ %0:vgpr_32 = COPY $vgpr0
580
+ %1:vgpr_32 = COPY $vgpr1
581
+ %2:sreg_32 = COPY $sgpr8
582
+ %3:sreg_32 = COPY $sgpr9
583
+ %4:vreg_128 = REG_SEQUENCE %0, %subreg.sub0, %1, %subreg.sub1, %2, %subreg.sub2, %3, %subreg.sub3
584
+ %5:areg_128 = COPY %4
585
+ $agpr0_agpr1_agpr2_agpr3 = COPY %5
586
+ S_ENDPGM 0, implicit $agpr0_agpr1_agpr2_agpr3
587
+
588
+ ...
589
+
590
+ ---
591
+ name : vreg_128_mixed_sgpr_vgpr_copy_sources_1
592
+ tracksRegLiveness : true
593
+ body : |
594
+ bb.0:
595
+ liveins: $vgpr0, $sgpr8, $sgpr9, $sgpr10
596
+
597
+ ; CHECK-LABEL: name: vreg_128_mixed_sgpr_vgpr_copy_sources_1
598
+ ; CHECK: liveins: $vgpr0, $sgpr8, $sgpr9, $sgpr10
599
+ ; CHECK-NEXT: {{ $}}
600
+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
601
+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr8
602
+ ; CHECK-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $sgpr9
603
+ ; CHECK-NEXT: [[COPY3:%[0-9]+]]:sreg_32 = COPY $sgpr10
604
+ ; CHECK-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vreg_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub3
605
+ ; CHECK-NEXT: [[COPY4:%[0-9]+]]:areg_128 = COPY [[REG_SEQUENCE]]
606
+ ; CHECK-NEXT: $agpr0_agpr1_agpr2_agpr3 = COPY [[COPY4]]
607
+ ; CHECK-NEXT: S_ENDPGM 0, implicit $agpr0_agpr1_agpr2_agpr3
608
+ %0:vgpr_32 = COPY $vgpr0
609
+ %1:sreg_32 = COPY $sgpr8
610
+ %2:sreg_32 = COPY $sgpr9
611
+ %3:sreg_32 = COPY $sgpr10
612
+ %4:vreg_128 = REG_SEQUENCE %0, %subreg.sub0, %1, %subreg.sub1, %2, %subreg.sub2, %3, %subreg.sub3
613
+ %5:areg_128 = COPY %4
614
+ $agpr0_agpr1_agpr2_agpr3 = COPY %5
615
+ S_ENDPGM 0, implicit $agpr0_agpr1_agpr2_agpr3
616
+
617
+ ...
618
+
619
+ ---
620
+ name : vreg_128_mixed_sgpr_vgpr_copy_sources_2
621
+ tracksRegLiveness : true
622
+ body : |
623
+ bb.0:
624
+ liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $sgpr8
625
+
626
+ ; CHECK-LABEL: name: vreg_128_mixed_sgpr_vgpr_copy_sources_2
627
+ ; CHECK: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $sgpr8
628
+ ; CHECK-NEXT: {{ $}}
629
+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
630
+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
631
+ ; CHECK-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2
632
+ ; CHECK-NEXT: [[COPY3:%[0-9]+]]:sreg_32 = COPY $sgpr8
633
+ ; CHECK-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vreg_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub3
634
+ ; CHECK-NEXT: [[COPY4:%[0-9]+]]:areg_128 = COPY [[REG_SEQUENCE]]
635
+ ; CHECK-NEXT: $agpr0_agpr1_agpr2_agpr3 = COPY [[COPY4]]
636
+ ; CHECK-NEXT: S_ENDPGM 0, implicit $agpr0_agpr1_agpr2_agpr3
637
+ %0:vgpr_32 = COPY $vgpr0
638
+ %1:vgpr_32 = COPY $vgpr1
639
+ %2:vgpr_32 = COPY $vgpr2
640
+ %3:sreg_32 = COPY $sgpr8
641
+ %4:vreg_128 = REG_SEQUENCE %0, %subreg.sub0, %1, %subreg.sub1, %2, %subreg.sub2, %3, %subreg.sub3
642
+ %5:areg_128 = COPY %4
643
+ $agpr0_agpr1_agpr2_agpr3 = COPY %5
644
+ S_ENDPGM 0, implicit $agpr0_agpr1_agpr2_agpr3
645
+
646
+ ...
647
+
648
+ ---
649
+ name : vreg_128_mixed_sgpr_vgpr_imm_sources_0
650
+ tracksRegLiveness : true
651
+ body : |
652
+ bb.0:
653
+ ; CHECK-LABEL: name: vreg_128_mixed_sgpr_vgpr_imm_sources_0
654
+ ; CHECK: [[S_MOV_B32_:%[0-9]+]]:sgpr_32 = S_MOV_B32 0
655
+ ; CHECK-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 1, implicit $exec
656
+ ; CHECK-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vreg_128 = REG_SEQUENCE [[S_MOV_B32_]], %subreg.sub0, [[V_MOV_B32_e32_]], %subreg.sub1, [[S_MOV_B32_]], %subreg.sub2, [[V_MOV_B32_e32_]], %subreg.sub3
657
+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:areg_128 = COPY [[REG_SEQUENCE]]
658
+ ; CHECK-NEXT: $agpr0_agpr1_agpr2_agpr3 = COPY [[COPY]]
659
+ ; CHECK-NEXT: S_ENDPGM 0, implicit $agpr0_agpr1_agpr2_agpr3
660
+ %0:sgpr_32 = S_MOV_B32 0
661
+ %1:vgpr_32 = V_MOV_B32_e32 1, implicit $exec
662
+ %2:vreg_128 = REG_SEQUENCE %0, %subreg.sub0, %1, %subreg.sub1, %0, %subreg.sub2, %1, %subreg.sub3
663
+ %3:areg_128 = COPY %2
664
+ $agpr0_agpr1_agpr2_agpr3 = COPY %3
665
+ S_ENDPGM 0, implicit $agpr0_agpr1_agpr2_agpr3
666
+
667
+ ...
668
+
669
+ ---
670
+ name : vreg_128_mixed_sgpr_vgpr_imm_sources_1
671
+ tracksRegLiveness : true
672
+ body : |
673
+ bb.0:
674
+ ; CHECK-LABEL: name: vreg_128_mixed_sgpr_vgpr_imm_sources_1
675
+ ; CHECK: [[S_MOV_B32_:%[0-9]+]]:sgpr_32 = S_MOV_B32 999
676
+ ; CHECK-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 1, implicit $exec
677
+ ; CHECK-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vreg_128 = REG_SEQUENCE [[S_MOV_B32_]], %subreg.sub0, [[V_MOV_B32_e32_]], %subreg.sub1, [[S_MOV_B32_]], %subreg.sub2, [[V_MOV_B32_e32_]], %subreg.sub3
678
+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:areg_128 = COPY [[REG_SEQUENCE]]
679
+ ; CHECK-NEXT: $agpr0_agpr1_agpr2_agpr3 = COPY [[COPY]]
680
+ ; CHECK-NEXT: S_ENDPGM 0, implicit $agpr0_agpr1_agpr2_agpr3
681
+ %0:sgpr_32 = S_MOV_B32 999
682
+ %1:vgpr_32 = V_MOV_B32_e32 1, implicit $exec
683
+ %2:vreg_128 = REG_SEQUENCE %0, %subreg.sub0, %1, %subreg.sub1, %0, %subreg.sub2, %1, %subreg.sub3
684
+ %3:areg_128 = COPY %2
685
+ $agpr0_agpr1_agpr2_agpr3 = COPY %3
686
+ S_ENDPGM 0, implicit $agpr0_agpr1_agpr2_agpr3
687
+
688
+ ...
689
+
690
+ ---
691
+ name : vreg_128_mixed_sgpr_vgpr_imm_sources_2
692
+ tracksRegLiveness : true
693
+ body : |
694
+ bb.0:
695
+ ; CHECK-LABEL: name: vreg_128_mixed_sgpr_vgpr_imm_sources_2
696
+ ; CHECK: [[S_MOV_B32_:%[0-9]+]]:sgpr_32 = S_MOV_B32 999
697
+ ; CHECK-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 1, implicit $exec
698
+ ; CHECK-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vreg_128 = REG_SEQUENCE [[V_MOV_B32_e32_]], %subreg.sub0, [[S_MOV_B32_]], %subreg.sub1, [[S_MOV_B32_]], %subreg.sub2, [[S_MOV_B32_]], %subreg.sub3
699
+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:areg_128 = COPY [[REG_SEQUENCE]]
700
+ ; CHECK-NEXT: $agpr0_agpr1_agpr2_agpr3 = COPY [[COPY]]
701
+ ; CHECK-NEXT: S_ENDPGM 0, implicit $agpr0_agpr1_agpr2_agpr3
702
+ %0:sgpr_32 = S_MOV_B32 999
703
+ %1:vgpr_32 = V_MOV_B32_e32 1, implicit $exec
704
+ %2:vreg_128 = REG_SEQUENCE %1, %subreg.sub0, %0, %subreg.sub1, %0, %subreg.sub2, %0, %subreg.sub3
705
+ %3:areg_128 = COPY %2
706
+ $agpr0_agpr1_agpr2_agpr3 = COPY %3
707
+ S_ENDPGM 0, implicit $agpr0_agpr1_agpr2_agpr3
708
+
709
+ ...
710
+
711
+ ---
712
+ name : vreg_128_mixed_sgpr_vgpr_imm_sources_3
713
+ tracksRegLiveness : true
714
+ body : |
715
+ bb.0:
716
+ ; CHECK-LABEL: name: vreg_128_mixed_sgpr_vgpr_imm_sources_3
717
+ ; CHECK: [[S_MOV_B32_:%[0-9]+]]:sgpr_32 = S_MOV_B32 8
718
+ ; CHECK-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 123, implicit $exec
719
+ ; CHECK-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vreg_128 = REG_SEQUENCE [[V_MOV_B32_e32_]], %subreg.sub0, [[V_MOV_B32_e32_]], %subreg.sub1, [[V_MOV_B32_e32_]], %subreg.sub2, [[S_MOV_B32_]], %subreg.sub3
720
+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:areg_128 = COPY [[REG_SEQUENCE]]
721
+ ; CHECK-NEXT: $agpr0_agpr1_agpr2_agpr3 = COPY [[COPY]]
722
+ ; CHECK-NEXT: S_ENDPGM 0, implicit $agpr0_agpr1_agpr2_agpr3
723
+ %0:sgpr_32 = S_MOV_B32 8
724
+ %1:vgpr_32 = V_MOV_B32_e32 123, implicit $exec
725
+ %2:vreg_128 = REG_SEQUENCE %1, %subreg.sub0, %1, %subreg.sub1, %1, %subreg.sub2, %0, %subreg.sub3
726
+ %3:areg_128 = COPY %2
727
+ $agpr0_agpr1_agpr2_agpr3 = COPY %3
728
+ S_ENDPGM 0, implicit $agpr0_agpr1_agpr2_agpr3
729
+
730
+ ...
0 commit comments