From: Eric Anholt Date: Thu, 6 Oct 2016 23:46:35 +0000 (-0700) Subject: vc4: Fix assertion fails from trying to cast non-ALU instrs to ALU. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b30205b1120d4a87b6fb8eac9dea9a7f7a065123;p=mesa.git vc4: Fix assertion fails from trying to cast non-ALU instrs to ALU. Fixes 100 piglit tests since the assertions were added to nir.h. What's amazing is that these tests used to pass, even when casting garbage. --- diff --git a/src/gallium/drivers/vc4/vc4_program.c b/src/gallium/drivers/vc4/vc4_program.c index 84add5253ff..a91e6200e8a 100644 --- a/src/gallium/drivers/vc4/vc4_program.c +++ b/src/gallium/drivers/vc4/vc4_program.c @@ -918,6 +918,8 @@ static struct qreg ntq_emit_bcsel(struct vc4_compile *c, nir_alu_instr *instr, { if (!instr->src[0].src.is_ssa) goto out; + if (instr->src[0].src.ssa->parent_instr->type != nir_instr_type_alu) + goto out; nir_alu_instr *compare = nir_instr_as_alu(instr->src[0].src.ssa->parent_instr); if (!compare)