lima: ppir: assert on unexpected pipeline dest for fmul and vmul

Assert on unexpected pipeline dest for fmul and vmul to catch scheduler
bugs early

Reviewed-by: Erico Nunes <nunes.erico@gmail.com>
Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33540>
This commit is contained in:
Vasily Khoruzhick 2025-02-14 11:18:35 -08:00 committed by Marge Bot
parent c6c37b516d
commit 5937d12d29

View file

@ -226,6 +226,9 @@ static void ppir_codegen_encode_vec_mul(ppir_node *node, void *code)
ppir_alu_node *alu = ppir_node_to_alu(node);
ppir_dest *dest = &alu->dest;
assert(!(dest->type == ppir_target_pipeline && dest->pipeline == ppir_pipeline_reg_fmul));
int dest_shift = 0;
if (dest->type != ppir_target_pipeline) {
int index = ppir_target_get_dest_reg_index(dest);
@ -299,6 +302,9 @@ static void ppir_codegen_encode_scl_mul(ppir_node *node, void *code)
ppir_alu_node *alu = ppir_node_to_alu(node);
ppir_dest *dest = &alu->dest;
assert(!(dest->type == ppir_target_pipeline && dest->pipeline == ppir_pipeline_reg_vmul));
int dest_component = ffs(dest->write_mask) - 1;
assert(dest_component >= 0);
@ -368,6 +374,7 @@ static void ppir_codegen_encode_vec_add(ppir_node *node, void *code)
ppir_alu_node *alu = ppir_node_to_alu(node);
ppir_dest *dest = &alu->dest;
int index = ppir_target_get_dest_reg_index(dest);
int dest_shift = index & 0x3;
f->dest = index >> 2;