freedreno/ir3: implement fquantize2f16
authorJonathan Marek <jonathan@marek.ca>
Mon, 14 Oct 2019 15:42:12 +0000 (11:42 -0400)
committerJonathan Marek <jonathan@marek.ca>
Mon, 14 Oct 2019 21:48:22 +0000 (17:48 -0400)
Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Reviewed-by: Rob Clark <robclark@gmail.com>
src/freedreno/ir3/ir3_compiler_nir.c

index 0ddf4d341302ff98c365a45317c8efa9e6c1bbd2..6ed24e41e2f88adf5d27fc8fcf7c1711d3e831df 100644 (file)
@@ -387,6 +387,11 @@ emit_alu(struct ir3_context *ctx, nir_alu_instr *alu)
        case nir_op_u2u8:
                dst[0] = create_cov(ctx, src[0], bs[0], alu->op);
                break;
+       case nir_op_fquantize2f16:
+               dst[0] = create_cov(ctx,
+                                                       create_cov(ctx, src[0], 32, nir_op_f2f16),
+                                                       16, nir_op_f2f32);
+               break;
        case nir_op_f2b32:
                dst[0] = ir3_CMPS_F(b, src[0], 0, create_immed(b, fui(0.0)), 0);
                dst[0]->cat2.condition = IR3_COND_NE;