Skip to content

Commit e2a2df2

Browse files
committed
[AMDGPU] Add test for set_gpr_idx removal with conditional branches
1 parent 92a3a2d commit e2a2df2

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed

llvm/test/CodeGen/AMDGPU/set-gpr-idx-peephole.mir

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -474,3 +474,54 @@ body: |
474474
S_SET_GPR_IDX_OFF implicit-def $mode, implicit $mode
475475
}
476476
...
477+
478+
# FIXME: remove S_SET_GPR_IDX_* despite the branch at the end of the block
479+
---
480+
name: simple_cbranch_vccz
481+
body: |
482+
; GCN-LABEL: name: simple_cbranch_vccz
483+
; GCN: bb.0:
484+
; GCN: successors: %bb.1(0x80000000)
485+
; GCN: S_SET_GPR_IDX_ON $sgpr2, 1, implicit-def $mode, implicit-def $m0, implicit $mode, implicit undef $m0
486+
; GCN: $vgpr16 = V_MOV_B32_e32 undef $vgpr1, implicit $exec, implicit $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, implicit $m0
487+
; GCN: S_SET_GPR_IDX_OFF implicit-def $mode, implicit $mode
488+
; GCN: S_SET_GPR_IDX_ON killed $sgpr2, 1, implicit-def $mode, implicit-def $m0, implicit $mode, implicit undef $m0
489+
; GCN: $vgpr15 = V_MOV_B32_e32 undef $vgpr0, implicit $exec, implicit killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, implicit $m0
490+
; GCN: S_SET_GPR_IDX_OFF implicit-def $mode, implicit $mode
491+
; GCN: S_CBRANCH_VCCZ %bb.1, implicit $vcc
492+
; GCN: bb.1:
493+
bb.0:
494+
S_SET_GPR_IDX_ON $sgpr2, 1, implicit-def $mode, implicit-def $m0, implicit $mode, implicit undef $m0
495+
$vgpr16 = V_MOV_B32_e32 undef $vgpr1, implicit $exec, implicit $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, implicit $m0
496+
S_SET_GPR_IDX_OFF implicit-def $mode, implicit $mode
497+
S_SET_GPR_IDX_ON killed $sgpr2, 1, implicit-def $mode, implicit-def $m0, implicit $mode, implicit undef $m0
498+
$vgpr15 = V_MOV_B32_e32 undef $vgpr0, implicit $exec, implicit killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, implicit $m0
499+
S_SET_GPR_IDX_OFF implicit-def $mode, implicit $mode
500+
S_CBRANCH_VCCZ %bb.1, implicit $vcc
501+
bb.1:
502+
...
503+
504+
# FIXME: remove S_SET_GPR_IDX_* despite the branch at the end of the block
505+
---
506+
name: simple_cbranch_execz
507+
body: |
508+
; GCN-LABEL: name: simple_cbranch_execz
509+
; GCN: bb.0:
510+
; GCN: successors:
511+
; GCN: S_SET_GPR_IDX_ON $sgpr2, 1, implicit-def $mode, implicit-def $m0, implicit $mode, implicit undef $m0
512+
; GCN: $vgpr16 = V_MOV_B32_e32 undef $vgpr1, implicit $exec, implicit $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, implicit $m0
513+
; GCN: S_SET_GPR_IDX_OFF implicit-def $mode, implicit $mode
514+
; GCN: S_SET_GPR_IDX_ON killed $sgpr2, 1, implicit-def $mode, implicit-def $m0, implicit $mode, implicit undef $m0
515+
; GCN: $vgpr15 = V_MOV_B32_e32 undef $vgpr0, implicit $exec, implicit killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, implicit $m0
516+
; GCN: S_SET_GPR_IDX_OFF implicit-def $mode, implicit $mode
517+
; GCN: bb.1:
518+
bb.0:
519+
S_SET_GPR_IDX_ON $sgpr2, 1, implicit-def $mode, implicit-def $m0, implicit $mode, implicit undef $m0
520+
$vgpr16 = V_MOV_B32_e32 undef $vgpr1, implicit $exec, implicit $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, implicit $m0
521+
S_SET_GPR_IDX_OFF implicit-def $mode, implicit $mode
522+
S_SET_GPR_IDX_ON killed $sgpr2, 1, implicit-def $mode, implicit-def $m0, implicit $mode, implicit undef $m0
523+
$vgpr15 = V_MOV_B32_e32 undef $vgpr0, implicit $exec, implicit killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, implicit $m0
524+
S_SET_GPR_IDX_OFF implicit-def $mode, implicit $mode
525+
S_CBRANCH_EXECZ %bb.1, implicit $exec
526+
bb.1:
527+
...

0 commit comments

Comments
 (0)