| # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 5 | |
| # RUN: llc -mtriple=amdgpu10.30 -run-pass si-pre-emit-peephole -verify-machineinstrs %s -o - | FileCheck %s | |
| --- | |
| name: skip_waitcnt_vscnt | |
| body: | | |
| ; CHECK-LABEL: name: skip_waitcnt_vscnt | |
| ; CHECK: bb.0: | |
| ; CHECK-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) | |
| ; CHECK-NEXT: {{ $}} | |
| ; CHECK-NEXT: S_CBRANCH_EXECZ %bb.2, implicit $exec | |
| ; CHECK-NEXT: {{ $}} | |
| ; CHECK-NEXT: bb.1: | |
| ; CHECK-NEXT: successors: %bb.2(0x80000000) | |
| ; CHECK-NEXT: {{ $}} | |
| ; CHECK-NEXT: V_NOP_e32 implicit $exec | |
| ; CHECK-NEXT: S_WAITCNT_VSCNT $sgpr_null, 0 | |
| ; CHECK-NEXT: {{ $}} | |
| ; CHECK-NEXT: bb.2: | |
| ; CHECK-NEXT: S_ENDPGM 0 | |
| bb.0: | |
| successors: %bb.1, %bb.2 | |
| S_CBRANCH_EXECZ %bb.2, implicit $exec | |
| bb.1: | |
| successors: %bb.2 | |
| V_NOP_e32 implicit $exec | |
| S_WAITCNT_VSCNT $sgpr_null, 0 | |
| bb.2: | |
| S_ENDPGM 0 | |
| ... | |
| --- | |
| name: skip_waitcnt_expcnt | |
| body: | | |
| ; CHECK-LABEL: name: skip_waitcnt_expcnt | |
| ; CHECK: bb.0: | |
| ; CHECK-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) | |
| ; CHECK-NEXT: {{ $}} | |
| ; CHECK-NEXT: S_CBRANCH_EXECZ %bb.2, implicit $exec | |
| ; CHECK-NEXT: {{ $}} | |
| ; CHECK-NEXT: bb.1: | |
| ; CHECK-NEXT: successors: %bb.2(0x80000000) | |
| ; CHECK-NEXT: {{ $}} | |
| ; CHECK-NEXT: V_NOP_e32 implicit $exec | |
| ; CHECK-NEXT: S_WAITCNT_EXPCNT $sgpr_null, 0 | |
| ; CHECK-NEXT: {{ $}} | |
| ; CHECK-NEXT: bb.2: | |
| ; CHECK-NEXT: S_ENDPGM 0 | |
| bb.0: | |
| successors: %bb.1, %bb.2 | |
| S_CBRANCH_EXECZ %bb.2, implicit $exec | |
| bb.1: | |
| successors: %bb.2 | |
| V_NOP_e32 implicit $exec | |
| S_WAITCNT_EXPCNT $sgpr_null, 0 | |
| bb.2: | |
| S_ENDPGM 0 | |
| ... | |
| --- | |
| name: skip_waitcnt_vmcnt | |
| body: | | |
| ; CHECK-LABEL: name: skip_waitcnt_vmcnt | |
| ; CHECK: bb.0: | |
| ; CHECK-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) | |
| ; CHECK-NEXT: {{ $}} | |
| ; CHECK-NEXT: S_CBRANCH_EXECZ %bb.2, implicit $exec | |
| ; CHECK-NEXT: {{ $}} | |
| ; CHECK-NEXT: bb.1: | |
| ; CHECK-NEXT: successors: %bb.2(0x80000000) | |
| ; CHECK-NEXT: {{ $}} | |
| ; CHECK-NEXT: V_NOP_e32 implicit $exec | |
| ; CHECK-NEXT: S_WAITCNT_VMCNT $sgpr_null, 0 | |
| ; CHECK-NEXT: {{ $}} | |
| ; CHECK-NEXT: bb.2: | |
| ; CHECK-NEXT: S_ENDPGM 0 | |
| bb.0: | |
| successors: %bb.1, %bb.2 | |
| S_CBRANCH_EXECZ %bb.2, implicit $exec | |
| bb.1: | |
| successors: %bb.2 | |
| V_NOP_e32 implicit $exec | |
| S_WAITCNT_VMCNT $sgpr_null, 0 | |
| bb.2: | |
| S_ENDPGM 0 | |
| ... | |
| --- | |
| name: skip_waitcnt_lgkmcnt | |
| body: | | |
| ; CHECK-LABEL: name: skip_waitcnt_lgkmcnt | |
| ; CHECK: bb.0: | |
| ; CHECK-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) | |
| ; CHECK-NEXT: {{ $}} | |
| ; CHECK-NEXT: S_CBRANCH_EXECZ %bb.2, implicit $exec | |
| ; CHECK-NEXT: {{ $}} | |
| ; CHECK-NEXT: bb.1: | |
| ; CHECK-NEXT: successors: %bb.2(0x80000000) | |
| ; CHECK-NEXT: {{ $}} | |
| ; CHECK-NEXT: V_NOP_e32 implicit $exec | |
| ; CHECK-NEXT: S_WAITCNT_LGKMCNT $sgpr_null, 0 | |
| ; CHECK-NEXT: {{ $}} | |
| ; CHECK-NEXT: bb.2: | |
| ; CHECK-NEXT: S_ENDPGM 0 | |
| bb.0: | |
| successors: %bb.1, %bb.2 | |
| S_CBRANCH_EXECZ %bb.2, implicit $exec | |
| bb.1: | |
| successors: %bb.2 | |
| V_NOP_e32 implicit $exec | |
| S_WAITCNT_LGKMCNT $sgpr_null, 0 | |
| bb.2: | |
| S_ENDPGM 0 | |
| ... | |
| --- | |
| name: skip_wait_idle | |
| body: | | |
| ; CHECK-LABEL: name: skip_wait_idle | |
| ; CHECK: bb.0: | |
| ; CHECK-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) | |
| ; CHECK-NEXT: {{ $}} | |
| ; CHECK-NEXT: S_CBRANCH_EXECZ %bb.2, implicit $exec | |
| ; CHECK-NEXT: {{ $}} | |
| ; CHECK-NEXT: bb.1: | |
| ; CHECK-NEXT: successors: %bb.2(0x80000000) | |
| ; CHECK-NEXT: {{ $}} | |
| ; CHECK-NEXT: V_NOP_e32 implicit $exec | |
| ; CHECK-NEXT: S_WAIT_IDLE | |
| ; CHECK-NEXT: {{ $}} | |
| ; CHECK-NEXT: bb.2: | |
| ; CHECK-NEXT: S_ENDPGM 0 | |
| bb.0: | |
| successors: %bb.1, %bb.2 | |
| S_CBRANCH_EXECZ %bb.2, implicit $exec | |
| bb.1: | |
| successors: %bb.2 | |
| V_NOP_e32 implicit $exec | |
| S_WAIT_IDLE | |
| bb.2: | |
| S_ENDPGM 0 | |
| ... | |
| --- | |
| name: skip_bvh | |
| body: | | |
| ; CHECK-LABEL: name: skip_bvh | |
| ; CHECK: bb.0: | |
| ; CHECK-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) | |
| ; CHECK-NEXT: {{ $}} | |
| ; CHECK-NEXT: S_CBRANCH_EXECZ %bb.2, implicit $exec | |
| ; CHECK-NEXT: {{ $}} | |
| ; CHECK-NEXT: bb.1: | |
| ; CHECK-NEXT: successors: %bb.2(0x80000000) | |
| ; CHECK-NEXT: {{ $}} | |
| ; CHECK-NEXT: V_NOP_e32 implicit $exec | |
| ; CHECK-NEXT: $vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14 = IMPLICIT_DEF | |
| ; CHECK-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = IMPLICIT_DEF | |
| ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = IMAGE_BVH_INTERSECT_RAY_sa_gfx11 $vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14, renamable $sgpr0_sgpr1_sgpr2_sgpr3, 0, implicit $exec :: (dereferenceable load (s128), addrspace 7) | |
| ; CHECK-NEXT: {{ $}} | |
| ; CHECK-NEXT: bb.2: | |
| ; CHECK-NEXT: S_ENDPGM 0 | |
| bb.0: | |
| successors: %bb.1, %bb.2 | |
| S_CBRANCH_EXECZ %bb.2, implicit $exec | |
| bb.1: | |
| successors: %bb.2 | |
| V_NOP_e32 implicit $exec | |
| $vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14 = IMPLICIT_DEF | |
| $sgpr0_sgpr1_sgpr2_sgpr3 = IMPLICIT_DEF | |
| $vgpr0_vgpr1_vgpr2_vgpr3 = IMAGE_BVH_INTERSECT_RAY_sa_gfx11 $vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14, renamable $sgpr0_sgpr1_sgpr2_sgpr3, 0, implicit $exec :: (dereferenceable load (s128), addrspace 7) | |
| bb.2: | |
| S_ENDPGM 0 | |
| ... | |
| --- | |
| name: skip_barrier | |
| body: | | |
| ; CHECK-LABEL: name: skip_barrier | |
| ; CHECK: bb.0: | |
| ; CHECK-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) | |
| ; CHECK-NEXT: {{ $}} | |
| ; CHECK-NEXT: S_CBRANCH_EXECZ %bb.2, implicit $exec | |
| ; CHECK-NEXT: {{ $}} | |
| ; CHECK-NEXT: bb.1: | |
| ; CHECK-NEXT: successors: %bb.2(0x80000000) | |
| ; CHECK-NEXT: {{ $}} | |
| ; CHECK-NEXT: V_NOP_e32 implicit $exec | |
| ; CHECK-NEXT: S_BARRIER | |
| ; CHECK-NEXT: {{ $}} | |
| ; CHECK-NEXT: bb.2: | |
| ; CHECK-NEXT: S_ENDPGM 0 | |
| bb.0: | |
| successors: %bb.1, %bb.2 | |
| S_CBRANCH_EXECZ %bb.2, implicit $exec | |
| bb.1: | |
| successors: %bb.2 | |
| V_NOP_e32 implicit $exec | |
| S_BARRIER | |
| bb.2: | |
| S_ENDPGM 0 | |
| ... |