diff --git a/src/compiler/nir/nir_opt_copy_propagate.c b/src/compiler/nir/nir_opt_copy_propagate.c index e67bcf3c2ef..be9bce3ef2e 100644 --- a/src/compiler/nir/nir_opt_copy_propagate.c +++ b/src/compiler/nir/nir_opt_copy_propagate.c @@ -230,6 +230,16 @@ copy_prop_instr(nir_instr *instr) return progress; } + case nir_instr_type_jump: { + nir_jump_instr *jump = nir_instr_as_jump(instr); + if (jump->type == nir_jump_goto_if) { + while (copy_prop_src(&jump->condition, instr, NULL, 1)) + progress = true; + } + + return progress; + } + case nir_instr_type_phi: { nir_phi_instr *phi = nir_instr_as_phi(instr); assert(phi->dest.is_ssa);