aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2015-04-01 15:19:38 -0700
committerEric Anholt <[email protected]>2015-04-02 10:32:35 -0700
commita9152376b49d8c56debb8023cc6e93d9c071d293 (patch)
tree9d750cef5480d7ed4a5e9b05392ba904e6233b75
parente50cf5faa5709eaeea1da8759f13b140b4b3cea1 (diff)
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.
-rw-r--r--src/gallium/drivers/vc4/vc4_program.c5
1 files changed, 5 insertions, 0 deletions
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: ");