169 lines · plain
1# RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -verify-machineinstrs -run-pass post-RA-hazard-rec -o - %s | FileCheck -check-prefix=GCN %s2 3# GCN-LABEL: name: hazard_vcmpx_permlane16var4# GCN: V_CMPX_LE_F32_nosdst_e325# GCN: S_ADD_U326# GCN-NEXT: $vgpr1 = V_MOV_B32_e32 killed $vgpr1, implicit $exec7# GCN-NEXT: V_PERMLANE16_VAR_B32_e648---9name: hazard_vcmpx_permlane16var10body: |11 bb.0:12 successors: %bb.113 $vgpr0 = V_MOV_B32_e32 0, implicit $exec14 V_CMPX_LE_F32_nosdst_e32 0, $vgpr0, implicit-def $exec, implicit $mode, implicit $exec15 S_BRANCH %bb.116 17 bb.1:18 $vgpr1 = IMPLICIT_DEF19 $vgpr2 = IMPLICIT_DEF20 $sgpr0 = IMPLICIT_DEF21 $sgpr1 = S_ADD_U32 $sgpr0, 0, implicit-def $scc22 $vgpr1 = V_PERMLANE16_VAR_B32_e64 0, killed $vgpr1, 0, killed $vgpr2, $vgpr1, 0, implicit $exec23 S_ENDPGM 024...25 26# GCN-LABEL: name: hazard_vcmpx_permlanex16var27# GCN: V_CMPX_LE_F32_nosdst_e3228# GCN: $vgpr1 = V_MOV_B32_e32 killed $vgpr1, implicit $exec29# GCN-NEXT: V_PERMLANEX16_VAR_B32_e6430---31name: hazard_vcmpx_permlanex16var32body: |33 bb.0:34 successors: %bb.135 $vgpr0 = V_MOV_B32_e32 0, implicit $exec36 V_CMPX_LE_F32_nosdst_e32 0, $vgpr0, implicit-def $exec, implicit $mode, implicit $exec37 S_BRANCH %bb.138 39 bb.1:40 $vgpr1 = IMPLICIT_DEF41 $vgpr2 = IMPLICIT_DEF42 $sgpr0 = IMPLICIT_DEF43 $sgpr1 = IMPLICIT_DEF44 $vgpr1 = V_PERMLANEX16_VAR_B32_e64 0, killed $vgpr1, 0, killed $vgpr2, $vgpr1, 0, implicit $exec45 S_ENDPGM 046...47 48# GCN-LABEL: name: hazard_vcmpx_permlane16var_v_nop49# GCN: V_CMPX_LE_F32_nosdst_e3250# GCN: V_NOP51# GCN-NEXT: $vgpr1 = V_MOV_B32_e32 killed $vgpr1, implicit $exec52# GCN-NEXT: V_PERMLANE16_VAR_B32_e6453---54name: hazard_vcmpx_permlane16var_v_nop55body: |56 bb.0:57 successors: %bb.158 $vgpr0 = V_MOV_B32_e32 0, implicit $exec59 V_CMPX_LE_F32_nosdst_e32 0, $vgpr0, implicit-def $exec, implicit $mode, implicit $exec60 S_BRANCH %bb.161 62 bb.1:63 $vgpr1 = IMPLICIT_DEF64 $vgpr2 = IMPLICIT_DEF65 $sgpr0 = IMPLICIT_DEF66 $sgpr1 = IMPLICIT_DEF67 V_NOP_e32 implicit $exec68 $vgpr1 = V_PERMLANE16_VAR_B32_e64 0, killed $vgpr1, 0, killed $vgpr2, $vgpr1, 0, implicit $exec69 S_ENDPGM 070...71 72# GCN-LABEL: name: hazard_vcmpx_permlane16var_far73# GCN: V_CMPX_LE_F32_nosdst_e3274# GCN: $vgpr1 = V_MOV_B32_e32 killed $vgpr1, implicit $exec75# GCN-NEXT: V_PERMLANE16_VAR_B32_e6476---77name: hazard_vcmpx_permlane16var_far78body: |79 bb.0:80 successors: %bb.181 $vgpr0 = V_MOV_B32_e32 0, implicit $exec82 V_CMPX_LE_F32_nosdst_e32 0, $vgpr0, implicit-def $exec, implicit $mode, implicit $exec83 S_BRANCH %bb.184 85 bb.1:86 $vgpr1 = IMPLICIT_DEF87 $vgpr2 = IMPLICIT_DEF88 $sgpr0 = IMPLICIT_DEF89 $sgpr1 = IMPLICIT_DEF90 V_NOP_e32 implicit $exec91 V_NOP_e32 implicit $exec92 V_NOP_e32 implicit $exec93 V_NOP_e32 implicit $exec94 V_NOP_e32 implicit $exec95 V_NOP_e32 implicit $exec96 V_NOP_e32 implicit $exec97 V_NOP_e32 implicit $exec98 V_NOP_e32 implicit $exec99 $vgpr1 = V_PERMLANE16_VAR_B32_e64 0, killed $vgpr1, 0, killed $vgpr1, $vgpr1, 0, implicit $exec100 S_ENDPGM 0101...102 103# GCN-LABEL: name: hazard_vcmpx_permlane16var_no_hazard104# GCN: V_CMPX_LE_F32_nosdst_e32105# GCN: V_ADD_F32106# GCN-NEXT: V_PERMLANE16_VAR_B32_e64107---108name: hazard_vcmpx_permlane16var_no_hazard109body: |110 bb.0:111 successors: %bb.1112 $vgpr0 = V_MOV_B32_e32 0, implicit $exec113 V_CMPX_LE_F32_nosdst_e32 0, $vgpr0, implicit-def $exec, implicit $mode, implicit $exec114 S_BRANCH %bb.1115 116 bb.1:117 $vgpr1 = IMPLICIT_DEF118 $sgpr0 = IMPLICIT_DEF119 $sgpr1 = IMPLICIT_DEF120 $vgpr2 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec121 $vgpr1 = V_PERMLANE16_VAR_B32_e64 0, killed $vgpr1, 0, killed $vgpr2, $vgpr1, 0, implicit $exec122 S_ENDPGM 0123...124 125# GCN-LABEL: name: hazard_vcmpx_permlane16var_undef_src126# GCN: V_CMPX_LE_F32_nosdst_e32127# GCN: S_ADD_U32128# GCN-NEXT: dead $vgpr1 = V_MOV_B32_e32 undef $vgpr1, implicit $exec129# GCN-NEXT: V_PERMLANE16_VAR_B32_e64130---131name: hazard_vcmpx_permlane16var_undef_src132body: |133 bb.0:134 successors: %bb.1135 $vgpr0 = V_MOV_B32_e32 0, implicit $exec136 V_CMPX_LE_F32_nosdst_e32 0, $vgpr0, implicit-def $exec, implicit $mode, implicit $exec137 S_BRANCH %bb.1138 139 bb.1:140 $vgpr2 = IMPLICIT_DEF141 $sgpr0 = IMPLICIT_DEF142 $sgpr1 = S_ADD_U32 $sgpr0, 0, implicit-def $scc143 $vgpr1 = V_PERMLANE16_VAR_B32_e64 0, undef $vgpr1, 0, killed $vgpr2, undef $vgpr1, 0, implicit $exec144 S_ENDPGM 0145...146 147# GCN-LABEL: name: hazard_vcmpx_e64_permlane16var148# GCN: V_CMPX_LE_F32_nosdst_e64149# GCN: S_ADD_U32150# GCN-NEXT: $vgpr1 = V_MOV_B32_e32 killed $vgpr1, implicit $exec151# GCN-NEXT: V_PERMLANE16_VAR_B32_e64152---153name: hazard_vcmpx_e64_permlane16var154body: |155 bb.0:156 successors: %bb.1157 $vgpr0 = V_MOV_B32_e32 0, implicit $exec158 V_CMPX_LE_F32_nosdst_e64 0, 0, 0, $vgpr0, 0, implicit-def $exec, implicit $mode, implicit $exec159 S_BRANCH %bb.1160 161 bb.1:162 $vgpr1 = IMPLICIT_DEF163 $vgpr2 = IMPLICIT_DEF164 $sgpr0 = IMPLICIT_DEF165 $sgpr1 = S_ADD_U32 $sgpr0, 0, implicit-def $scc166 $vgpr1 = V_PERMLANE16_VAR_B32_e64 0, killed $vgpr1, 0, killed $vgpr2, $vgpr1, 0, implicit $exec167 S_ENDPGM 0168...169