nak: handle nir_op_fmul_rtz

Backport-to: 26.1
Reviewed-by: Mel Henning <mhenning@darkrefraction.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41179>
This commit is contained in:
Karol Herbst 2026-04-25 14:38:54 +02:00 committed by Marge Bot
parent 2e09b4ac68
commit 5d9225388c
2 changed files with 8 additions and 2 deletions

View file

@ -1159,7 +1159,7 @@ impl<'a> ShaderFromNir<'a> {
}
dst
}
nir_op_fmul => {
nir_op_fmul | nir_op_fmul_rtz => {
let ftype = FloatType::from_bits(alu.def.bit_size().into());
let dst;
if alu.def.bit_size() == 64 {
@ -1176,7 +1176,11 @@ impl<'a> ShaderFromNir<'a> {
dst: dst.clone().into(),
srcs: [srcs(0), srcs(1)],
saturate: self.try_saturate_alu_dst(&alu.def),
rnd_mode: self.float_ctl[ftype].rnd_mode,
rnd_mode: if alu.op == nir_op_fmul_rtz {
FRndMode::Zero
} else {
self.float_ctl[ftype].rnd_mode
},
ftz: self.float_ctl[ftype].ftz,
dnz: false,
});

View file

@ -115,6 +115,7 @@ vectorize_filter_cb(const nir_instr *instr, const void *data)
case nir_op_flt:
case nir_op_fneu:
case nir_op_fmul:
case nir_op_fmul_rtz:
case nir_op_ffma:
case nir_op_fsign:
case nir_op_fsat:
@ -266,6 +267,7 @@ lower_bit_size_cb(const nir_instr *instr, void *data)
case nir_op_flt:
case nir_op_fneu:
case nir_op_fmul:
case nir_op_fmul_rtz:
case nir_op_ffma:
case nir_op_ffmaz:
case nir_op_fsign: