IMAD_S24 isn't src0 * src1 + src2 though. I think this could be called imad24, which I suspect exits on many GPUs (nv50-era NVIDIA definitely had this, and I think maxwell+ has a variant of this implemented by XMAD):
(src0 * src1) & 0xffffff + src2 Cheers, -ilia On Fri, Jan 25, 2019 at 10:49 AM Eduardo Lima Mitev <el...@igalia.com> wrote: > > ir3 compiler has an integer multiply-add instruction (IMAD_S24) > that is used for different offset calculations in the backend. > Since we intend to move some of these calculations to NIR, we need > a new ALU op that can represent it. > --- > src/compiler/nir/nir_opcodes.py | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/src/compiler/nir/nir_opcodes.py b/src/compiler/nir/nir_opcodes.py > index d32005846a6..b61845fd514 100644 > --- a/src/compiler/nir/nir_opcodes.py > +++ b/src/compiler/nir/nir_opcodes.py > @@ -754,6 +754,7 @@ def triop_horiz(name, output_size, src1_size, src2_size, > src3_size, const_expr): > [tuint, tuint, tuint], "", const_expr) > > triop("ffma", tfloat, "src0 * src1 + src2") > +triop("imad", tint, "src0 * src1 + src2") > > triop("flrp", tfloat, "src0 * (1 - src2) + src1 * src2") > > -- > 2.20.1 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev