From: Alyssa Rosenzweig Date: Tue, 14 Apr 2020 17:14:51 +0000 (-0400) Subject: pan/bit: Add BI_REDUCE_FMA interp X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=5546d1958b78ba9d933606960a888b62edbf8d01;p=mesa.git pan/bit: Add BI_REDUCE_FMA interp Signed-off-by: Alyssa Rosenzweig Part-of: --- diff --git a/src/panfrost/bifrost/test/bi_interpret.c b/src/panfrost/bifrost/test/bi_interpret.c index 53c3d983eb1..92f5865e48b 100644 --- a/src/panfrost/bifrost/test/bi_interpret.c +++ b/src/panfrost/bifrost/test/bi_interpret.c @@ -472,6 +472,21 @@ bit_step(struct bit_state *s, bi_instruction *ins, bool FMA) case BI_MOV: bpoly(mov); + case BI_REDUCE_FMA: { + if (ins->src_types[0] != nir_type_float32) + unreachable("Unknown reduce type"); + + if (ins->op.reduce == BI_REDUCE_ADD_FREXPM) { + int _nop = 0; + float f = frexp_log(srcs[1].f32, &_nop); + dest.f32 = srcs[0].f32 + f; + } else { + unreachable("Unknown reduce"); + } + + break; + } + case BI_SPECIAL: { assert(nir_alu_type_get_base_type(ins->dest_type) == nir_type_float); assert(nir_alu_type_get_base_type(ins->dest_type) != nir_type_float64);