From a9152376b49d8c56debb8023cc6e93d9c071d293 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 1 Apr 2015 15:19:38 -0700 Subject: [PATCH] vc4: Add support for nir_iabs. Tested using the GLSL 1.30 tests for integer abs(). Not currently used, but it was one of the new opcodes used by robclark's idiv lowering. --- src/gallium/drivers/vc4/vc4_program.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/gallium/drivers/vc4/vc4_program.c b/src/gallium/drivers/vc4/vc4_program.c index 5ed2165b014..bcceb3ccb52 100644 --- a/src/gallium/drivers/vc4/vc4_program.c +++ b/src/gallium/drivers/vc4/vc4_program.c @@ -1069,9 +1069,14 @@ ntq_emit_alu(struct vc4_compile *c, nir_alu_instr *instr) case nir_op_fsign: *dest = ntq_fsign(c, src[0]); break; + case nir_op_fabs: *dest = qir_FMAXABS(c, src[0], src[0]); break; + case nir_op_iabs: + *dest = qir_MAX(c, src[0], + qir_SUB(c, qir_uniform_ui(c, 0), src[0])); + break; default: fprintf(stderr, "unknown NIR ALU inst: "); -- 2.30.2