brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.0 KiB · 2303171 Raw
198 lines · plain
1# RUN: llc -mtriple=amdgcn -mcpu=tonga -verify-machineinstrs -run-pass post-RA-hazard-rec %s -o - | FileCheck -check-prefix=GCN -check-prefix=VI %s2# RUN: llc -mtriple=amdgcn -mcpu=gfx803 -verify-machineinstrs -run-pass post-RA-hazard-rec %s -o - | FileCheck -check-prefix=GCN -check-prefix=GFX8 %s3# RUN: llc -mtriple=amdgcn -mcpu=gfx900 -verify-machineinstrs -run-pass post-RA-hazard-rec %s -o - | FileCheck -check-prefix=GCN -check-prefix=GFX9 %s4 5# GCN-LABEL: name: hazard_implicit_def6# GCN:    bb.0.entry:7# GCN:      $m0 = S_MOV_B328# GFX9:     S_NOP 09# VI-NOT:   S_NOP_010# GCN:      V_INTERP_P1_F3211 12---13name:            hazard_implicit_def14alignment:       115exposesReturnsTwice: false16legalized:       false17regBankSelected: false18selected:        false19tracksRegLiveness: true20registers:21liveins:22  - { reg: '$sgpr7', virtual-reg: '' }23  - { reg: '$vgpr4', virtual-reg: '' }24body:             |25  bb.0.entry:26    liveins: $sgpr7, $vgpr427 28    $m0 = S_MOV_B32 killed $sgpr729    $vgpr5 = IMPLICIT_DEF30    $vgpr0 = V_INTERP_P1_F32 killed $vgpr4, 0, 0, implicit $mode, implicit $m0, implicit $exec31    SI_RETURN_TO_EPILOG killed $vgpr5, killed $vgpr032 33...34 35# GCN-LABEL: name: hazard_inlineasm36# GCN:    bb.0.entry:37# GCN:      $m0 = S_MOV_B3238# GFX9:     S_NOP 039# VI-NOT:   S_NOP_040# GCN:      V_INTERP_P1_F3241---42name:            hazard_inlineasm43alignment:       144exposesReturnsTwice: false45legalized:       false46regBankSelected: false47selected:        false48tracksRegLiveness: true49registers:50liveins:51  - { reg: '$sgpr7', virtual-reg: '' }52  - { reg: '$vgpr4', virtual-reg: '' }53body:             |54  bb.0.entry:55    liveins: $sgpr7, $vgpr456 57    $m0 = S_MOV_B32 killed $sgpr758    INLINEASM &"; no-op", 1, 327690, def $vgpr559    $vgpr0 = V_INTERP_P1_F32 killed $vgpr4, 0, 0, implicit $mode, implicit $m0, implicit $exec60    SI_RETURN_TO_EPILOG killed $vgpr5, killed $vgpr061...62 63# IMPLICIT_DEF/DBG_VALUE instructions should not prevent the hazard recognizer64# from adding s_nop instructions between m0 update and s_sendmsg.65 66# GCN-LABEL: name: hazard-lookahead-implicit-def67# GCN: $vgpr6 = IMPLICIT_DEF68# GFX8-NEXT: S_NOP 069# GFX9-NEXT: S_NOP 070# GCN: S_SENDMSG 3, implicit $exec, implicit $m071---72name: hazard-lookahead-implicit-def73body: |74  bb.0:75    $m0 = S_MOV_B32 killed $sgpr1276    $vgpr0 = IMPLICIT_DEF77    $vgpr1 = IMPLICIT_DEF78    $vgpr2 = IMPLICIT_DEF79    $vgpr3 = IMPLICIT_DEF80    $vgpr4 = IMPLICIT_DEF81    $vgpr5 = IMPLICIT_DEF82    $vgpr6 = IMPLICIT_DEF83    S_SENDMSG 3, implicit $exec, implicit $m084    S_ENDPGM 085...86 87# GCN-LABEL: name: hazard-lookahead-dbg-value88# GCN: DBG_VALUE 689# GFX8-NEXT: S_NOP 090# GFX9-NEXT: S_NOP 091# GCN: S_SENDMSG 3, implicit $exec, implicit $m092---93name: hazard-lookahead-dbg-value94body: |95  bb.0:96    $m0 = S_MOV_B32 killed $sgpr1297    DBG_VALUE 098    DBG_VALUE 199    DBG_VALUE 2100    DBG_VALUE 3101    DBG_VALUE 4102    DBG_VALUE 5103    DBG_VALUE 6104    S_SENDMSG 3, implicit $exec, implicit $m0105    S_ENDPGM 0106...107 108# GCN-LABEL: name: hazard-lookahead-dbg-label109# GCN: DBG_LABEL 6110# GFX8-NEXT: S_NOP 0111# GFX9-NEXT: S_NOP 0112# GCN: S_SENDMSG 3, implicit $exec, implicit $m0113---114name: hazard-lookahead-dbg-label115body: |116  bb.0:117    $m0 = S_MOV_B32 killed $sgpr12118    DBG_LABEL 0119    DBG_LABEL 1120    DBG_LABEL 2121    DBG_LABEL 3122    DBG_LABEL 4123    DBG_LABEL 5124    DBG_LABEL 6125    S_SENDMSG 3, implicit $exec, implicit $m0126    S_ENDPGM 0127...128# GCN-LABEL: name: hazard-lookahead-wave-barrier129# GCN: S_WAITCNT 0130# GCN-NEXT: S_NOP 0131# GCN-NEXT: V_ADD_F16_dpp132---133name: hazard-lookahead-wave-barrier134body: |135  bb.0:136    liveins: $vgpr0, $vgpr1, $vgpr3137 138    renamable $vgpr1 = contract nofpexcept V_ADD_F16_e32 killed $vgpr1, $vgpr0, implicit $mode, implicit $exec139    WAVE_BARRIER140    S_WAITCNT 0141    renamable $vgpr2 = contract nofpexcept V_ADD_F16_dpp undef $vgpr2, 0, $vgpr1, 0, $vgpr3, 273, 15, 15, 1, implicit $mode, implicit $exec142...143# GCN-LABEL: name: hazard-lookahead-masked-unreachable144# GCN: SI_MASKED_UNREACHABLE145# GCN-NEXT: S_NOP 0146# GCN-NEXT: S_SENDMSG147---148name: hazard-lookahead-masked-unreachable149body: |150  bb.0:151    $m0 = S_MOV_B32 -1152    SI_MASKED_UNREACHABLE153    S_SENDMSG 3, implicit $exec, implicit $m0154 155  bb.1:156    S_ENDPGM 0157...158# GCN-LABEL: name: fallthrough-hazard-lookahead-masked-unreachable159# GCN: SI_MASKED_UNREACHABLE160# GCN-LABEL: bb.1:161# GCN-NEXT: S_NOP 0162# GCN-NEXT: S_SENDMSG163---164name: fallthrough-hazard-lookahead-masked-unreachable165body: |166  bb.0:167    $m0 = S_MOV_B32 -1168    SI_MASKED_UNREACHABLE169 170  bb.1:171    S_SENDMSG 3, implicit $exec, implicit $m0172    S_ENDPGM 0173...174 175# GCN-LABEL: name: buffer_store_lds_dword176# GCN:       $m0 = S_MOV_B32 0177# GFX9-NEXT: S_NOP 0178# GCN-NEXT:  BUFFER_STORE_LDS_DWORD179---180name: buffer_store_lds_dword181body:             |182  bb.0:183    $m0 = S_MOV_B32 0184    BUFFER_STORE_LDS_DWORD $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec, implicit $m0185...186 187# GCN-LABEL: name: lds_direct_read_m0188# GCN:       $m0 = S_MOV_B32 0189# GFX9-NEXT: S_NOP 0190# GCN-NEXT:  V_MOV_B32191---192name: lds_direct_read_m0193body:             |194  bb.0:195    $m0 = S_MOV_B32 0196    $vgpr0 = V_MOV_B32_e32 $lds_direct, implicit $exec, implicit $m0197...198