brintos

brintos / llvm-project-archived public Read only

0
0
Text · 7.6 KiB · 2c760ba Raw
244 lines · plain
1# RUN: llc -mtriple=amdgcn -mcpu=gfx942 -verify-machineinstrs -run-pass post-RA-hazard-rec %s -o - | FileCheck -check-prefix=GCN %s2 3# GCN-LABEL: name: trans32_write_non_trans32_read4# GCN:      V_RCP_F325# GCN-NEXT: S_NOP 06# GCN-NEXT: V_MUL_F327name:            trans32_write_non_trans32_read8body:             |9  bb.0:10    $vgpr1 = V_RCP_F32_e32 $vgpr0, implicit $mode, implicit $exec11    $vgpr2 = V_MUL_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec12...13 14# GCN-LABEL: name: trans32_write_trans_read15# GCN:      V_SIN_F3216# GCN-NEXT: V_COS_F3217name:            trans32_write_trans_read18body:             |19  bb.0:20    $vgpr0 = V_SIN_F32_e32 $vgpr1, implicit $mode, implicit $exec21    $vgpr2 = V_COS_F32_e32 $vgpr0, implicit $mode, implicit $exec22...23 24# GCN-LABEL: name: trans64_write_non_trans_read25# GCN:      V_RCP_F6426# GCN-NEXT: S_NOP 027# GCN-NEXT: V_OR_B3228name:            trans64_write_non_trans_read29body:             |30  bb.0:31    $vgpr0_vgpr1 = V_RCP_F64_e32 $vgpr2_vgpr3, implicit $mode, implicit $exec32    $vgpr4 = V_OR_B32_e32 $vgpr1, $vgpr5, implicit $mode, implicit $exec33...34 35# GCN-LABEL: name: trans32_write_non_trans64_read36# GCN:      V_EXP_F3237# GCN-NEXT: S_NOP 038# GCN-NEXT: V_MUL_F6439name:            trans32_write_non_trans64_read40body:             |41  bb.0:42    $vgpr1 = V_EXP_F32_e32 $vgpr0, implicit $mode, implicit $exec43    $vgpr2_vgpr3 = V_MUL_F64_e64 0, $vgpr0_vgpr1, 0, $vgpr2_vgpr3, 0, 0, implicit $mode, implicit $exec44...45 46# GCN-LABEL: name: opsel_hi16_write_valu_read47# GCN:      V_ADD_I1648# GCN-NEXT: S_NOP 049# GCN-NEXT: V_MUL_F6450name:            opsel_hi16_write_valu_read51body:             |52  bb.0:53    $vgpr0 = V_ADD_I16_e64 8, $vgpr1, 0, $vgpr2, 0, 0, implicit $exec54    $vgpr4_vgpr5 = V_MUL_F64_e64 0, $vgpr0_vgpr1, 0, $vgpr2_vgpr3, 0, 0, implicit $mode, implicit $exec55...56 57# GCN-LABEL: name: opsel_lo16_write_valu_read58# GCN:      V_ADD_I1659# GCN-NEXT: V_MUL_F6460name:            opsel_lo16_write_valu_read61body:             |62  bb.0:63    $vgpr0 = V_ADD_I16_e64 0, $vgpr1, 0, $vgpr2, 0, 0, implicit $exec64    $vgpr4_vgpr5 = V_MUL_F64_e64 0, $vgpr0_vgpr1, 0, $vgpr2_vgpr3, 0, 0, implicit $mode, implicit $exec65...66 67# GCN-LABEL: name: sdwa_hi16_write_valu_read68# GCN:      V_MOV_B32_sdwa69# GCN-NEXT: S_NOP 070# GCN-NEXT: V_MOV_B32_e3271name:            sdwa_hi16_write_valu_read72body:             |73  bb.0:74    $vgpr0 = V_MOV_B32_sdwa 0, $vgpr1, 0, 5, 2, 5, implicit $vgpr0(tied-def 0), implicit $exec75    $vgpr3 = V_MOV_B32_e32 $vgpr0, implicit $exec76...77 78# GCN-LABEL: name: sdwa_lo16_write_valu_read79# GCN:      V_MOV_B32_sdwa80# GCN-NEXT: S_NOP 081# GCN-NEXT: V_MOV_B32_e3282name:            sdwa_lo16_write_valu_read83body:             |84  bb.0:85    $vgpr0 = V_MOV_B32_sdwa 0, $vgpr1, 0, 4, 2, 5, implicit $vgpr0(tied-def 0), implicit $exec86    $vgpr3 = V_MOV_B32_e32 $vgpr0, implicit $exec87...88 89# GCN-LABEL: name: sdwa_dword_write_valu_read90# GCN:      V_MOV_B32_sdwa91# GCN-NEXT: V_MOV_B32_e3292name:            sdwa_dword_write_valu_read93body:             |94  bb.0:95    $vgpr0 = V_MOV_B32_sdwa 0, $vgpr1, 0, 6, 2, 5, implicit $vgpr0(tied-def 0), implicit $exec96    $vgpr3 = V_MOV_B32_e32 $vgpr0, implicit $exec97...98 99# GCN-LABEL: name: sdwa_lo16_no_write_valu_read100# GCN:      V_CMP_EQ_U32_sdwa101# GCN-NEXT: V_MOV_B32_e32102name:            sdwa_lo16_no_write_valu_read103body:             |104  bb.0:105    $vcc = V_CMP_EQ_U32_sdwa 0, $vgpr1, 0, $vgpr0, 0, 5, 2, implicit $exec106    $vgpr3 = V_MOV_B32_e32 $vgpr0, implicit $exec107...108 109# GCN-LABEL: name: valu_write_sgpr_valu_read_as_constant110# GCN:      V_READFIRSTLANE_B32111# GCN-NEXT: S_NOP 1112# GCN-NEXT: V_MOV_B32_e32113name:            valu_write_sgpr_valu_read_as_constant114body:             |115  bb.0:116    $sgpr0 = V_READFIRSTLANE_B32 $vgpr0, implicit $exec117    $vgpr1 = V_MOV_B32_e32 $sgpr0, implicit $exec118...119 120# GCN-LABEL: name: valu_write_vcc_valu_read_as_constant121# GCN:      V_CMP_NE_U32_e32122# GCN-NEXT: S_NOP 1123# GCN-NEXT: V_ADDC_U32_e32124name:            valu_write_vcc_valu_read_as_constant125body:             |126  bb.0:127    V_CMP_NE_U32_e32 0, $vgpr0, implicit-def $vcc, implicit $exec128    $vgpr1 = V_ADDC_U32_e32 0, $vgpr1, implicit-def $vcc, implicit $vcc, implicit $exec129...130 131# GCN-LABEL: name: valu_write_sgpr_readlane_read_as_laneselect132# GCN:      V_READFIRSTLANE_B32133# GCN-NEXT: S_NOP 3134# GCN-NEXT: V_READLANE_B32135name:            valu_write_sgpr_readlane_read_as_laneselect136body:             |137  bb.0:138    $sgpr0 = V_READFIRSTLANE_B32 $vgpr0, implicit $exec139    $sgpr1 = V_READLANE_B32 $vgpr1, $sgpr0, implicit $exec140...141 142# GCN-LABEL: name: valu_write_sgpr_writelane_read_as_laneselect143# GCN:      V_ADD_CO_U32_e64144# GCN-NEXT: S_NOP 3145# GCN-NEXT: V_WRITELANE_B32146name:            valu_write_sgpr_writelane_read_as_laneselect147body:             |148  bb.0:149    $vgpr0, $sgpr0_sgpr1 = V_ADD_CO_U32_e64 $vgpr0, 1, 0, implicit $exec150    $vgpr1 = V_WRITELANE_B32 0, $sgpr0, $vgpr1, implicit $exec151...152 153# GCN-LABEL: name: vcmpx_write_exec_valu_read_as_constant154# GCN:      V_CMPX_EQ_I32_e32155# GCN-NEXT: S_NOP 1156# GCN-NEXT: V_MOV_B32_e32157name:            vcmpx_write_exec_valu_read_as_constant158body:             |159  bb.0:160    implicit $exec, implicit $vcc = V_CMPX_EQ_I32_e32 $vgpr0, $vgpr1, implicit $exec161    $vgpr1 = V_MOV_B32_e32 $exec_lo, implicit $exec162...163 164# GCN-LABEL: name: vcmpx_write_exec_readlane165# GCN:      V_CMPX_EQ_I32_e32166# GCN-NEXT: S_NOP 3167# GCN-NEXT: V_READLANE_B32168name:            vcmpx_write_exec_readlane169body:             |170  bb.0:171    implicit $exec, implicit $vcc = V_CMPX_EQ_I32_e32 $vgpr0, $vgpr1, implicit $exec172    $sgpr1 = V_READLANE_B32 $vgpr1, 0, implicit $exec173...174 175# GCN-LABEL: name: vcmpx_write_exec_readfirstlane176# GCN:      V_CMPX_EQ_I32_e32177# GCN-NEXT: S_NOP 3178# GCN-NEXT: V_READFIRSTLANE_B32179name:            vcmpx_write_exec_readfirstlane180body:             |181  bb.0:182    implicit $exec, implicit $vcc = V_CMPX_EQ_I32_e32 $vgpr0, $vgpr1, implicit $exec183    $sgpr1 = V_READFIRSTLANE_B32 $vgpr1, implicit $exec184...185 186# GCN-LABEL: name: vcmpx_write_exec_writelane187# GCN:      V_CMPX_EQ_I32_e32188# GCN-NEXT: S_NOP 3189# GCN-NEXT: V_WRITELANE_B32190name:            vcmpx_write_exec_writelane191body:             |192  bb.0:193    implicit $exec, implicit $vcc = V_CMPX_EQ_I32_e32 $vgpr0, $vgpr1, implicit $exec194    $vgpr1 = V_WRITELANE_B32 0, $sgpr0, $vgpr1, implicit $exec195...196 197# GCN-LABEL: name: valu_write_vgpr_readlane_read198# GCN:      V_ADD_CO_U32_e32199# GCN-NEXT: S_NOP 0200# GCN-NEXT: V_READLANE_B32201name:            valu_write_vgpr_readlane_read202body:             |203  bb.0:204    $vgpr1 = V_ADD_CO_U32_e32 $vgpr0, $vgpr0, implicit-def $vcc, implicit $exec205    $sgpr1 = V_READLANE_B32 $vgpr1, $sgpr0, implicit $exec206...207 208# GCN-LABEL: name: valu_write_vgpr_readfirstlane_read209# GCN:      V_ADD_CO_U32_e32210# GCN-NEXT: S_NOP 0211# GCN-NEXT: V_READFIRSTLANE_B32212name:            valu_write_vgpr_readfirstlane_read213body:             |214  bb.0:215    $vgpr1 = V_ADD_CO_U32_e32 $vgpr0, $vgpr0, implicit-def $vcc, implicit $exec216    $sgpr1 = V_READFIRSTLANE_B32 $vgpr1, implicit $exec217...218 219# GCN-LABEL: name: global_store_dwordx4_data_hazard220# GCN:      GLOBAL_STORE_DWORDX4221# GCN-NEXT: S_NOP 1222# GCN-NEXT: V_MOV_B32_e32223name: global_store_dwordx4_data_hazard224 225body:             |226  bb.0:227    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr4_vgpr5228    GLOBAL_STORE_DWORDX4 $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr4_vgpr5, 0, 0, implicit $exec229    $vgpr2 = V_MOV_B32_e32 0, implicit $exec230...231 232# GCN-LABEL: name: global_store_dwordx3_data_hazard233# GCN:      GLOBAL_STORE_DWORDX3234# GCN-NEXT: S_NOP 1235# GCN-NEXT: V_MOV_B32_e32236name: global_store_dwordx3_data_hazard237 238body:             |239  bb.0:240    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr4241    GLOBAL_STORE_DWORDX3 $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr4, 0, 0, implicit $exec242    $vgpr2 = V_MOV_B32_e32 0, implicit $exec243...244