[Mesa-dev] [PATCH 07/16] i965: Add is_3src() to backend_instruction.

Ian Romanick idr at freedesktop.org
Fri Jan 23 11:42:01 PST 2015


On 01/20/2015 12:16 AM, Kenneth Graunke wrote:
> On Monday, January 19, 2015 03:31:06 PM Matt Turner wrote:
>> ---
>>  src/mesa/drivers/dri/i965/brw_shader.cpp                | 10 ++++++++++
>>  src/mesa/drivers/dri/i965/brw_shader.h                  |  1 +
>>  src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp |  6 +-----
>>  3 files changed, 12 insertions(+), 5 deletions(-)
>>
>> diff --git a/src/mesa/drivers/dri/i965/brw_shader.cpp b/src/mesa/drivers/dri/i965/brw_shader.cpp
>> index cbdf976..c6fead7 100644
>> --- a/src/mesa/drivers/dri/i965/brw_shader.cpp
>> +++ b/src/mesa/drivers/dri/i965/brw_shader.cpp
>> @@ -678,6 +678,16 @@ backend_reg::is_accumulator() const
>>  }
>>  
>>  bool
>> +backend_instruction::is_3src() const
>> +{
>> +   return opcode == BRW_OPCODE_LRP ||
>> +          opcode == BRW_OPCODE_MAD ||
>> +          opcode == BRW_OPCODE_BFE ||
>> +          opcode == BRW_OPCODE_BFI2 ||
>> +          opcode == BRW_OPCODE_CSEL;

Can this also replace is_3src() in brw_eu_compact.c?  FWIW, that
function was already doing basically what Ken suggests below... and you
wrote it!  (Commit 31eed95b)

> Pah, manual listings of things :)  Let's do even better:
> 
>    return opcode < 128 && opcode_descs[op].nsrc == 3;

Shouldn't that be

   return opcode < ARRAY_SIZE(opcode_descs) && opcode_descs[opode].nsrc
== 3;

> That would get
> Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
> 
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20150123/ce6c63f7/attachment.sig>


More information about the mesa-dev mailing list