|
60 | 60 | define amdgpu_gs void @mask_hazard_optimize1() { ret void } |
61 | 61 | define amdgpu_gs void @mask_hazard_optimize2() { ret void } |
62 | 62 | define amdgpu_gs void @mask_hazard_optimize3() { ret void } |
| 63 | + define amdgpu_gs void @mask_hazard_optimize_terminators() { ret void } |
63 | 64 | ... |
64 | 65 |
|
65 | 66 | --- |
@@ -1268,3 +1269,53 @@ body: | |
1268 | 1269 | $vgpr14 = V_CNDMASK_B32_e32 $sgpr49, killed $vgpr14, implicit killed $vcc, implicit $exec |
1269 | 1270 | $vgpr20 = V_ADD_U32_e32 $sgpr54, $vgpr16, implicit $exec |
1270 | 1271 | ... |
| 1272 | + |
| 1273 | +--- |
| 1274 | +name: mask_hazard_optimize_terminators |
| 1275 | +body: | |
| 1276 | + ; GFX11-LABEL: name: mask_hazard_optimize_terminators |
| 1277 | + ; GFX11: bb.0: |
| 1278 | + ; GFX11-NEXT: successors: %bb.1(0x80000000) |
| 1279 | + ; GFX11-NEXT: {{ $}} |
| 1280 | + ; GFX11-NEXT: $vgpr3 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec |
| 1281 | + ; GFX11-NEXT: V_CMP_NE_U32_e32 0, $vgpr5, implicit-def $vcc, implicit $exec |
| 1282 | + ; GFX11-NEXT: $sgpr4 = S_MOV_B32 $sgpr1 |
| 1283 | + ; GFX11-NEXT: $sgpr5 = S_MOV_B32 $sgpr2 |
| 1284 | + ; GFX11-NEXT: S_WAITCNT_DEPCTR .VaVcc_0 |
| 1285 | + ; GFX11-NEXT: $sgpr6 = S_MOV_B32_term $sgpr4 |
| 1286 | + ; GFX11-NEXT: $sgpr7 = S_MOV_B32_term $sgpr5 |
| 1287 | + ; GFX11-NEXT: S_BRANCH %bb.1 |
| 1288 | + ; GFX11-NEXT: {{ $}} |
| 1289 | + ; GFX11-NEXT: bb.1: |
| 1290 | + ; GFX11-NEXT: $vgpr4 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec |
| 1291 | + ; GFX11-NEXT: S_ENDPGM 0 |
| 1292 | + ; |
| 1293 | + ; GFX12-LABEL: name: mask_hazard_optimize_terminators |
| 1294 | + ; GFX12: bb.0: |
| 1295 | + ; GFX12-NEXT: successors: %bb.1(0x80000000) |
| 1296 | + ; GFX12-NEXT: {{ $}} |
| 1297 | + ; GFX12-NEXT: $vgpr3 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec |
| 1298 | + ; GFX12-NEXT: V_CMP_NE_U32_e32 0, $vgpr5, implicit-def $vcc, implicit $exec |
| 1299 | + ; GFX12-NEXT: $sgpr4 = S_MOV_B32 $sgpr1 |
| 1300 | + ; GFX12-NEXT: $sgpr5 = S_MOV_B32 $sgpr2 |
| 1301 | + ; GFX12-NEXT: $sgpr6 = S_MOV_B32_term $sgpr4 |
| 1302 | + ; GFX12-NEXT: $sgpr7 = S_MOV_B32_term $sgpr5 |
| 1303 | + ; GFX12-NEXT: S_BRANCH %bb.1 |
| 1304 | + ; GFX12-NEXT: {{ $}} |
| 1305 | + ; GFX12-NEXT: bb.1: |
| 1306 | + ; GFX12-NEXT: S_WAITCNT_DEPCTR .VaVcc_0 |
| 1307 | + ; GFX12-NEXT: $vgpr4 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec |
| 1308 | + ; GFX12-NEXT: S_ENDPGM 0 |
| 1309 | + bb.0: |
| 1310 | + $vgpr3 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec |
| 1311 | + V_CMP_NE_U32_e32 0, $vgpr5, implicit-def $vcc, implicit $exec |
| 1312 | + $sgpr4 = S_MOV_B32 $sgpr1 |
| 1313 | + $sgpr5 = S_MOV_B32 $sgpr2 |
| 1314 | + $sgpr6 = S_MOV_B32_term $sgpr4 |
| 1315 | + $sgpr7 = S_MOV_B32_term $sgpr5 |
| 1316 | + S_BRANCH %bb.1 |
| 1317 | +
|
| 1318 | + bb.1: |
| 1319 | + $vgpr4 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $vcc, implicit $exec |
| 1320 | + S_ENDPGM 0 |
| 1321 | +... |
0 commit comments