aco: keep label_mul/usedef/minmax in apply_extract

16bit int mad/fma/minmax combining can work with opsel set.

All other optimizations should already check if the instruction uses sdwa,
because we don't check this when applying the label initially.

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22069>
This commit is contained in:
Georg Lehmann 2023-03-09 14:53:34 +01:00 committed by Marge Bot
parent 7014145ab2
commit e699a4181c

View file

@ -1190,11 +1190,13 @@ apply_extract(opt_ctx& ctx, aco_ptr<Instruction>& instr, unsigned idx, ssa_info&
return;
}
/* Output modifier, label_vopc and label_f2f32 seem to be the only one worth keeping at the
* moment
*/
for (Definition& def : instr->definitions)
ctx.info[def.tempId()].label &= (label_vopc | label_f2f32 | instr_mod_labels);
/* These are the only labels worth keeping at the moment. */
for (Definition& def : instr->definitions) {
ctx.info[def.tempId()].label &=
(label_mul | label_minmax | label_usedef | label_vopc | label_f2f32 | instr_mod_labels);
if (ctx.info[def.tempId()].label & instr_usedef_labels)
ctx.info[def.tempId()].instr = instr.get();
}
}
void