pan/bi: Add frexp_log packing

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4615>
This commit is contained in:
Alyssa Rosenzweig 2020-04-14 12:54:17 -04:00
parent e067fd7b00
commit 9904ed170a
2 changed files with 9 additions and 0 deletions

View file

@ -728,6 +728,13 @@ bi_pack_fma_csel(bi_instruction *ins, struct bi_registers *regs)
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:
*
@ -857,6 +864,7 @@ bi_pack_fma(bi_clause *clause, bi_bundle bundle, struct bi_registers *regs)
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:

View file

@ -97,6 +97,7 @@ enum bifrost_packed_src {
#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;