167 lines · plain
1# RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -mattr=+wavefrontsize64 -verify-machineinstrs -run-pass post-RA-hazard-rec -o - %s | FileCheck -check-prefixes=GCN,GFX10 %s2# RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64 -verify-machineinstrs -run-pass post-RA-hazard-rec -o - %s | FileCheck -check-prefix=GCN %s3 4# GCN-LABEL: name: hazard_vcmpx_smov_exec_lo5# GCN: $sgpr0 = S_MOV_B32 $exec_lo6# GFX10-NEXT: S_WAITCNT_DEPCTR 653107# GCN-NEXT: V_CMPX_LE_F32_nosdst_e328---9name: hazard_vcmpx_smov_exec_lo10body: |11 bb.0:12 successors: %bb.113 $vgpr0 = V_MOV_B32_e32 0, implicit $exec14 $sgpr0 = S_MOV_B32 $exec_lo15 V_CMPX_LE_F32_nosdst_e32 0, $vgpr0, implicit-def $exec, implicit $mode, implicit $exec16 S_BRANCH %bb.117 18 bb.1:19 S_ENDPGM 020...21 22# GCN-LABEL: name: hazard_vcmpx_smov_exec23# GCN: $sgpr0_sgpr1 = S_MOV_B64 $exec24# GFX10-NEXT: S_WAITCNT_DEPCTR 6531025# GCN-NEXT: V_CMPX_LE_F32_nosdst_e3226---27name: hazard_vcmpx_smov_exec28body: |29 bb.0:30 successors: %bb.131 $vgpr0 = V_MOV_B32_e32 0, implicit $exec32 $sgpr0_sgpr1 = S_MOV_B64 $exec33 V_CMPX_LE_F32_nosdst_e32 0, $vgpr0, implicit-def $exec, implicit $mode, implicit $exec34 S_BRANCH %bb.135 36 bb.1:37 S_ENDPGM 038...39 40# GCN-LABEL: name: no_hazard_vcmpx_vmov_exec_lo41# GCN: $vgpr0 = V_MOV_B32_e32 $exec_lo, implicit $exec42# GCN-NEXT: V_CMPX_LE_F32_nosdst_e3243---44name: no_hazard_vcmpx_vmov_exec_lo45body: |46 bb.0:47 successors: %bb.148 $vgpr0 = V_MOV_B32_e32 $exec_lo, implicit $exec49 V_CMPX_LE_F32_nosdst_e32 0, $vgpr0, implicit-def $exec, implicit $mode, implicit $exec50 S_BRANCH %bb.151 52 bb.1:53 S_ENDPGM 054...55 56# GCN-LABEL: name: no_hazard_vcmpx_valu_impuse_exec57# GCN: $vgpr0 = V_MOV_B32_e32 0, implicit $exec58# GCN-NEXT: V_CMPX_LE_F32_nosdst_e3259---60name: no_hazard_vcmpx_valu_impuse_exec61body: |62 bb.0:63 successors: %bb.164 $vgpr0 = V_MOV_B32_e32 0, implicit $exec65 V_CMPX_LE_F32_nosdst_e32 0, $vgpr0, implicit-def $exec, implicit $mode, implicit $exec66 S_BRANCH %bb.167 68 bb.1:69 S_ENDPGM 070...71 72# GCN-LABEL: name: no_hazard_vcmpx_smov_exec_lo_valu_writes_sgpr_imp73# GCN: $sgpr0 = S_MOV_B32 $exec_lo74# GCN-NEXT: $vgpr0 = V_ADDC_U32_e32 0, $vgpr0, implicit-def $vcc, implicit $vcc, implicit $exec75# GCN-NEXT: V_CMPX_LE_F32_nosdst_e3276---77name: no_hazard_vcmpx_smov_exec_lo_valu_writes_sgpr_imp78body: |79 bb.0:80 successors: %bb.181 $vgpr0 = V_MOV_B32_e32 0, implicit $exec82 $sgpr0 = S_MOV_B32 $exec_lo83 $vgpr0 = V_ADDC_U32_e32 0, $vgpr0, implicit-def $vcc, implicit $vcc, implicit $exec84 V_CMPX_LE_F32_nosdst_e32 0, $vgpr0, implicit-def $exec, implicit $mode, implicit $exec85 S_BRANCH %bb.186 87 bb.1:88 S_ENDPGM 089...90 91# GCN-LABEL: name: no_hazard_vcmpx_smov_exec_lo_valu_writes_sgpr_exp92# GCN: $sgpr0 = S_MOV_B32 $exec_lo93# GCN-NEXT: $sgpr0_sgpr1 = V_CMP_EQ_U32_e64 $vgpr0, 0, implicit $exec94# GCN-NEXT: V_CMPX_LE_F32_nosdst_e3295---96name: no_hazard_vcmpx_smov_exec_lo_valu_writes_sgpr_exp97body: |98 bb.0:99 successors: %bb.1100 $vgpr0 = V_MOV_B32_e32 0, implicit $exec101 $sgpr0 = S_MOV_B32 $exec_lo102 $sgpr0_sgpr1 = V_CMP_EQ_U32_e64 $vgpr0, 0, implicit $exec103 V_CMPX_LE_F32_nosdst_e32 0, $vgpr0, implicit-def $exec, implicit $mode, implicit $exec104 S_BRANCH %bb.1105 106 bb.1:107 S_ENDPGM 0108...109 110# GCN-LABEL: name: no_hazard_vcmpx_smov_exec_lo_depctr_fffe111# GCN: $sgpr0 = S_MOV_B32 $exec_lo112# GCN-NEXT: S_WAITCNT_DEPCTR 65534113# GCN-NEXT: V_CMPX_LE_F32_nosdst_e32114---115name: no_hazard_vcmpx_smov_exec_lo_depctr_fffe116body: |117 bb.0:118 successors: %bb.1119 $vgpr0 = V_MOV_B32_e32 0, implicit $exec120 $sgpr0 = S_MOV_B32 $exec_lo121 S_WAITCNT_DEPCTR 65534122 V_CMPX_LE_F32_nosdst_e32 0, $vgpr0, implicit-def $exec, implicit $mode, implicit $exec123 S_BRANCH %bb.1124 125 bb.1:126 S_ENDPGM 0127...128 129# GCN-LABEL: name: hazard_vcmpx_smov_exec_lo_depctr_ffff130# GCN: $sgpr0 = S_MOV_B32 $exec_lo131# GCN-NEXT: S_WAITCNT_DEPCTR 65535132# GFX10-NEXT: S_WAITCNT_DEPCTR 65310133# GCN-NEXT: V_CMPX_LE_F32_nosdst_e32134---135name: hazard_vcmpx_smov_exec_lo_depctr_ffff136body: |137 bb.0:138 successors: %bb.1139 $vgpr0 = V_MOV_B32_e32 0, implicit $exec140 $sgpr0 = S_MOV_B32 $exec_lo141 S_WAITCNT_DEPCTR 65535142 V_CMPX_LE_F32_nosdst_e32 0, $vgpr0, implicit-def $exec, implicit $mode, implicit $exec143 S_BRANCH %bb.1144 145 bb.1:146 S_ENDPGM 0147...148 149# GCN-LABEL: name: hazard_vcmpx_smov_exec_lo_depctr_effe150# GCN: $sgpr0 = S_MOV_B32 $exec_lo151# GCN-NEXT: S_WAITCNT_DEPCTR 61438152# GCN-NEXT: V_CMPX_LE_F32_nosdst_e32153---154name: hazard_vcmpx_smov_exec_lo_depctr_effe155body: |156 bb.0:157 successors: %bb.1158 $vgpr0 = V_MOV_B32_e32 0, implicit $exec159 $sgpr0 = S_MOV_B32 $exec_lo160 S_WAITCNT_DEPCTR 61438161 V_CMPX_LE_F32_nosdst_e32 0, $vgpr0, implicit-def $exec, implicit $mode, implicit $exec162 S_BRANCH %bb.1163 164 bb.1:165 S_ENDPGM 0166...167