ir3/compiler: Handle new alu opcodes 'umul_low' and 'imadsh_mix16'
authorEduardo Lima Mitev <elima@igalia.com>
Sun, 12 May 2019 19:12:59 +0000 (21:12 +0200)
committerEduardo Lima Mitev <elima@igalia.com>
Fri, 7 Jun 2019 06:45:05 +0000 (08:45 +0200)
They directly emit ir3_MULL_U and ir3_MADSH_M16 respectively.

Reviewed-by: Eric Anholt <eric@anholt.net>
src/freedreno/ir3/ir3_compiler_nir.c

index a441eadee84efbeb70ee0f822e2108cc600f199c..1a75181a96723077605e7112fb415301b2098129 100644 (file)
@@ -559,6 +559,12 @@ emit_alu(struct ir3_context *ctx, nir_alu_instr *alu)
                        dst[0] = ir3_MUL_S(b, src[0], 0, src[1], 0);
                }
                break;
+       case nir_op_umul_low:
+               dst[0] = ir3_MULL_U(b, src[0], 0, src[1], 0);
+               break;
+       case nir_op_imadsh_mix16:
+               dst[0] = ir3_MADSH_M16(b, src[0], 0, src[1], 0, src[2], 0);
+               break;
        case nir_op_ineg:
                dst[0] = ir3_ABSNEG_S(b, src[0], IR3_REG_SNEG);
                break;