From 07d5b5a97273a9ffb192b80657d2082e94cbbf4c Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 13 Feb 2019 12:21:01 -0800 Subject: [PATCH] v3d: Fix f2b32 behavior. Now that we don't have the vir_PF() magic, it's obvious that we were doing the wrong thing for f2b32 by allowing -0.0 to produce true instead of false. --- src/broadcom/compiler/nir_to_vir.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/broadcom/compiler/nir_to_vir.c b/src/broadcom/compiler/nir_to_vir.c index 8dee69e90de..86f4a3a12c1 100644 --- a/src/broadcom/compiler/nir_to_vir.c +++ b/src/broadcom/compiler/nir_to_vir.c @@ -876,12 +876,17 @@ ntq_emit_alu(struct v3d_compile *c, nir_alu_instr *instr) result = vir_AND(c, src[0], vir_uniform_ui(c, 1)); break; case nir_op_i2b32: - case nir_op_f2b32: vir_set_pf(vir_MOV_dest(c, vir_nop_reg(), src[0]), V3D_QPU_PF_PUSHZ); result = vir_MOV(c, vir_SEL(c, V3D_QPU_COND_IFNA, vir_uniform_ui(c, ~0), vir_uniform_ui(c, 0))); + case nir_op_f2b32: + vir_set_pf(vir_FMOV_dest(c, vir_nop_reg(), src[0]), + V3D_QPU_PF_PUSHZ); + result = vir_MOV(c, vir_SEL(c, V3D_QPU_COND_IFNA, + vir_uniform_ui(c, ~0), + vir_uniform_ui(c, 0))); break; case nir_op_iadd: -- 2.30.2