295 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 52# RUN: llc -mtriple=amdgcn -mcpu=gfx1150 -run-pass=post-RA-hazard-rec %s -o - | FileCheck -check-prefixes=GFX1150 %s3# RUN: llc -mtriple=amdgcn -mcpu=gfx11-generic -run-pass=post-RA-hazard-rec %s -o - | FileCheck -check-prefixes=GFX1150 %s4 5--- |6 define amdgpu_ps void @end_of_shader() {7 ret void8 }9 define amdgpu_ps void @end_of_shader_return_to_epilogue() {10 ret void11 }12 define amdgpu_ps void @end_of_block() {13 ret void14 }15 define amdgpu_ps void @start_of_block() {16 ret void17 }18 define amdgpu_ps void @block_of_exports() {19 ret void20 }21 define amdgpu_ps void @sparse_exports() {22 ret void23 }24 define amdgpu_ps void @existing_setprio_1() {25 ret void26 }27 define amdgpu_ps void @existing_setprio_2() {28 ret void29 }30...31 32---33name: end_of_shader34tracksRegLiveness: true35liveins:36 - { reg: '$vgpr0' }37body: |38 bb.0:39 liveins: $vgpr040 ; GFX1150-LABEL: name: end_of_shader41 ; GFX1150: liveins: $vgpr042 ; GFX1150-NEXT: {{ $}}43 ; GFX1150-NEXT: S_SETPRIO 244 ; GFX1150-NEXT: EXP_DONE 0, $vgpr0, $vgpr0, $vgpr0, $vgpr0, -1, -1, 15, implicit $exec45 ; GFX1150-NEXT: S_SETPRIO 046 ; GFX1150-NEXT: S_NOP 047 ; GFX1150-NEXT: S_NOP 048 ; GFX1150-NEXT: S_ENDPGM 049 EXP_DONE 0, $vgpr0, $vgpr0, $vgpr0, $vgpr0, -1, -1, 15, implicit $exec50 S_ENDPGM 051...52 53---54name: end_of_shader_return_to_epilogue55tracksRegLiveness: true56liveins:57 - { reg: '$vgpr0' }58body: |59 bb.0:60 liveins: $vgpr061 ; GFX1150-LABEL: name: end_of_shader_return_to_epilogue62 ; GFX1150: liveins: $vgpr063 ; GFX1150-NEXT: {{ $}}64 ; GFX1150-NEXT: S_SETPRIO 265 ; GFX1150-NEXT: EXP_DONE 0, $vgpr0, $vgpr0, $vgpr0, $vgpr0, -1, -1, 15, implicit $exec66 ; GFX1150-NEXT: S_SETPRIO 067 ; GFX1150-NEXT: S_WAITCNT_EXPCNT $sgpr_null, 068 ; GFX1150-NEXT: S_NOP 069 ; GFX1150-NEXT: S_NOP 070 ; GFX1150-NEXT: S_SETPRIO 271 ; GFX1150-NEXT: SI_RETURN_TO_EPILOG $vgpr072 EXP_DONE 0, $vgpr0, $vgpr0, $vgpr0, $vgpr0, -1, -1, 15, implicit $exec73 SI_RETURN_TO_EPILOG $vgpr074...75 76---77name: end_of_block78tracksRegLiveness: true79liveins:80 - { reg: '$vgpr0' }81body: |82 ; GFX1150-LABEL: name: end_of_block83 ; GFX1150: bb.0:84 ; GFX1150-NEXT: successors: %bb.1(0x80000000)85 ; GFX1150-NEXT: liveins: $vgpr086 ; GFX1150-NEXT: {{ $}}87 ; GFX1150-NEXT: S_SETPRIO 288 ; GFX1150-NEXT: EXP_DONE 0, $vgpr0, $vgpr0, $vgpr0, $vgpr0, -1, -1, 15, implicit $exec89 ; GFX1150-NEXT: S_SETPRIO 090 ; GFX1150-NEXT: S_WAITCNT_EXPCNT $sgpr_null, 091 ; GFX1150-NEXT: S_NOP 092 ; GFX1150-NEXT: S_NOP 093 ; GFX1150-NEXT: S_SETPRIO 294 ; GFX1150-NEXT: {{ $}}95 ; GFX1150-NEXT: bb.1:96 ; GFX1150-NEXT: S_ENDPGM 097 bb.0:98 liveins: $vgpr099 EXP_DONE 0, $vgpr0, $vgpr0, $vgpr0, $vgpr0, -1, -1, 15, implicit $exec100 101 bb.1:102 S_ENDPGM 0103...104 105---106name: start_of_block107tracksRegLiveness: true108liveins:109 - { reg: '$vgpr0' }110body: |111 ; GFX1150-LABEL: name: start_of_block112 ; GFX1150: bb.0:113 ; GFX1150-NEXT: successors: %bb.1(0x80000000)114 ; GFX1150-NEXT: liveins: $vgpr0115 ; GFX1150-NEXT: {{ $}}116 ; GFX1150-NEXT: S_SETPRIO 2117 ; GFX1150-NEXT: {{ $}}118 ; GFX1150-NEXT: bb.1:119 ; GFX1150-NEXT: successors: %bb.2(0x80000000)120 ; GFX1150-NEXT: liveins: $vgpr0121 ; GFX1150-NEXT: {{ $}}122 ; GFX1150-NEXT: EXP_DONE 0, $vgpr0, $vgpr0, $vgpr0, $vgpr0, -1, -1, 15, implicit $exec123 ; GFX1150-NEXT: S_SETPRIO 0124 ; GFX1150-NEXT: S_WAITCNT_EXPCNT $sgpr_null, 0125 ; GFX1150-NEXT: S_NOP 0126 ; GFX1150-NEXT: S_NOP 0127 ; GFX1150-NEXT: S_SETPRIO 2128 ; GFX1150-NEXT: {{ $}}129 ; GFX1150-NEXT: bb.2:130 ; GFX1150-NEXT: S_ENDPGM 0131 bb.0:132 liveins: $vgpr0133 134 bb.1:135 liveins: $vgpr0136 EXP_DONE 0, $vgpr0, $vgpr0, $vgpr0, $vgpr0, -1, -1, 15, implicit $exec137 138 bb.2:139 S_ENDPGM 0140...141 142---143name: block_of_exports144tracksRegLiveness: true145liveins:146 - { reg: '$vgpr0' }147body: |148 bb.0:149 liveins: $vgpr0150 ; GFX1150-LABEL: name: block_of_exports151 ; GFX1150: liveins: $vgpr0152 ; GFX1150-NEXT: {{ $}}153 ; GFX1150-NEXT: S_SETPRIO 2154 ; GFX1150-NEXT: EXP 2, $vgpr0, $vgpr0, $vgpr0, $vgpr0, -1, -1, 15, implicit $exec155 ; GFX1150-NEXT: EXP 1, $vgpr0, $vgpr0, $vgpr0, $vgpr0, -1, -1, 15, implicit $exec156 ; GFX1150-NEXT: EXP_DONE 0, $vgpr0, $vgpr0, $vgpr0, $vgpr0, -1, -1, 15, implicit $exec157 ; GFX1150-NEXT: S_SETPRIO 0158 ; GFX1150-NEXT: S_NOP 0159 ; GFX1150-NEXT: S_NOP 0160 ; GFX1150-NEXT: S_ENDPGM 0161 EXP 2, $vgpr0, $vgpr0, $vgpr0, $vgpr0, -1, -1, 15, implicit $exec162 EXP 1, $vgpr0, $vgpr0, $vgpr0, $vgpr0, -1, -1, 15, implicit $exec163 EXP_DONE 0, $vgpr0, $vgpr0, $vgpr0, $vgpr0, -1, -1, 15, implicit $exec164 S_ENDPGM 0165...166 167---168name: sparse_exports169tracksRegLiveness: true170liveins:171 - { reg: '$vgpr0' }172body: |173 bb.0:174 liveins: $vgpr0175 ; GFX1150-LABEL: name: sparse_exports176 ; GFX1150: liveins: $vgpr0177 ; GFX1150-NEXT: {{ $}}178 ; GFX1150-NEXT: S_SETPRIO 2179 ; GFX1150-NEXT: EXP 2, $vgpr0, $vgpr0, $vgpr0, $vgpr0, -1, -1, 15, implicit $exec180 ; GFX1150-NEXT: S_SETPRIO 0181 ; GFX1150-NEXT: S_WAITCNT_EXPCNT $sgpr_null, 0182 ; GFX1150-NEXT: S_NOP 0183 ; GFX1150-NEXT: S_NOP 0184 ; GFX1150-NEXT: S_SETPRIO 2185 ; GFX1150-NEXT: $vgpr0 = V_AND_B32_e32 1, $vgpr0, implicit $exec186 ; GFX1150-NEXT: EXP 1, $vgpr0, $vgpr0, $vgpr0, $vgpr0, -1, -1, 15, implicit $exec187 ; GFX1150-NEXT: S_SETPRIO 0188 ; GFX1150-NEXT: S_WAITCNT_EXPCNT $sgpr_null, 0189 ; GFX1150-NEXT: S_NOP 0190 ; GFX1150-NEXT: S_NOP 0191 ; GFX1150-NEXT: S_SETPRIO 2192 ; GFX1150-NEXT: $vgpr0 = V_OR_B32_e32 2, $vgpr0, implicit $exec193 ; GFX1150-NEXT: EXP_DONE 0, $vgpr0, $vgpr0, $vgpr0, $vgpr0, -1, -1, 15, implicit $exec194 ; GFX1150-NEXT: S_SETPRIO 0195 ; GFX1150-NEXT: S_NOP 0196 ; GFX1150-NEXT: S_NOP 0197 ; GFX1150-NEXT: S_ENDPGM 0198 EXP 2, $vgpr0, $vgpr0, $vgpr0, $vgpr0, -1, -1, 15, implicit $exec199 $vgpr0 = V_AND_B32_e32 1, $vgpr0, implicit $exec200 EXP 1, $vgpr0, $vgpr0, $vgpr0, $vgpr0, -1, -1, 15, implicit $exec201 $vgpr0 = V_OR_B32_e32 2, $vgpr0, implicit $exec202 EXP_DONE 0, $vgpr0, $vgpr0, $vgpr0, $vgpr0, -1, -1, 15, implicit $exec203 S_ENDPGM 0204...205 206---207name: existing_setprio_1208tracksRegLiveness: true209liveins:210 - { reg: '$vgpr0' }211body: |212 ; GFX1150-LABEL: name: existing_setprio_1213 ; GFX1150: bb.0:214 ; GFX1150-NEXT: successors: %bb.1(0x80000000)215 ; GFX1150-NEXT: liveins: $vgpr0216 ; GFX1150-NEXT: {{ $}}217 ; GFX1150-NEXT: S_SETPRIO 2218 ; GFX1150-NEXT: $vgpr0 = V_AND_B32_e32 1, $vgpr0, implicit $exec219 ; GFX1150-NEXT: {{ $}}220 ; GFX1150-NEXT: bb.1:221 ; GFX1150-NEXT: successors: %bb.2(0x80000000)222 ; GFX1150-NEXT: liveins: $vgpr0223 ; GFX1150-NEXT: {{ $}}224 ; GFX1150-NEXT: S_SETPRIO 3225 ; GFX1150-NEXT: $vgpr0 = V_OR_B32_e32 2, $vgpr0, implicit $exec226 ; GFX1150-NEXT: S_SETPRIO 2227 ; GFX1150-NEXT: {{ $}}228 ; GFX1150-NEXT: bb.2:229 ; GFX1150-NEXT: successors: %bb.3(0x80000000)230 ; GFX1150-NEXT: liveins: $vgpr0231 ; GFX1150-NEXT: {{ $}}232 ; GFX1150-NEXT: S_SETPRIO 3233 ; GFX1150-NEXT: $vgpr0 = V_OR_B32_e32 3, $vgpr0, implicit $exec234 ; GFX1150-NEXT: S_SETPRIO 2235 ; GFX1150-NEXT: {{ $}}236 ; GFX1150-NEXT: bb.3:237 ; GFX1150-NEXT: liveins: $vgpr0238 ; GFX1150-NEXT: {{ $}}239 ; GFX1150-NEXT: EXP 1, $vgpr0, $vgpr0, $vgpr0, $vgpr0, -1, -1, 15, implicit $exec240 ; GFX1150-NEXT: EXP_DONE 0, $vgpr0, $vgpr0, $vgpr0, $vgpr0, -1, -1, 15, implicit $exec241 ; GFX1150-NEXT: S_SETPRIO 0242 ; GFX1150-NEXT: S_NOP 0243 ; GFX1150-NEXT: S_NOP 0244 ; GFX1150-NEXT: S_ENDPGM 0245 bb.0:246 liveins: $vgpr0247 $vgpr0 = V_AND_B32_e32 1, $vgpr0, implicit $exec248 249 bb.1:250 liveins: $vgpr0251 S_SETPRIO 3252 $vgpr0 = V_OR_B32_e32 2, $vgpr0, implicit $exec253 S_SETPRIO 0254 255 bb.2:256 liveins: $vgpr0257 S_SETPRIO 1258 $vgpr0 = V_OR_B32_e32 3, $vgpr0, implicit $exec259 S_SETPRIO 0260 261 bb.3:262 liveins: $vgpr0263 EXP 1, $vgpr0, $vgpr0, $vgpr0, $vgpr0, -1, -1, 15, implicit $exec264 EXP_DONE 0, $vgpr0, $vgpr0, $vgpr0, $vgpr0, -1, -1, 15, implicit $exec265 S_ENDPGM 0266...267 268---269name: existing_setprio_2270tracksRegLiveness: true271liveins:272 - { reg: '$vgpr0' }273body: |274 bb.0:275 liveins: $vgpr0276 ; GFX1150-LABEL: name: existing_setprio_2277 ; GFX1150: liveins: $vgpr0278 ; GFX1150-NEXT: {{ $}}279 ; GFX1150-NEXT: S_SETPRIO 3280 ; GFX1150-NEXT: EXP 1, $vgpr0, $vgpr0, $vgpr0, $vgpr0, -1, -1, 15, implicit $exec281 ; GFX1150-NEXT: EXP_DONE 0, $vgpr0, $vgpr0, $vgpr0, $vgpr0, -1, -1, 15, implicit $exec282 ; GFX1150-NEXT: S_SETPRIO 0283 ; GFX1150-NEXT: S_WAITCNT_EXPCNT $sgpr_null, 0284 ; GFX1150-NEXT: S_NOP 0285 ; GFX1150-NEXT: S_NOP 0286 ; GFX1150-NEXT: S_SETPRIO 2287 ; GFX1150-NEXT: S_SETPRIO 3288 ; GFX1150-NEXT: S_ENDPGM 0289 S_SETPRIO 3290 EXP 1, $vgpr0, $vgpr0, $vgpr0, $vgpr0, -1, -1, 15, implicit $exec291 EXP_DONE 0, $vgpr0, $vgpr0, $vgpr0, $vgpr0, -1, -1, 15, implicit $exec292 S_SETPRIO 3293 S_ENDPGM 0294...295