@@ -469,14 +469,43 @@ body: |
469
469
...
470
470
471
471
---
472
- # GCN-LABEL: test_scalef32_sr_pk_fp4_bf16_hazard
473
- # GCN: V_CVT_SCALEF32_SR_PK_FP4_BF16_e64
474
- # GCN: S_NOP 0
475
- # GCN: V_ADD_U32_e32
476
- name : test_scalef32_sr_pk_fp4_bf16_hazard
472
+ name : test_scalef32_sr_pk_fp4_bf16_opsel0_hazard
473
+ body : |
474
+ bb.0:
475
+ liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
476
+ ; GCN-LABEL: name: test_scalef32_sr_pk_fp4_bf16_opsel0_hazard
477
+ ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
478
+ ; GCN-NEXT: {{ $}}
479
+ ; GCN-NEXT: S_WAITCNT 0
480
+ ; GCN-NEXT: renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
481
+ ; GCN-NEXT: S_WAITCNT 3952
482
+ ; GCN-NEXT: early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_BF16_e64 0, killed $vgpr2, 0, killed $vgpr3, 0, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
483
+ ; GCN-NEXT: S_NOP 0
484
+ ; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr1, $vgpr1, implicit $exec
485
+ ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
486
+ S_WAITCNT 0
487
+ renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
488
+ S_WAITCNT 3952
489
+ early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_BF16_e64 0, killed $vgpr2, 0, killed $vgpr3, 0, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
490
+ renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr1, $vgpr1, implicit $exec
491
+ S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
492
+ ...
493
+
494
+ ---
495
+ name : test_scalef32_sr_pk_fp4_bf16_opsel3_hazard
477
496
body : |
478
497
bb.0:
479
498
liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
499
+ ; GCN-LABEL: name: test_scalef32_sr_pk_fp4_bf16_opsel3_hazard
500
+ ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
501
+ ; GCN-NEXT: {{ $}}
502
+ ; GCN-NEXT: S_WAITCNT 0
503
+ ; GCN-NEXT: renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
504
+ ; GCN-NEXT: S_WAITCNT 3952
505
+ ; GCN-NEXT: early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_BF16_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
506
+ ; GCN-NEXT: S_NOP 0
507
+ ; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr1, $vgpr1, implicit $exec
508
+ ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
480
509
S_WAITCNT 0
481
510
renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
482
511
S_WAITCNT 3952
@@ -486,14 +515,87 @@ body: |
486
515
...
487
516
488
517
---
489
- # GCN-LABEL: test_scalef32_sr_pk_fp4_f32_hazard
490
- # GCN: V_CVT_SCALEF32_SR_PK_FP4_F32_e64
491
- # GCN: S_NOP 0
492
- # GCN: V_ADD_U32_e32
493
- name : test_scalef32_sr_pk_fp4_f32_hazard
518
+ name : test_scalef32_sr_pk_fp4_bf16_opsel0_neg_fp4_as_src_hazard
519
+ body : |
520
+ bb.0:
521
+ liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
522
+ ; GCN-LABEL: name: test_scalef32_sr_pk_fp4_bf16_opsel0_neg_fp4_as_src_hazard
523
+ ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
524
+ ; GCN-NEXT: {{ $}}
525
+ ; GCN-NEXT: S_WAITCNT 0
526
+ ; GCN-NEXT: renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
527
+ ; GCN-NEXT: S_WAITCNT 3952
528
+ ; GCN-NEXT: early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_BF16_e64 0, killed $vgpr2, 0, killed $vgpr3, 0, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
529
+ ; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
530
+ ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
531
+ S_WAITCNT 0
532
+ renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
533
+ S_WAITCNT 3952
534
+ early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_BF16_e64 0, killed $vgpr2, 0, killed $vgpr3, 0, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
535
+ renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
536
+ S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
537
+ ...
538
+
539
+ ---
540
+ name : test_scalef32_sr_pk_fp4_bf16_opsel3_neg_fp4_as_src_hazard
541
+ body : |
542
+ bb.0:
543
+ liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
544
+ ; GCN-LABEL: name: test_scalef32_sr_pk_fp4_bf16_opsel3_neg_fp4_as_src_hazard
545
+ ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
546
+ ; GCN-NEXT: {{ $}}
547
+ ; GCN-NEXT: S_WAITCNT 0
548
+ ; GCN-NEXT: renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
549
+ ; GCN-NEXT: S_WAITCNT 3952
550
+ ; GCN-NEXT: early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_BF16_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
551
+ ; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
552
+ ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
553
+ S_WAITCNT 0
554
+ renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
555
+ S_WAITCNT 3952
556
+ early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_BF16_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
557
+ renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
558
+ S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
559
+ ...
560
+
561
+ ---
562
+ name : test_scalef32_sr_pk_fp4_f32_opsel0_hazard
563
+ body : |
564
+ bb.0:
565
+ liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5
566
+ ; GCN-LABEL: name: test_scalef32_sr_pk_fp4_f32_opsel0_hazard
567
+ ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5
568
+ ; GCN-NEXT: {{ $}}
569
+ ; GCN-NEXT: S_WAITCNT 0
570
+ ; GCN-NEXT: renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
571
+ ; GCN-NEXT: S_WAITCNT 3952
572
+ ; GCN-NEXT: early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_F32_e64 0, killed $vgpr2_vgpr3, 0, killed $vgpr4, 0, killed $vgpr5, killed $vgpr0, 0, implicit $mode, implicit $exec
573
+ ; GCN-NEXT: S_NOP 0
574
+ ; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr1, $vgpr1, implicit $exec
575
+ ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
576
+ S_WAITCNT 0
577
+ renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
578
+ S_WAITCNT 3952
579
+ early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_F32_e64 0, killed $vgpr2_vgpr3, 0, killed $vgpr4, 0, killed $vgpr5, killed $vgpr0, 0, implicit $mode, implicit $exec
580
+ renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr1, $vgpr1, implicit $exec
581
+ S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
582
+ ...
583
+
584
+ ---
585
+ name : test_scalef32_sr_pk_fp4_f32_opsel3_hazard
494
586
body : |
495
587
bb.0:
496
588
liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5
589
+ ; GCN-LABEL: name: test_scalef32_sr_pk_fp4_f32_opsel3_hazard
590
+ ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5
591
+ ; GCN-NEXT: {{ $}}
592
+ ; GCN-NEXT: S_WAITCNT 0
593
+ ; GCN-NEXT: renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
594
+ ; GCN-NEXT: S_WAITCNT 3952
595
+ ; GCN-NEXT: early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_F32_e64 8, killed $vgpr2_vgpr3, 0, killed $vgpr4, 4, killed $vgpr5, killed $vgpr0, 0, implicit $mode, implicit $exec
596
+ ; GCN-NEXT: S_NOP 0
597
+ ; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr1, $vgpr1, implicit $exec
598
+ ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
497
599
S_WAITCNT 0
498
600
renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
499
601
S_WAITCNT 3952
@@ -619,16 +721,42 @@ body: |
619
721
...
620
722
621
723
---
622
- # GCN-LABEL: test_cvt_scale_cvt_scale_hazard
623
- # GCN: V_CVT_SCALEF32_PK_FP4_F16_e64
624
- # GCN: S_NOP 0
625
- # GCN: V_CVT_SCALEF32_SR_PK_FP4_F16_e64
626
- # GCN: S_NOP 0
627
- # GCN: S_SETPC_B64_return
628
- name : test_cvt_scale_cvt_scale_hazard
724
+ name : test_cvt_scale_cvt_scalef32_sr_pk_fp4_f16_opsel0_hazard
725
+ body : |
726
+ bb.0:
727
+ liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
728
+ ; GCN-LABEL: name: test_cvt_scale_cvt_scalef32_sr_pk_fp4_f16_opsel0_hazard
729
+ ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
730
+ ; GCN-NEXT: {{ $}}
731
+ ; GCN-NEXT: S_WAITCNT 0
732
+ ; GCN-NEXT: renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 8, $vgpr0, 0, $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
733
+ ; GCN-NEXT: S_NOP 0
734
+ ; GCN-NEXT: early-clobber renamable $vgpr4 = V_CVT_SCALEF32_SR_PK_FP4_F16_e64 0, killed $vgpr0, 0, killed $vgpr3, 0, killed $vgpr1, killed $vgpr2, 0, implicit $mode, implicit $exec
735
+ ; GCN-NEXT: S_NOP 0
736
+ ; GCN-NEXT: $vgpr0 = V_MOV_B32_e32 killed $vgpr4, implicit $exec, implicit $exec
737
+ ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
738
+ S_WAITCNT 0
739
+ renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 8, $vgpr0, 0, $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
740
+ early-clobber renamable $vgpr4 = V_CVT_SCALEF32_SR_PK_FP4_F16_e64 0, killed $vgpr0, 0, killed $vgpr3, 0, killed $vgpr1, killed $vgpr2, 0, implicit $mode, implicit $exec
741
+ $vgpr0 = V_MOV_B32_e32 killed $vgpr4, implicit $exec, implicit $exec
742
+ S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
743
+ ...
744
+
745
+ ---
746
+ name : test_cvt_scale_cvt_scalef32_sr_pk_fp4_f16_opsel3_hazard
629
747
body : |
630
748
bb.0:
631
749
liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
750
+ ; GCN-LABEL: name: test_cvt_scale_cvt_scalef32_sr_pk_fp4_f16_opsel3_hazard
751
+ ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
752
+ ; GCN-NEXT: {{ $}}
753
+ ; GCN-NEXT: S_WAITCNT 0
754
+ ; GCN-NEXT: renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 8, $vgpr0, 0, $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
755
+ ; GCN-NEXT: S_NOP 0
756
+ ; GCN-NEXT: early-clobber renamable $vgpr4 = V_CVT_SCALEF32_SR_PK_FP4_F16_e64 8, killed $vgpr0, 0, killed $vgpr3, 4, killed $vgpr1, killed $vgpr2, 0, implicit $mode, implicit $exec
757
+ ; GCN-NEXT: S_NOP 0
758
+ ; GCN-NEXT: $vgpr0 = V_MOV_B32_e32 killed $vgpr4, implicit $exec, implicit $exec
759
+ ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
632
760
S_WAITCNT 0
633
761
renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 8, $vgpr0, 0, $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
634
762
early-clobber renamable $vgpr4 = V_CVT_SCALEF32_SR_PK_FP4_F16_e64 8, killed $vgpr0, 0, killed $vgpr3, 4, killed $vgpr1, killed $vgpr2, 0, implicit $mode, implicit $exec
0 commit comments