diff --git a/src/panfrost/midgard/nir_fuse_io_16.c b/src/panfrost/midgard/nir_fuse_io_16.c index ed4b7750d04..a588f6ac1fe 100644 --- a/src/panfrost/midgard/nir_fuse_io_16.c +++ b/src/panfrost/midgard/nir_fuse_io_16.c @@ -87,6 +87,15 @@ nir_fuse_io_16(nir_shader *shader) continue; intr->dest.ssa.bit_size = 16; + + nir_builder b; + nir_builder_init(&b, function->impl); + b.cursor = nir_after_instr(instr); + + /* The f2f32(f2fmp(x)) will cancel by opt_algebraic */ + nir_ssa_def *conv = nir_f2f32(&b, &intr->dest.ssa); + nir_ssa_def_rewrite_uses_after(&intr->dest.ssa, nir_src_for_ssa(conv), conv->parent_instr); + progress |= true; } }