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:
Gert Wollny 2025-09-03 23:39:59 +02:00 committed by Marge Bot
parent abe9b61212
commit 125ce0f909
2 changed files with 13 additions and 0 deletions

View file

@ -151,6 +151,7 @@ public:
static bool from_nir(nir_alu_instr *alu, Shader& shader);
int alu_slots() const { return m_alu_slots; }
void set_alu_slots(unsigned slots) { m_alu_slots = slots; }
bool split(AluGroup& dest_group);

View file

@ -309,6 +309,13 @@ pred_from_op(EAluOp pred_op, EAluOp op)
return op2_prede_int;
case op2_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:
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;
}