brintos

brintos / llvm-project-archived public Read only

0
0
Text · 7.1 KiB · 33085bf Raw
174 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 52# RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -verify-machineinstrs -run-pass si-insert-waitcnts -o - %s | FileCheck -check-prefix=GFX12 %s3 4---5name: scc_write_in_other_block6body: |7  ; GFX12-LABEL: name: scc_write_in_other_block8  ; GFX12: bb.0:9  ; GFX12-NEXT:   successors: %bb.2(0x40000000), %bb.1(0x40000000)10  ; GFX12-NEXT: {{  $}}11  ; GFX12-NEXT:   S_WAIT_LOADCNT_DSCNT 012  ; GFX12-NEXT:   S_WAIT_EXPCNT 013  ; GFX12-NEXT:   S_WAIT_SAMPLECNT 014  ; GFX12-NEXT:   S_WAIT_BVHCNT 015  ; GFX12-NEXT:   S_WAIT_KMCNT 016  ; GFX12-NEXT:   S_CMP_EQ_U32 $sgpr0, 0, implicit-def $scc17  ; GFX12-NEXT:   V_CMPX_EQ_U32_nosdst_e32 0, killed $vgpr0, implicit-def $exec, implicit $exec18  ; GFX12-NEXT:   S_CBRANCH_EXECZ %bb.2, implicit $exec19  ; GFX12-NEXT: {{  $}}20  ; GFX12-NEXT: bb.1:21  ; GFX12-NEXT:   successors: %bb.2(0x80000000)22  ; GFX12-NEXT: {{  $}}23  ; GFX12-NEXT:   renamable $sgpr1 = S_CSELECT_B32 1, 0, implicit killed $scc24  ; GFX12-NEXT:   S_BARRIER_SIGNAL_ISFIRST_IMM -1, implicit-def $scc, implicit killed $scc25  ; GFX12-NEXT:   $vgpr2 = V_MOV_B32_e32 $sgpr1, implicit $exec, implicit $exec26  ; GFX12-NEXT:   GLOBAL_STORE_DWORD $vgpr3_vgpr4, $vgpr2, 0, 0, implicit $exec27  ; GFX12-NEXT: {{  $}}28  ; GFX12-NEXT: bb.2:29  ; GFX12-NEXT:   S_WAIT_KMCNT 030  ; GFX12-NEXT:   renamable $sgpr1 = S_CSELECT_B32 10, 20, implicit killed $scc31  ; GFX12-NEXT:   $vgpr5 = V_MOV_B32_e32 $sgpr1, implicit $exec, implicit $exec32  ; GFX12-NEXT:   GLOBAL_STORE_DWORD $vgpr6_vgpr7, $vgpr5, 0, 0, implicit $exec33  ; GFX12-NEXT:   S_ENDPGM 034  bb.0:35    S_CMP_EQ_U32 $sgpr0, 0, implicit-def $scc36    V_CMPX_EQ_U32_nosdst_e32 0, killed $vgpr0, implicit-def $exec, implicit $exec37    S_CBRANCH_EXECZ %bb.2, implicit $exec38 39  bb.1:40    renamable $sgpr1 = S_CSELECT_B32 1, 0, implicit killed $scc41    S_BARRIER_SIGNAL_ISFIRST_IMM -1, implicit-def $scc, implicit killed $scc42    $vgpr2 = V_MOV_B32_e32 $sgpr1, implicit $exec, implicit $exec43    GLOBAL_STORE_DWORD $vgpr3_vgpr4, $vgpr2, 0, 0, implicit $exec44 45  bb.2:46    renamable $sgpr1 = S_CSELECT_B32 10, 20, implicit killed $scc47    $vgpr5 = V_MOV_B32_e32 $sgpr1, implicit $exec, implicit $exec48    GLOBAL_STORE_DWORD $vgpr6_vgpr7, $vgpr5, 0, 0, implicit $exec49    S_ENDPGM 050...51 52---53name: scc_write_in_other_block_with_barrier_wait54body: |55  ; GFX12-LABEL: name: scc_write_in_other_block_with_barrier_wait56  ; GFX12: bb.0:57  ; GFX12-NEXT:   successors: %bb.2(0x40000000), %bb.1(0x40000000)58  ; GFX12-NEXT: {{  $}}59  ; GFX12-NEXT:   S_WAIT_LOADCNT_DSCNT 060  ; GFX12-NEXT:   S_WAIT_EXPCNT 061  ; GFX12-NEXT:   S_WAIT_SAMPLECNT 062  ; GFX12-NEXT:   S_WAIT_BVHCNT 063  ; GFX12-NEXT:   S_WAIT_KMCNT 064  ; GFX12-NEXT:   S_CMP_EQ_U32 $sgpr0, 0, implicit-def $scc65  ; GFX12-NEXT:   V_CMPX_EQ_U32_nosdst_e32 0, killed $vgpr0, implicit-def $exec, implicit $exec66  ; GFX12-NEXT:   S_CBRANCH_EXECZ %bb.2, implicit $exec67  ; GFX12-NEXT: {{  $}}68  ; GFX12-NEXT: bb.1:69  ; GFX12-NEXT:   successors: %bb.2(0x80000000)70  ; GFX12-NEXT: {{  $}}71  ; GFX12-NEXT:   renamable $sgpr1 = S_CSELECT_B32 1, 0, implicit killed $scc72  ; GFX12-NEXT:   S_BARRIER_SIGNAL_ISFIRST_IMM -1, implicit-def $scc, implicit killed $scc73  ; GFX12-NEXT:   $vgpr2 = V_MOV_B32_e32 $sgpr1, implicit $exec, implicit $exec74  ; GFX12-NEXT:   GLOBAL_STORE_DWORD $vgpr3_vgpr4, $vgpr2, 0, 0, implicit $exec75  ; GFX12-NEXT: {{  $}}76  ; GFX12-NEXT: bb.2:77  ; GFX12-NEXT:   S_BARRIER_WAIT -178  ; GFX12-NEXT:   renamable $sgpr1 = S_CSELECT_B32 10, 20, implicit killed $scc79  ; GFX12-NEXT:   $vgpr5 = V_MOV_B32_e32 $sgpr1, implicit $exec, implicit $exec80  ; GFX12-NEXT:   GLOBAL_STORE_DWORD $vgpr6_vgpr7, $vgpr5, 0, 0, implicit $exec81  ; GFX12-NEXT:   S_ENDPGM 082  bb.0:83    S_CMP_EQ_U32 $sgpr0, 0, implicit-def $scc84    V_CMPX_EQ_U32_nosdst_e32 0, killed $vgpr0, implicit-def $exec, implicit $exec85    S_CBRANCH_EXECZ %bb.2, implicit $exec86 87  bb.1:88    renamable $sgpr1 = S_CSELECT_B32 1, 0, implicit killed $scc89    S_BARRIER_SIGNAL_ISFIRST_IMM -1, implicit-def $scc, implicit killed $scc90    $vgpr2 = V_MOV_B32_e32 $sgpr1, implicit $exec, implicit $exec91    GLOBAL_STORE_DWORD $vgpr3_vgpr4, $vgpr2, 0, 0, implicit $exec92 93  bb.2:94    S_BARRIER_WAIT -195    renamable $sgpr1 = S_CSELECT_B32 10, 20, implicit killed $scc96    $vgpr5 = V_MOV_B32_e32 $sgpr1, implicit $exec, implicit $exec97    GLOBAL_STORE_DWORD $vgpr6_vgpr7, $vgpr5, 0, 0, implicit $exec98    S_ENDPGM 099...100 101---102name: scc_write_in_multiple_blocks_with_barrier_wait103body: |104  ; GFX12-LABEL: name: scc_write_in_multiple_blocks_with_barrier_wait105  ; GFX12: bb.0:106  ; GFX12-NEXT:   successors: %bb.4(0x40000000), %bb.1(0x40000000)107  ; GFX12-NEXT: {{  $}}108  ; GFX12-NEXT:   S_WAIT_LOADCNT_DSCNT 0109  ; GFX12-NEXT:   S_WAIT_EXPCNT 0110  ; GFX12-NEXT:   S_WAIT_SAMPLECNT 0111  ; GFX12-NEXT:   S_WAIT_BVHCNT 0112  ; GFX12-NEXT:   S_WAIT_KMCNT 0113  ; GFX12-NEXT:   S_CMP_EQ_U32 $sgpr0, 0, implicit-def $scc114  ; GFX12-NEXT:   V_CMPX_EQ_U32_nosdst_e32 0, killed $vgpr0, implicit-def $exec, implicit $exec115  ; GFX12-NEXT:   S_CBRANCH_EXECZ %bb.4, implicit $exec116  ; GFX12-NEXT: {{  $}}117  ; GFX12-NEXT: bb.1:118  ; GFX12-NEXT:   successors: %bb.3(0x40000000), %bb.2(0x40000000)119  ; GFX12-NEXT: {{  $}}120  ; GFX12-NEXT:   V_CMPX_EQ_U32_nosdst_e32 0, killed $vgpr1, implicit-def $exec, implicit $exec121  ; GFX12-NEXT:   S_CBRANCH_EXECZ %bb.3, implicit $exec122  ; GFX12-NEXT: {{  $}}123  ; GFX12-NEXT: bb.2:124  ; GFX12-NEXT:   successors: %bb.5(0x80000000)125  ; GFX12-NEXT: {{  $}}126  ; GFX12-NEXT:   S_BARRIER_SIGNAL_ISFIRST_IMM 0, implicit-def $scc, implicit killed $scc127  ; GFX12-NEXT:   S_BRANCH %bb.5128  ; GFX12-NEXT: {{  $}}129  ; GFX12-NEXT: bb.3:130  ; GFX12-NEXT:   successors: %bb.5(0x80000000)131  ; GFX12-NEXT: {{  $}}132  ; GFX12-NEXT:   S_BARRIER_SIGNAL_ISFIRST_IMM 1, implicit-def $scc, implicit killed $scc133  ; GFX12-NEXT:   S_BRANCH %bb.5134  ; GFX12-NEXT: {{  $}}135  ; GFX12-NEXT: bb.4:136  ; GFX12-NEXT:   successors: %bb.5(0x80000000)137  ; GFX12-NEXT: {{  $}}138  ; GFX12-NEXT:   S_BARRIER_SIGNAL_ISFIRST_IMM -1, implicit-def $scc, implicit killed $scc139  ; GFX12-NEXT: {{  $}}140  ; GFX12-NEXT: bb.5:141  ; GFX12-NEXT:   S_BARRIER_WAIT -1142  ; GFX12-NEXT:   S_WAIT_KMCNT 0143  ; GFX12-NEXT:   renamable $sgpr1 = S_CSELECT_B32 10, 20, implicit killed $scc144  ; GFX12-NEXT:   $vgpr5 = V_MOV_B32_e32 $sgpr1, implicit $exec, implicit $exec145  ; GFX12-NEXT:   GLOBAL_STORE_DWORD $vgpr6_vgpr7, $vgpr5, 0, 0, implicit $exec146  ; GFX12-NEXT:   S_ENDPGM 0147  bb.0:148    S_CMP_EQ_U32 $sgpr0, 0, implicit-def $scc149    V_CMPX_EQ_U32_nosdst_e32 0, killed $vgpr0, implicit-def $exec, implicit $exec150    S_CBRANCH_EXECZ %bb.4, implicit $exec151 152  bb.1:153    V_CMPX_EQ_U32_nosdst_e32 0, killed $vgpr1, implicit-def $exec, implicit $exec154    S_CBRANCH_EXECZ %bb.3, implicit $exec155 156  bb.2:157   S_BARRIER_SIGNAL_ISFIRST_IMM 0, implicit-def $scc, implicit killed $scc158   S_BRANCH %bb.5159 160  bb.3:161   S_BARRIER_SIGNAL_ISFIRST_IMM 1, implicit-def $scc, implicit killed $scc162   S_BRANCH %bb.5163 164  bb.4:165   S_BARRIER_SIGNAL_ISFIRST_IMM -1, implicit-def $scc, implicit killed $scc166 167  bb.5:168    S_BARRIER_WAIT -1169    renamable $sgpr1 = S_CSELECT_B32 10, 20, implicit killed $scc170    $vgpr5 = V_MOV_B32_e32 $sgpr1, implicit $exec, implicit $exec171    GLOBAL_STORE_DWORD $vgpr6_vgpr7, $vgpr5, 0, 0, implicit $exec172    S_ENDPGM 0173...174