This was being packed as 1-src and so the Src1 was not set up properly.
It only worked by accident.
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6111>
} else if (ins->op.special == BI_SPECIAL_EXP2_LOW) {
assert(!fp16);
- op = BIFROST_ADD_OP_FEXP2_FAST;
+ return bi_pack_add_2src(ins, regs, BIFROST_ADD_OP_FEXP2_FAST);
} else if (ins->op.special == BI_SPECIAL_IABS) {
assert(ins->src_types[0] == nir_type_int32);
op = BIFROST_ADD_OP_IABS_32;
#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)
-#define BIFROST_ADD_OP_FEXP2_FAST (0x0cd58)
#define BIFROST_ADD_OP_IABS_32 (0x07bd4)
struct bifrost_add_inst {
#define BIFROST_ADD_ISUB_8 (0x17a80 >> 3)
#define BIFROST_ADD_ISUB_16 (0x17b00 >> 3)
#define BIFROST_ADD_ISUB_32 (0x17ac0 >> 3)
+#define BIFROST_ADD_OP_FEXP2_FAST (0x0cd58 >> 3)
struct bifrost_add_2src {
unsigned src0 : 3;