mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-22 00:30:13 +01:00
r600/sfh: Handle 64 bit comparisons in predicate optimization
Signed-off-by: Gert Wollny <gert.wollny@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37205>
This commit is contained in:
parent
abe9b61212
commit
125ce0f909
2 changed files with 13 additions and 0 deletions
|
|
@ -151,6 +151,7 @@ public:
|
||||||
static bool from_nir(nir_alu_instr *alu, Shader& shader);
|
static bool from_nir(nir_alu_instr *alu, Shader& shader);
|
||||||
|
|
||||||
int alu_slots() const { return m_alu_slots; }
|
int alu_slots() const { return m_alu_slots; }
|
||||||
|
void set_alu_slots(unsigned slots) { m_alu_slots = slots; }
|
||||||
|
|
||||||
bool split(AluGroup& dest_group);
|
bool split(AluGroup& dest_group);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -309,6 +309,13 @@ pred_from_op(EAluOp pred_op, EAluOp op)
|
||||||
return op2_prede_int;
|
return op2_prede_int;
|
||||||
case op2_setne_int:
|
case op2_setne_int:
|
||||||
return op2_pred_setne_int;
|
return op2_pred_setne_int;
|
||||||
|
|
||||||
|
case op2_setge_64:
|
||||||
|
return op2_pred_setge_64;
|
||||||
|
case op2_setgt_64:
|
||||||
|
return op2_pred_setgt_64;
|
||||||
|
case op2_sete_64:
|
||||||
|
return op2_pred_sete_64;
|
||||||
default:
|
default:
|
||||||
return op0_nop;
|
return op0_nop;
|
||||||
}
|
}
|
||||||
|
|
@ -402,6 +409,11 @@ ReplacePredicate::visit(AluInstr *alu)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (alu->alu_slots() > 1) {
|
||||||
|
m_pred->set_alu_slots(alu->alu_slots());
|
||||||
|
m_pred->set_allowed_dest_chan_mask(5);
|
||||||
|
}
|
||||||
|
|
||||||
success = true;
|
success = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue