[Mesa-dev] [PATCH 2/4] i965/vec4: Handle ir_triop_lrp on Gen4-5 as well.

Eric Anholt eric at anholt.net
Tue Feb 25 09:38:20 PST 2014


Matt Turner <mattst88 at gmail.com> writes:

> On Mon, Feb 24, 2014 at 10:15 AM, Eric Anholt <eric at anholt.net> wrote:
>> I think we would do better by emitting
>> ADD(y_minus_x, y, negate(x))
>> MAC(dst, x, y_minus_x, a)
>
> MAC only takes two arguments, so
>  - if you meant MAD, there's no MAD on platforms that don't have LRP
>  - if you meant MAC(dst, ...) I don't see a way of doing it only two
> instructions, but we could do
>
> MOV(acc, x)
> ADD(y_minus_x, y, negate(x)
> MAC(dst, y_minus_x, a)

Oops, yeah, I was still thinking in terms of MAD.  This should still be
better I think, while being an obvious translation of the LRP
instruction:

ADD one_minus_a, negate(a), 1.0f
MUL null, y, a
MAC dst, x, one_minus_a

(multiplying y * a first to slightly reduce the stall pressure from
one_minus_a)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 818 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20140225/b32bbe94/attachment-0001.pgp>


More information about the mesa-dev mailing list