brw/eu_emit: relax assertion to allow ARF NULL

On new platforms, it's valid to use a NULL destination in conjunction with a
cmod, where you care about the implicit flag write but you don't need to clobber
any GRF. Something like:

   if (x * y > z) {

compiling (with fast-math) to

        mad.gt.f0 _, -z, x, y
   (f0) if

This patch allows us to emit that instruction.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40829>
This commit is contained in:
Alyssa Rosenzweig 2026-01-23 15:52:47 -05:00 committed by Marge Bot
parent 2ed6ff728a
commit 1d0f42c264

View file

@ -589,7 +589,8 @@ brw_alu3(struct brw_codegen *p, unsigned opcode, struct brw_reg dest,
if (brw_eu_inst_access_mode(devinfo, inst) == BRW_ALIGN_1) {
assert(dest.file == FIXED_GRF ||
brw_reg_is_arf(dest, BRW_ARF_ACCUMULATOR));
brw_reg_is_arf(dest, BRW_ARF_ACCUMULATOR) ||
brw_reg_is_arf(dest, BRW_ARF_NULL));
brw_eu_inst_set_3src_a1_dst_reg_file(devinfo, inst, phys_file(dest));
brw_eu_inst_set_3src_dst_reg_nr(devinfo, inst, phys_nr(devinfo, dest));