Module: Mesa Branch: main Commit: 5335a59bff43a3605ad48b58a7b2beee2f78a571 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5335a59bff43a3605ad48b58a7b2beee2f78a571
Author: Faith Ekstrand <[email protected]> Date: Tue Dec 5 23:57:03 2023 -0600 nak/legalize: Handle the src0/1 source mod condition for OpIAdd3X Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26535> --- src/nouveau/compiler/nak_legalize.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/nouveau/compiler/nak_legalize.rs b/src/nouveau/compiler/nak_legalize.rs index 41afeecdcde..2d61bf29a39 100644 --- a/src/nouveau/compiler/nak_legalize.rs +++ b/src/nouveau/compiler/nak_legalize.rs @@ -140,6 +140,16 @@ fn legalize_instr( let [ref mut src0, ref mut src1, ref mut src2] = op.srcs; swap_srcs_if_not_reg(src0, src1); swap_srcs_if_not_reg(src2, src1); + if !src0.src_mod.is_none() && !src1.src_mod.is_none() { + let val = b.alloc_ssa(RegFile::GPR, 1); + b.push_op(OpIAdd3X { + srcs: [Src::new_zero(), *src0, Src::new_zero()], + overflow: [Dst::None; 2], + dst: val.into(), + carry: [false.into(); 2], + }); + *src0 = val.into(); + } copy_src_if_not_reg(b, src0, RegFile::GPR); copy_src_if_not_reg(b, src2, RegFile::GPR); }
