diff options
author | Eric Anholt <[email protected]> | 2015-04-01 15:19:38 -0700 |
---|---|---|
committer | Eric Anholt <[email protected]> | 2015-04-02 10:32:35 -0700 |
commit | a9152376b49d8c56debb8023cc6e93d9c071d293 (patch) | |
tree | 9d750cef5480d7ed4a5e9b05392ba904e6233b75 /src/gallium | |
parent | e50cf5faa5709eaeea1da8759f13b140b4b3cea1 (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.
Diffstat (limited to 'src/gallium')
-rw-r--r-- | src/gallium/drivers/vc4/vc4_program.c | 5 |
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: "); |