Skip to content

Commit 5fcd059

Browse files
authored
[AMDGPU] Add VOPD combine dependency tests. NFC. (#104841)
1 parent 31cc4cc commit 5fcd059

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

llvm/test/CodeGen/AMDGPU/vopd-combine.mir

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
define void @vopd_mov_fixup_fail() { ret void }
2424
define void @vopd_no_combine_dependent_subreg() { ret void }
2525
define void @vopd_mov_mov_same_src_bank() { ret void }
26+
define void @vopd_combine_opy_overwrites_opx() { ret void }
27+
define void @vopd_no_combine_opx_overwrites_opy() { ret void }
2628
...
2729

2830
---
@@ -737,3 +739,50 @@ body: |
737739
$vgpr2 = V_MOV_B32_e32 $vgpr1, implicit $exec
738740
$vgpr3 = V_MOV_B32_e32 $vgpr5, implicit $exec
739741
...
742+
743+
---
744+
# There is no race between mov and add, they are executed at the same time
745+
name: vopd_combine_opy_overwrites_opx
746+
tracksRegLiveness: true
747+
body: |
748+
bb.0:
749+
; SCHED-LABEL: name: vopd_combine_opy_overwrites_opx
750+
; SCHED: $vgpr1 = IMPLICIT_DEF
751+
; SCHED-NEXT: $vgpr3 = IMPLICIT_DEF
752+
; SCHED-NEXT: $vgpr0 = V_MOV_B32_e32 killed $vgpr1, implicit $exec
753+
; SCHED-NEXT: $vgpr1 = V_ADD_F32_e32 killed $vgpr3, $vgpr3, implicit $mode, implicit $exec
754+
;
755+
; PAIR-GFX11-LABEL: name: vopd_combine_opy_overwrites_opx
756+
; PAIR-GFX11: $vgpr1 = IMPLICIT_DEF
757+
; PAIR-GFX11-NEXT: $vgpr3 = IMPLICIT_DEF
758+
; PAIR-GFX11-NEXT: $vgpr0, $vgpr1 = V_DUAL_MOV_B32_e32_X_ADD_F32_e32_gfx11 killed $vgpr1, killed $vgpr3, $vgpr3, implicit $exec, implicit $mode, implicit $exec, implicit $mode, implicit $exec
759+
;
760+
; PAIR-GFX12-LABEL: name: vopd_combine_opy_overwrites_opx
761+
; PAIR-GFX12: $vgpr1 = IMPLICIT_DEF
762+
; PAIR-GFX12-NEXT: $vgpr3 = IMPLICIT_DEF
763+
; PAIR-GFX12-NEXT: $vgpr0, $vgpr1 = V_DUAL_MOV_B32_e32_X_ADD_F32_e32_gfx12 killed $vgpr1, killed $vgpr3, $vgpr3, implicit $exec, implicit $mode, implicit $exec, implicit $mode, implicit $exec
764+
$vgpr1 = IMPLICIT_DEF
765+
$vgpr3 = IMPLICIT_DEF
766+
$vgpr0 = V_MOV_B32_e32 $vgpr1, implicit $exec
767+
$vgpr1 = V_ADD_F32_e32 $vgpr3, $vgpr3, implicit $mode, implicit $exec
768+
...
769+
770+
---
771+
# OPY cannot cosume value produced by OPX
772+
name: vopd_no_combine_opx_overwrites_opy
773+
tracksRegLiveness: true
774+
body: |
775+
bb.0:
776+
; SCHED-LABEL: name: vopd_no_combine_opx_overwrites_opy
777+
; SCHED: $vgpr1 = IMPLICIT_DEF
778+
; SCHED-NEXT: $vgpr0 = V_MOV_B32_e32 $vgpr1, implicit $exec
779+
; SCHED-NEXT: $vgpr3 = V_ADD_F32_e32 killed $vgpr0, killed $vgpr1, implicit $mode, implicit $exec
780+
;
781+
; PAIR-LABEL: name: vopd_no_combine_opx_overwrites_opy
782+
; PAIR: $vgpr1 = IMPLICIT_DEF
783+
; PAIR-NEXT: $vgpr0 = V_MOV_B32_e32 $vgpr1, implicit $exec
784+
; PAIR-NEXT: $vgpr3 = V_ADD_F32_e32 killed $vgpr0, killed $vgpr1, implicit $mode, implicit $exec
785+
$vgpr1 = IMPLICIT_DEF
786+
$vgpr0 = V_MOV_B32_e32 $vgpr1, implicit $exec
787+
$vgpr3 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
788+
...

0 commit comments

Comments
 (0)