[Mesa-dev] [PATCH 1/2] i965: Assert that math instructions don't have conditional mod.

Kenneth Graunke kenneth at whitecape.org
Sat Nov 22 13:22:58 PST 2014

On Saturday, November 22, 2014 09:18:32 AM Matt Turner wrote:
> On Sat, Nov 22, 2014 at 12:50 AM, Kenneth Graunke <kenneth at whitecape.org> wrote:
> > On Friday, November 21, 2014 12:41:25 PM Matt Turner wrote:
> >> ---
> >> Strangely, the suggested implementations of double-precision sqrt/rcp
> >> in the BSpec show using a math instruction with an "eo" conditional
> >> modifier. I have no idea what that could possibly mean, or how it could
> >> work since conditional mod shares the same four bits with math SFID.

I did some digging...

.eo stands for "early out".  Although it's written using the same notation as
conditional modifiers, it doesn't appear to be an actual one, or occupy the
27:24 bits.  It appears to be an intrinsic property of INVM and RSQRTM - when
you use those opcodes, you get the '.eo' effect automatically.

I'm not sure what it does.  Something relating to control flow, given the
mention of avoiding "Single Program Flow" to make "early out" work.

> > I'm confused - what generation of hardware are you talking about?
> > The MATH instruction doesn't have an SFID on Gen6+...only Gen4-5, where
> > it was a message.  But I wasn't aware double precision was even remotely
> > possible on Gen4-5.
> Gen6+. I think SFID was the wrong term. The IVB PRM calls it FC in the
> instruction machine word table.

Ahhh.  Yes, SFID ("shared function ID") is a field on SEND messages that
specify the message's recipient.  MATH instructions do have a function
(inv/sqrt/etc) that shares the same bits as conditional_mod.  We called
it math_function in brw_inst.h, but FC seems fine too.

With s/SFID/math function/g or s/SFID/FC/g, this is:

Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20141122/f2e408b3/attachment.sig>

More information about the mesa-dev mailing list