diff --git a/.pick_status.json b/.pick_status.json index 6b6f4ca86d2..bcb21919c49 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -1084,7 +1084,7 @@ "description": "aco: don't move exec writes around exec writes", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null }, diff --git a/src/amd/compiler/aco_scheduler.cpp b/src/amd/compiler/aco_scheduler.cpp index 75c1e676b63..ef1da38ce3c 100644 --- a/src/amd/compiler/aco_scheduler.cpp +++ b/src/amd/compiler/aco_scheduler.cpp @@ -560,7 +560,7 @@ perform_hazard_query(hazard_query* query, Instruction* instr, bool upwards) if (!upwards && instr->opcode == aco_opcode::p_exit_early_if) return hazard_fail_unreorderable; - if (query->uses_exec) { + if (query->uses_exec || query->writes_exec) { for (const Definition& def : instr->definitions) { if (def.isFixed() && def.physReg() == exec) return hazard_fail_exec;