91 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 52# RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64 -run-pass=si-pre-emit-peephole %s -o - | FileCheck %s3# Do no remove S_CBRANCH_EXECZ if the following block contains an unconditional4# branch to a block other than the one immediately following it.5 6---7name: test8body: |9 ; CHECK-LABEL: name: test10 ; CHECK: bb.0:11 ; CHECK-NEXT: successors: %bb.5(0x40000000), %bb.1(0x40000000)12 ; CHECK-NEXT: liveins: $vgpr0, $vgpr113 ; CHECK-NEXT: {{ $}}14 ; CHECK-NEXT: $sgpr0_sgpr1 = S_MOV_B64 $exec15 ; CHECK-NEXT: V_CMPX_EQ_U32_nosdst_e32 0, killed $vgpr0, implicit-def $exec, implicit $exec16 ; CHECK-NEXT: S_CBRANCH_EXECZ %bb.5, implicit $exec17 ; CHECK-NEXT: {{ $}}18 ; CHECK-NEXT: bb.1:19 ; CHECK-NEXT: successors: %bb.2(0x80000000)20 ; CHECK-NEXT: liveins: $vgpr1, $sgpr0_sgpr121 ; CHECK-NEXT: {{ $}}22 ; CHECK-NEXT: renamable $sgpr2_sgpr3 = IMPLICIT_DEF23 ; CHECK-NEXT: renamable $sgpr4_sgpr5 = IMPLICIT_DEF24 ; CHECK-NEXT: S_BRANCH %bb.225 ; CHECK-NEXT: {{ $}}26 ; CHECK-NEXT: bb.2:27 ; CHECK-NEXT: successors: %bb.4(0x40000000), %bb.3(0x40000000)28 ; CHECK-NEXT: liveins: $vgpr1, $sgpr0_sgpr1, $sgpr2_sgpr3, $sgpr4_sgpr529 ; CHECK-NEXT: {{ $}}30 ; CHECK-NEXT: $exec = S_OR_B64 $exec, killed renamable $sgpr4_sgpr5, implicit-def $scc31 ; CHECK-NEXT: S_CBRANCH_EXECZ %bb.4, implicit $exec32 ; CHECK-NEXT: {{ $}}33 ; CHECK-NEXT: bb.3:34 ; CHECK-NEXT: successors: %bb.1(0x80000000)35 ; CHECK-NEXT: liveins: $vgpr1, $sgpr0_sgpr1, $sgpr2_sgpr336 ; CHECK-NEXT: {{ $}}37 ; CHECK-NEXT: renamable $sgpr4_sgpr5 = IMPLICIT_DEF38 ; CHECK-NEXT: S_BRANCH %bb.139 ; CHECK-NEXT: {{ $}}40 ; CHECK-NEXT: bb.4:41 ; CHECK-NEXT: successors: %bb.5(0x80000000)42 ; CHECK-NEXT: liveins: $vgpr1, $sgpr0_sgpr1, $sgpr2_sgpr343 ; CHECK-NEXT: {{ $}}44 ; CHECK-NEXT: $exec = S_OR_B64 $exec, killed renamable $sgpr2_sgpr3, implicit-def $scc45 ; CHECK-NEXT: {{ $}}46 ; CHECK-NEXT: bb.5:47 ; CHECK-NEXT: liveins: $vgpr1, $sgpr0_sgpr148 ; CHECK-NEXT: {{ $}}49 ; CHECK-NEXT: $exec = S_OR_B64 $exec, killed renamable $sgpr0_sgpr1, implicit-def $scc50 ; CHECK-NEXT: renamable $vgpr0 = V_CVT_F32_U32_e32 killed $vgpr1, implicit $mode, implicit $exec51 ; CHECK-NEXT: SI_RETURN_TO_EPILOG killed $vgpr052 bb.0:53 liveins: $vgpr0, $vgpr154 55 $sgpr0_sgpr1 = S_MOV_B64 $exec56 V_CMPX_EQ_U32_nosdst_e32 0, killed $vgpr0, implicit-def $exec, implicit $exec57 S_CBRANCH_EXECZ %bb.5, implicit $exec58 59 bb.1:60 liveins: $vgpr1, $sgpr0_sgpr161 62 renamable $sgpr2_sgpr3 = IMPLICIT_DEF63 renamable $sgpr4_sgpr5 = IMPLICIT_DEF64 S_BRANCH %bb.265 66 bb.2:67 liveins: $vgpr1, $sgpr0_sgpr1, $sgpr2_sgpr3, $sgpr4_sgpr568 69 $exec = S_OR_B64 $exec, killed renamable $sgpr4_sgpr5, implicit-def $scc70 S_CBRANCH_EXECZ %bb.4, implicit $exec71 72 bb.3:73 liveins: $vgpr1, $sgpr0_sgpr1, $sgpr2_sgpr374 75 renamable $sgpr4_sgpr5 = IMPLICIT_DEF76 S_BRANCH %bb.177 78 bb.4:79 liveins: $vgpr1, $sgpr0_sgpr1, $sgpr2_sgpr380 81 $exec = S_OR_B64 $exec, killed renamable $sgpr2_sgpr3, implicit-def $scc82 83 bb.5:84 liveins: $vgpr1, $sgpr0_sgpr185 86 $exec = S_OR_B64 $exec, killed renamable $sgpr0_sgpr1, implicit-def $scc87 renamable $vgpr0 = V_CVT_F32_U32_e32 killed $vgpr1, implicit $mode, implicit $exec88 SI_RETURN_TO_EPILOG killed $vgpr089 90...91