diff --git a/src/intel/compiler/jay/jay_from_nir.c b/src/intel/compiler/jay/jay_from_nir.c index 35f65b1fbc3..e928efeeb86 100644 --- a/src/intel/compiler/jay/jay_from_nir.c +++ b/src/intel/compiler/jay/jay_from_nir.c @@ -2677,8 +2677,12 @@ jay_compile(const struct intel_device_info *devinfo, nir->info.bit_sizes_float); if (!(jay_debug & JAY_DBG_NOOPT)) { - JAY_PASS(s, jay_opt_predicate); + /* jay_assign_accumulators uses a conservative liveness analysis for + * predication, so assign accumulators before predicating for better + * results. + */ JAY_PASS(s, jay_assign_accumulators); + JAY_PASS(s, jay_opt_predicate); } JAY_PASS(s, jay_lower_scoreboard);