BIFROST_SRC0_WINS = 0x3,
};
+#define BIFROST_FMA_OP_FADD32 (0x58 >> 2)
+
struct bifrost_fma_add {
unsigned src0 : 3;
unsigned src1 : 3;
unsigned op : 6;
} __attribute__((packed));
+#define BIFROST_FMA_OP_FMA (0x00)
+
+struct bifrost_fma_fma {
+ unsigned src0 : 3;
+ unsigned src1 : 3;
+ unsigned src2 : 3;
+ unsigned src_expand : 3;
+ unsigned src0_abs : 1;
+ unsigned unk : 4;
+ unsigned src0_neg : 1;
+ unsigned src2_neg : 1;
+ unsigned src1_abs : 1;
+ unsigned src2_abs : 1;
+ unsigned op : 5;
+} __attribute__((packed));
+
enum bifrost_csel_cond {
BIFROST_FEQ_F = 0x0,
BIFROST_FGT_F = 0x1,
BIFROST_INTERP_EXPLICIT = 0x3
};
+#define BIFROST_ADD_OP_LD_VAR_16 (0x1a << 1)
+#define BIFROST_ADD_OP_LD_VAR_32 (0x0a << 1)
+
struct bifrost_ld_var {
unsigned src0 : 3;