From: Eric Anholt Date: Wed, 1 Apr 2015 22:19:38 +0000 (-0700) Subject: vc4: Add support for nir_iabs. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a9152376b49d8c56debb8023cc6e93d9c071d293;p=mesa.git 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. --- 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: ");