diff --git a/src/broadcom/compiler/nir_to_vir.c b/src/broadcom/compiler/nir_to_vir.c index bba6245d3ae..2a12438b55f 100644 --- a/src/broadcom/compiler/nir_to_vir.c +++ b/src/broadcom/compiler/nir_to_vir.c @@ -1469,6 +1469,8 @@ ntq_emit_alu(struct v3d_compile *c, nir_alu_instr *instr) uint32_t mask = bit_size == 16 ? 0xffff : 0xff; result = vir_AND(c, src[0], vir_uniform_ui(c, mask)); result = sign_extend(c, result, bit_size, 32); + } else { + result = src[0]; } result = vir_ITOF(c, result); vir_set_pack(c->defs[result.index], V3D_QPU_PACK_L); @@ -1481,6 +1483,8 @@ ntq_emit_alu(struct v3d_compile *c, nir_alu_instr *instr) if (bit_size < 32) { uint32_t mask = bit_size == 16 ? 0xffff : 0xff; result = vir_AND(c, src[0], vir_uniform_ui(c, mask)); + } else { + result = src[0]; } result = vir_UTOF(c, result); vir_set_pack(c->defs[result.index], V3D_QPU_PACK_L);