diff --git a/.pick_status.json b/.pick_status.json index 168fb5e6d89..159bc559806 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -4054,7 +4054,7 @@ "description": "aco: check instruction format before waiting for a previous SMEM store", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "master_sha": null, "because_sha": "1749953ea3eb2f3e33a61243cc11860795c658f3" }, diff --git a/src/amd/compiler/aco_insert_waitcnt.cpp b/src/amd/compiler/aco_insert_waitcnt.cpp index e4087e7add5..bc16fceaa9a 100644 --- a/src/amd/compiler/aco_insert_waitcnt.cpp +++ b/src/amd/compiler/aco_insert_waitcnt.cpp @@ -457,7 +457,7 @@ wait_imm kill(Instruction* instr, wait_ctx& ctx) imm.lgkm = 0; } - if (ctx.chip_class >= GFX10) { + if (ctx.chip_class >= GFX10 && instr->format == Format::SMEM) { /* GFX10: A store followed by a load at the same address causes a problem because * the load doesn't load the correct values unless we wait for the store first. * This is NOT mitigated by an s_nop.