aco: don't combine DPP into v_cmpx
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Georg Lehmann <dadschoorse@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25471>
This commit is contained in:
@@ -793,14 +793,6 @@ VALU_writes_sgpr(aco_ptr<Instruction>& instr)
|
||||
return false;
|
||||
}
|
||||
|
||||
bool
|
||||
instr_writes_exec(const aco_ptr<Instruction>& instr)
|
||||
{
|
||||
return std::any_of(instr->definitions.begin(), instr->definitions.end(),
|
||||
[](const Definition& def) -> bool
|
||||
{ return def.physReg() == exec_lo || def.physReg() == exec_hi; });
|
||||
}
|
||||
|
||||
bool
|
||||
instr_writes_sgpr(const aco_ptr<Instruction>& instr)
|
||||
{
|
||||
@@ -915,7 +907,7 @@ handle_instruction_gfx10(State& state, NOP_ctx_gfx10& ctx, aco_ptr<Instruction>&
|
||||
if (!instr->isVALU() && instr->reads_exec()) {
|
||||
ctx.has_nonVALU_exec_read = true;
|
||||
} else if (instr->isVALU()) {
|
||||
if (instr_writes_exec(instr)) {
|
||||
if (instr->writes_exec()) {
|
||||
ctx.has_nonVALU_exec_read = false;
|
||||
|
||||
/* Insert s_waitcnt_depctr instruction with magic imm to mitigate the problem */
|
||||
@@ -1151,7 +1143,7 @@ handle_valu_partial_forwarding_hazard_instr(VALUPartialForwardingHazardGlobalSta
|
||||
aco_ptr<Instruction>& instr)
|
||||
{
|
||||
if (instr->isSALU() && !instr->definitions.empty()) {
|
||||
if (block_state.state == written_after_exec_write && instr_writes_exec(instr))
|
||||
if (block_state.state == written_after_exec_write && instr->writes_exec())
|
||||
block_state.state = exec_written;
|
||||
} else if (instr->isVALU()) {
|
||||
bool vgpr_write = false;
|
||||
|
||||
Reference in New Issue
Block a user