Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4615>
RETURN_PACKED(pack);
}
+static unsigned
+bi_pack_fma_frexp(bi_instruction *ins, struct bi_registers *regs)
+{
+ unsigned op = BIFROST_FMA_OP_FREXPE_LOG;
+ return bi_pack_fma_1src(ins, regs, op);
+}
+
/* We have a single convert opcode in the IR but a number of opcodes that could
* come out. In particular we have native opcodes for:
*
case BI_FMA:
return bi_pack_fma_fma(bundle.fma, regs);
case BI_FREXP:
+ return bi_pack_fma_frexp(bundle.fma, regs);
case BI_ISUB:
return BIFROST_FMA_NOP;
case BI_MINMAX:
#define BIFROST_FMA_EXT (0xe0000)
#define BIFROST_FMA_OP_MOV BIFROST_FMA_EXT | (0x32d)
+#define BIFROST_FMA_OP_FREXPE_LOG BIFROST_FMA_EXT | 0x3c5
struct bifrost_fma_inst {
unsigned src0 : 3;