@@ -531,3 +531,138 @@ body: |
531
531
%1:vgpr_32 = V_MOV_B32_e32 %0, implicit $exec
532
532
S_NOP 0, implicit %1
533
533
...
534
+ ---
535
+ name : movrel
536
+ tracksRegLiveness : true
537
+ body : |
538
+ ; RPU-LABEL: name: movrel
539
+ ; RPU: bb.0:
540
+ ; RPU-NEXT: Live-in:
541
+ ; RPU-NEXT: SGPR VGPR
542
+ ; RPU-NEXT: 0 0
543
+ ; RPU-NEXT: 0 0 $sgpr0 = COPY $sgpr1
544
+ ; RPU-NEXT: 0 0
545
+ ; RPU-NEXT: 0 0 $sgpr2_sgpr3 = S_GETPC_B64
546
+ ; RPU-NEXT: 0 0
547
+ ; RPU-NEXT: 0 0 $sgpr1 = COPY killed $sgpr3
548
+ ; RPU-NEXT: 0 0
549
+ ; RPU-NEXT: 0 0 $sgpr0_sgpr1_sgpr2_sgpr3 = S_LOAD_DWORDX4_IMM $sgpr0_sgpr1, 0, 0
550
+ ; RPU-NEXT: 0 0
551
+ ; RPU-NEXT: 0 0 $sgpr0 = S_BUFFER_LOAD_DWORD_IMM $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0
552
+ ; RPU-NEXT: 0 0
553
+ ; RPU-NEXT: 0 0 undef %0.sub5:vreg_512 = V_MOV_B32_e32 5, implicit $exec
554
+ ; RPU-NEXT: 0 0
555
+ ; RPU-NEXT: 0 0 S_CMP_GT_U32 $sgpr0, 15, implicit-def $scc
556
+ ; RPU-NEXT: 0 0
557
+ ; RPU-NEXT: 0 0 S_CBRANCH_SCC1 %bb.2, implicit $scc
558
+ ; RPU-NEXT: 0 0
559
+ ; RPU-NEXT: 0 0 S_BRANCH %bb.1
560
+ ; RPU-NEXT: 0 0
561
+ ; RPU-NEXT: Live-out:
562
+ ; RPU-NEXT: Live-thr:
563
+ ; RPU-NEXT: 0 0
564
+ ; RPU-NEXT: bb.1:
565
+ ; RPU-NEXT: Live-in:
566
+ ; RPU-NEXT: SGPR VGPR
567
+ ; RPU-NEXT: 0 0
568
+ ; RPU-NEXT: 0 1 undef %0.sub5:vreg_512 = V_MOV_B32_e32 5, implicit $exec
569
+ ; RPU-NEXT: 0 1
570
+ ; RPU-NEXT: 0 1 $m0 = S_MOV_B32 killed $sgpr0
571
+ ; RPU-NEXT: 0 1
572
+ ; RPU-NEXT: 0 1 %0:vreg_512 = V_INDIRECT_REG_WRITE_MOVREL_B32_V16 %0:vreg_512(tied-def 0), 42, 3, implicit $m0, implicit $exec
573
+ ; RPU-NEXT: 0 1
574
+ ; RPU-NEXT: Live-out: %0:0000000000000C00
575
+ ; RPU-NEXT: Live-thr:
576
+ ; RPU-NEXT: 0 0
577
+ ; RPU-NEXT: bb.2:
578
+ ; RPU-NEXT: Live-in: %0:0000000000000C00
579
+ ; RPU-NEXT: SGPR VGPR
580
+ ; RPU-NEXT: 0 1
581
+ ; RPU-NEXT: 0 1 %1:vgpr_32 = V_CVT_F32_UBYTE0_e64 %0.sub5:vreg_512, 0, 0, implicit $exec
582
+ ; RPU-NEXT: 0 1
583
+ ; RPU-NEXT: 0 1 EXP_DONE 0, %1:vgpr_32, undef %2:vgpr_32, undef %3:vgpr_32, undef %4:vgpr_32, -1, 0, 1, implicit $exec
584
+ ; RPU-NEXT: 0 0
585
+ ; RPU-NEXT: 0 0 S_ENDPGM 0
586
+ ; RPU-NEXT: 0 0
587
+ ; RPU-NEXT: Live-out:
588
+ ; RPU-NEXT: Live-thr:
589
+ ; RPU-NEXT: 0 0
590
+ ;
591
+ ; RPD-LABEL: name: movrel
592
+ ; RPD: bb.0:
593
+ ; RPD-NEXT: Live-in:
594
+ ; RPD-NEXT: SGPR VGPR
595
+ ; RPD-NEXT: 0 0
596
+ ; RPD-NEXT: 0 0 $sgpr0 = COPY $sgpr1
597
+ ; RPD-NEXT: 0 0
598
+ ; RPD-NEXT: 0 0 $sgpr2_sgpr3 = S_GETPC_B64
599
+ ; RPD-NEXT: 0 0
600
+ ; RPD-NEXT: 0 0 $sgpr1 = COPY killed $sgpr3
601
+ ; RPD-NEXT: 0 0
602
+ ; RPD-NEXT: 0 0 $sgpr0_sgpr1_sgpr2_sgpr3 = S_LOAD_DWORDX4_IMM $sgpr0_sgpr1, 0, 0
603
+ ; RPD-NEXT: 0 0
604
+ ; RPD-NEXT: 0 0 $sgpr0 = S_BUFFER_LOAD_DWORD_IMM $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0
605
+ ; RPD-NEXT: 0 0
606
+ ; RPD-NEXT: 0 1 undef %0.sub5:vreg_512 = V_MOV_B32_e32 5, implicit $exec
607
+ ; RPD-NEXT: 0 1
608
+ ; RPD-NEXT: 0 1 S_CMP_GT_U32 $sgpr0, 15, implicit-def $scc
609
+ ; RPD-NEXT: 0 1
610
+ ; RPD-NEXT: 0 1 S_CBRANCH_SCC1 %bb.2, implicit $scc
611
+ ; RPD-NEXT: 0 1
612
+ ; RPD-NEXT: 0 1 S_BRANCH %bb.1
613
+ ; RPD-NEXT: 0 1
614
+ ; RPD-NEXT: Live-out: %0:0000000000000C00
615
+ ; RPD-NEXT: mis LIS:
616
+ ; RPD-NEXT: %0:L0000000000000C00 isn't found in LIS reported set
617
+ ; RPD-NEXT: Live-thr:
618
+ ; RPD-NEXT: 0 0
619
+ ; RPD-NEXT: bb.1:
620
+ ; RPD-NEXT: Live-in:
621
+ ; RPD-NEXT: SGPR VGPR
622
+ ; RPD-NEXT: 0 0
623
+ ; RPD-NEXT: 0 1 undef %0.sub5:vreg_512 = V_MOV_B32_e32 5, implicit $exec
624
+ ; RPD-NEXT: 0 1
625
+ ; RPD-NEXT: 0 1 $m0 = S_MOV_B32 killed $sgpr0
626
+ ; RPD-NEXT: 0 1
627
+ ; RPD-NEXT: 0 16 %0:vreg_512 = V_INDIRECT_REG_WRITE_MOVREL_B32_V16 %0:vreg_512(tied-def 0), 42, 3, implicit $m0, implicit $exec
628
+ ; RPD-NEXT: 0 1
629
+ ; RPD-NEXT: Live-out: %0:0000000000000C00
630
+ ; RPD-NEXT: Live-thr:
631
+ ; RPD-NEXT: 0 0
632
+ ; RPD-NEXT: bb.2:
633
+ ; RPD-NEXT: Live-in: %0:0000000000000C00
634
+ ; RPD-NEXT: SGPR VGPR
635
+ ; RPD-NEXT: 0 1
636
+ ; RPD-NEXT: 0 2 %1:vgpr_32 = V_CVT_F32_UBYTE0_e64 %0.sub5:vreg_512, 0, 0, implicit $exec
637
+ ; RPD-NEXT: 0 1
638
+ ; RPD-NEXT: 0 1 EXP_DONE 0, %1:vgpr_32, undef %2:vgpr_32, undef %3:vgpr_32, undef %4:vgpr_32, -1, 0, 1, implicit $exec
639
+ ; RPD-NEXT: 0 0
640
+ ; RPD-NEXT: 0 0 S_ENDPGM 0
641
+ ; RPD-NEXT: 0 0
642
+ ; RPD-NEXT: Live-out:
643
+ ; RPD-NEXT: Live-thr:
644
+ ; RPD-NEXT: 0 0
645
+ bb.0:
646
+ liveins: $sgpr1
647
+ $sgpr0 = COPY $sgpr1
648
+ $sgpr2_sgpr3 = S_GETPC_B64
649
+ $sgpr1 = COPY killed $sgpr3
650
+ $sgpr0_sgpr1_sgpr2_sgpr3 = S_LOAD_DWORDX4_IMM killed $sgpr0_sgpr1, 0, 0
651
+ $sgpr0 = S_BUFFER_LOAD_DWORD_IMM killed $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0
652
+ undef %47.sub5:vreg_512 = V_MOV_B32_e32 5, implicit $exec
653
+ S_CMP_GT_U32 $sgpr0, 15, implicit-def $scc
654
+ S_CBRANCH_SCC1 %bb.2, implicit $scc
655
+ S_BRANCH %bb.1
656
+
657
+ bb.1:
658
+ liveins: $sgpr0
659
+ undef %47.sub5:vreg_512 = V_MOV_B32_e32 5, implicit $exec
660
+ $m0 = S_MOV_B32 killed $sgpr0
661
+ %47:vreg_512 = V_INDIRECT_REG_WRITE_MOVREL_B32_V16 %47:vreg_512, 42, 3, implicit $m0, implicit $exec
662
+
663
+ bb.2:
664
+
665
+ %49:vgpr_32 = V_CVT_F32_UBYTE0_e64 %47.sub5:vreg_512, 0, 0, implicit $exec
666
+ EXP_DONE 0, %49:vgpr_32, undef %51:vgpr_32, undef %53:vgpr_32, undef %55:vgpr_32, -1, 0, 1, implicit $exec
667
+ S_ENDPGM 0
668
+ ...
0 commit comments