Commit 9d62df38 authored by Jason Ekstrand's avatar Jason Ekstrand
Browse files

nir: Validate that the sources of a phi have the same size as the destination


Reviewed-by: default avatarConnor Abbott <cwabbott0@gmail.com>
parent 24249599
......@@ -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;
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment