return bi_pack_add_1src(ins, regs, op);
}
+static unsigned
+bi_pack_add_table(bi_instruction *ins, struct bi_registers *regs)
+{
+ unsigned op = 0;
+ assert(ins->dest_type == nir_type_float32);
+
+ op = BIFROST_ADD_OP_LOG2_HELP;
+ return bi_pack_add_1src(ins, regs, op);
+}
+
static unsigned
bi_pack_add(bi_clause *clause, bi_bundle bundle, struct bi_registers *regs)
{
case BI_SPECIAL:
return bi_pack_add_special(bundle.add, regs);
case BI_TABLE:
+ return bi_pack_add_table(bundle.add, regs);
case BI_SWIZZLE:
case BI_TEX:
case BI_ROUND:
#define BIFROST_ADD_OP_FRSQ_FAST_F32 (0x0cc20)
#define BIFROST_ADD_OP_FRSQ_FAST_F16_X (0x0ce50)
#define BIFROST_ADD_OP_FRSQ_FAST_F16_Y (0x0ce70)
+#define BIFROST_ADD_OP_LOG2_HELP (0x0cc68)
struct bifrost_add_inst {
unsigned src0 : 3;