89 lines · plain
1# RUN: llc -mtriple=amdgcn -mcpu=gfx902 -mattr=+xnack -verify-machineinstrs -run-pass post-RA-hazard-rec %s -o - | FileCheck -check-prefixes=GCN,XNACK,GFX9 %s2# RUN: llc -mtriple=amdgcn -mcpu=gfx900 -mattr=-xnack -verify-machineinstrs -run-pass post-RA-hazard-rec %s -o - | FileCheck -check-prefixes=GCN,NOXNACK,GFX9 %s3# RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -mattr=+wavefrontsize64,-xnack -verify-machineinstrs -run-pass post-RA-hazard-rec %s -o - | FileCheck -check-prefixes=GCN,NOXNACK %s4 5# GCN-LABEL: name: break_smem_clause_simple_load_smrd8_ptr_hidden_bundle6# GCN: bb.0:7# GCN: }8# XNACK-NEXT: S_NOP9# NOXNACK-NOT: S_NOP10# GCN: S_LOAD_DWORDX2_IMM11---12name: break_smem_clause_simple_load_smrd8_ptr_hidden_bundle13body: |14 bb.0:15 BUNDLE implicit-def $sgpr6_sgpr7 {16 $sgpr10_sgpr11 = S_LOAD_DWORDX2_IMM $sgpr12_sgpr13, 0, 017 }18 $sgpr14_sgpr15 = S_LOAD_DWORDX2_IMM $sgpr10_sgpr11, 0, 019 S_ENDPGM 020...21 22# GFX9-LABEL: name: hazard_precedes_bundle23# GFX9: S_MOV_B3224# GFX9-NEXT: S_NOP25# GFX9: BUNDLE26# GFX9-NEXT: S_NOP27---28name: hazard_precedes_bundle29body: |30 bb.0:31 $m0 = S_MOV_B32 $sgpr732 S_SENDMSG 3, implicit $exec, implicit $m033 $m0 = S_MOV_B32 $sgpr834 BUNDLE implicit-def $vgpr0 {35 $vgpr0 = V_INTERP_P1_F32 killed $vgpr4, 0, 0, implicit $mode, implicit $m0, implicit $exec36 }37 S_ENDPGM 038...39 40# GCN-LABEL: name: vmem_vcc_hazard_ignore_bundle_instr41# GCN: S_LOAD_DWORDX2_IMM42# GCN-NEXT: }43# GFX9-NEXT: S_NOP 344# GCN: BUFFER_LOAD_DWORD_OFFEN45---46name: vmem_vcc_hazard_ignore_bundle_instr47body: |48 bb.0:49 $sgpr0_sgpr1_sgpr2_sgpr3 = IMPLICIT_DEF50 $vgpr0 = IMPLICIT_DEF51 BUNDLE implicit-def $vgpr1, implicit $vgpr0, implicit $vgpr0, implicit-def $vcc, implicit $vcc, implicit $exec {52 $vgpr1 = V_ADDC_U32_e32 $vgpr0, $vgpr0, implicit-def $vcc, implicit $vcc, implicit $exec53 }54 BUNDLE implicit-def $sgpr0_sgpr1, implicit $sgpr10_sgpr11 {55 $sgpr0_sgpr1 = S_LOAD_DWORDX2_IMM $sgpr10_sgpr11, 0, 056 }57 $vgpr1 = BUFFER_LOAD_DWORD_OFFEN $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, $vcc_lo, 0, 0, 0, implicit $exec58 S_ENDPGM 059...60 61# GCN-LABEL: name: vmem_vcc_min_of_two_after_bundle62# GCN: bb.2:63# GFX9-NEXT: S_NOP 464# GCN-NEXT: BUFFER_LOAD_DWORD_OFFEN65---66name: vmem_vcc_min_of_two_after_bundle67body: |68 bb.0:69 successors: %bb.270 71 BUNDLE implicit-def $vgpr1, implicit $vgpr0 {72 $sgpr0_sgpr1_sgpr2_sgpr3 = IMPLICIT_DEF73 $vgpr0 = IMPLICIT_DEF74 $vgpr1 = V_ADDC_U32_e32 $vgpr0, $vgpr0, implicit-def $vcc, implicit $vcc, implicit $exec75 }76 S_NOP 077 S_BRANCH %bb.278 79 bb.1:80 successors: %bb.281 82 BUNDLE implicit-def $vgpr1, implicit $vgpr0 {83 $vgpr1 = V_ADDC_U32_e32 $vgpr0, $vgpr0, implicit-def $vcc, implicit $vcc, implicit $exec84 }85 86 bb.2:87 $vgpr1 = BUFFER_LOAD_DWORD_OFFEN $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, $vcc_lo, 0, 0, 0, implicit $exec88...89