206 lines · plain
1# RUN: llc -mtriple=amdgcn -mcpu=fiji -verify-machineinstrs -run-pass post-RA-hazard-rec -o - %s | FileCheck -check-prefix=GCN %s2 3# GCN-LABEL: name: vmem_vcc_fallthrough4# GCN: bb.1:5# GCN-NEXT: S_NOP 46# GCN-NEXT: BUFFER_LOAD_DWORD_OFFEN7---8name: vmem_vcc_fallthrough9body: |10 bb.0:11 successors: %bb.112 13 $sgpr0_sgpr1_sgpr2_sgpr3 = IMPLICIT_DEF14 $vgpr0 = IMPLICIT_DEF15 $vgpr1 = V_ADDC_U32_e32 $vgpr0, $vgpr0, implicit-def $vcc, implicit $vcc, implicit $exec16 17 bb.1:18 $vgpr1 = BUFFER_LOAD_DWORD_OFFEN $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, $vcc_lo, 0, 0, 0, implicit $exec19...20# GCN-LABEL: name: vmem_vcc_branch_to_next21# GCN: bb.1:22# GCN-NEXT: S_NOP 323# GCN-NEXT: BUFFER_LOAD_DWORD_OFFEN24---25name: vmem_vcc_branch_to_next26body: |27 bb.0:28 successors: %bb.129 30 $sgpr0_sgpr1_sgpr2_sgpr3 = IMPLICIT_DEF31 $vgpr0 = IMPLICIT_DEF32 $vgpr1 = V_ADDC_U32_e32 $vgpr0, $vgpr0, implicit-def $vcc, implicit $vcc, implicit $exec33 S_BRANCH %bb.134 35 bb.1:36 $vgpr1 = BUFFER_LOAD_DWORD_OFFEN $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, $vcc_lo, 0, 0, 0, implicit $exec37...38# GCN-LABEL: name: vmem_vcc_fallthrough_no_hazard_too_far39# GCN: bb.1:40# GCN-NEXT: BUFFER_LOAD_DWORD_OFFEN41---42name: vmem_vcc_fallthrough_no_hazard_too_far43body: |44 bb.0:45 successors: %bb.146 47 $sgpr0_sgpr1_sgpr2_sgpr3 = IMPLICIT_DEF48 $vgpr0 = IMPLICIT_DEF49 $vgpr1 = V_ADDC_U32_e32 $vgpr0, $vgpr0, implicit-def $vcc, implicit $vcc, implicit $exec50 $sgpr0 = S_MOV_B32 051 $sgpr0 = S_MOV_B32 052 $sgpr0 = S_MOV_B32 053 $sgpr0 = S_MOV_B32 054 $sgpr0 = S_MOV_B32 055 56 bb.1:57 $vgpr1 = BUFFER_LOAD_DWORD_OFFEN $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, $vcc_lo, 0, 0, 0, implicit $exec58...59# GCN-LABEL: name: vmem_vcc_fallthrough_no_hazard_nops60# GCN: bb.1:61# GCN-NEXT: BUFFER_LOAD_DWORD_OFFEN62---63name: vmem_vcc_fallthrough_no_hazard_nops64body: |65 bb.0:66 successors: %bb.167 68 $sgpr0_sgpr1_sgpr2_sgpr3 = IMPLICIT_DEF69 $vgpr0 = IMPLICIT_DEF70 $vgpr1 = V_ADDC_U32_e32 $vgpr0, $vgpr0, implicit-def $vcc, implicit $vcc, implicit $exec71 S_NOP 472 73 bb.1:74 $vgpr1 = BUFFER_LOAD_DWORD_OFFEN $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, $vcc_lo, 0, 0, 0, implicit $exec75...76# GCN-LABEL: name: vmem_vcc_branch_around77# GCN: bb.2:78# GCN-NEXT: S_NOP 379# GCN-NEXT: BUFFER_LOAD_DWORD_OFFEN80---81name: vmem_vcc_branch_around82body: |83 bb.0:84 successors: %bb.285 86 $sgpr0_sgpr1_sgpr2_sgpr3 = IMPLICIT_DEF87 $vgpr0 = IMPLICIT_DEF88 $vgpr1 = V_ADDC_U32_e32 $vgpr0, $vgpr0, implicit-def $vcc, implicit $vcc, implicit $exec89 S_BRANCH %bb.290 91 bb.1:92 successors: %bb.293 94 S_NOP 095 S_NOP 096 S_NOP 097 S_NOP 098 99 bb.2:100 $vgpr1 = BUFFER_LOAD_DWORD_OFFEN $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, $vcc_lo, 0, 0, 0, implicit $exec101...102# GCN-LABEL: name: vmem_vcc_branch_backedge103# GCN: S_NOP 3104# GCN-NEXT: BUFFER_LOAD_DWORD_OFFEN105---106name: vmem_vcc_branch_backedge107body: |108 bb.0:109 successors: %bb.1110 111 $vgpr0 = IMPLICIT_DEF112 $sgpr0_sgpr1_sgpr2_sgpr3 = IMPLICIT_DEF113 $vgpr1 = BUFFER_LOAD_DWORD_OFFEN $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, $vcc_lo, 0, 0, 0, implicit $exec114 115 bb.1:116 $vgpr0 = IMPLICIT_DEF117 $vgpr1 = V_ADDC_U32_e32 $vgpr0, $vgpr0, implicit-def $vcc, implicit $vcc, implicit $exec118 S_BRANCH %bb.0119...120# GCN-LABEL: name: vmem_vcc_min_of_two121# GCN: bb.2:122# GCN-NEXT: S_NOP 4123# GCN-NEXT: BUFFER_LOAD_DWORD_OFFEN124---125name: vmem_vcc_min_of_two126body: |127 bb.0:128 successors: %bb.2129 130 $sgpr0_sgpr1_sgpr2_sgpr3 = IMPLICIT_DEF131 $vgpr0 = IMPLICIT_DEF132 $vgpr1 = V_ADDC_U32_e32 $vgpr0, $vgpr0, implicit-def $vcc, implicit $vcc, implicit $exec133 S_NOP 0134 S_BRANCH %bb.2135 136 bb.1:137 successors: %bb.2138 139 $vgpr1 = V_ADDC_U32_e32 $vgpr0, $vgpr0, implicit-def $vcc, implicit $vcc, implicit $exec140 141 bb.2:142 $vgpr1 = BUFFER_LOAD_DWORD_OFFEN $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, $vcc_lo, 0, 0, 0, implicit $exec143...144# GCN-LABEL: name: vmem_vcc_self_loop145# GCN: S_NOP 3146# GCN-NEXT: BUFFER_LOAD_DWORD_OFFEN147---148name: vmem_vcc_self_loop149body: |150 bb.0:151 successors: %bb.0152 153 $vgpr0 = IMPLICIT_DEF154 $sgpr0_sgpr1_sgpr2_sgpr3 = IMPLICIT_DEF155 $vgpr1 = BUFFER_LOAD_DWORD_OFFEN $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, $vcc_lo, 0, 0, 0, implicit $exec156 $vgpr1 = V_ADDC_U32_e32 $vgpr0, $vgpr0, implicit-def $vcc, implicit $vcc, implicit $exec157 S_BRANCH %bb.0158...159# GCN-LABEL: name: vmem_vcc_min_of_two_self_loop1160# GCN: bb.1:161# GCN: $sgpr0 = S_MOV_B32 0162# GCN-NEXT: S_NOP 3163# GCN-NEXT: BUFFER_LOAD_DWORD_OFFEN164---165name: vmem_vcc_min_of_two_self_loop1166body: |167 bb.0:168 successors: %bb.1169 170 $sgpr0_sgpr1_sgpr2_sgpr3 = IMPLICIT_DEF171 $vgpr0 = IMPLICIT_DEF172 $vgpr1 = V_ADDC_U32_e32 $vgpr0, $vgpr0, implicit-def $vcc, implicit $vcc, implicit $exec173 174 bb.1:175 successors: %bb.1176 177 $sgpr0 = S_MOV_B32 0178 $vgpr1 = BUFFER_LOAD_DWORD_OFFEN $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, $vcc_lo, 0, 0, 0, implicit $exec179 $vgpr1 = V_ADDC_U32_e32 $vgpr1, $vgpr1, implicit-def $vcc, implicit $vcc, implicit $exec180 S_BRANCH %bb.1181...182# GCN-LABEL: name: vmem_vcc_min_of_two_self_loop2183# GCN: bb.1:184# GCN: $sgpr0 = S_MOV_B32 0185# GCN-NEXT: S_NOP 2186# GCN-NEXT: BUFFER_LOAD_DWORD_OFFEN187---188name: vmem_vcc_min_of_two_self_loop2189body: |190 bb.0:191 successors: %bb.1192 193 $sgpr0_sgpr1_sgpr2_sgpr3 = IMPLICIT_DEF194 $vgpr0 = IMPLICIT_DEF195 $vgpr1 = V_ADDC_U32_e32 $vgpr0, $vgpr0, implicit-def $vcc, implicit $vcc, implicit $exec196 S_NOP 0197 198 bb.1:199 successors: %bb.1200 201 $sgpr0 = S_MOV_B32 0202 $vgpr1 = BUFFER_LOAD_DWORD_OFFEN $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, $vcc_lo, 0, 0, 0, implicit $exec203 $vgpr1 = V_ADDC_U32_e32 $vgpr1, $vgpr1, implicit-def $vcc, implicit $vcc, implicit $exec204 S_BRANCH %bb.1205...206