nir: Validate that the sources of a phi have the same size as the destination
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
This commit is contained in:
@@ -460,9 +460,22 @@ validate_phi_src(nir_phi_instr *instr, nir_block *pred, validate_state *state)
|
||||
{
|
||||
state->instr = &instr->instr;
|
||||
|
||||
assert(instr->dest.is_ssa);
|
||||
|
||||
exec_list_validate(&instr->srcs);
|
||||
foreach_list_typed(nir_phi_src, src, node, &instr->srcs) {
|
||||
if (src->pred == pred) {
|
||||
unsigned num_components;
|
||||
if (src->src.is_ssa)
|
||||
num_components = src->src.ssa->num_components;
|
||||
else {
|
||||
if (src->src.reg.reg->is_packed)
|
||||
num_components = 4; /* can't check anything */
|
||||
else
|
||||
num_components = src->src.reg.reg->num_components;
|
||||
}
|
||||
assert(num_components == instr->dest.ssa.num_components);
|
||||
|
||||
validate_src(&src->src, state);
|
||||
return;
|
||||
}
|
||||
|
Reference in New Issue
Block a user