+ RETURN_PACKED(pack);
+ } else if (ins->dest_type == nir_type_float16) {
+ struct bifrost_fma_fma16 pack = {
+ .src0 = bi_get_src(ins, regs, 0, true),
+ .src1 = bi_get_src(ins, regs, 1, true),
+ .src2 = bi_get_src(ins, regs, 2, true),
+ .swizzle_0 = bi_swiz16(ins, 0),
+ .swizzle_1 = bi_swiz16(ins, 1),
+ .swizzle_2 = bi_swiz16(ins, 2),
+ .src0_neg = negate_mul,
+ .src2_neg = ins->src_neg[2],
+ .op = BIFROST_FMA_OP_FMA16
+ };
+
+ RETURN_PACKED(pack);
+ } else {
+ unreachable("Invalid fma dest type");
+ }