Could any of the Gallium folk R-b this? It's been this way since Bryan
Cain introduced it... I don't think that there was a USNE/etc variant
at the time.

Also, what do people think of making b2i do INEG instead of AND? That
should allow implementations to fold the neg into instructions that
support it...

On Thu, May 7, 2015 at 12:44 AM, Jason Ekstrand <ja...@jlekstrand.net> wrote:
> I know nothing about TGSI but this looks perfectly reasonable to me.
>
> Reviewed-by: Jason Ekstrand <jason.ekstr...@intel.com>
>
> On Wed, May 6, 2015 at 8:33 PM, Ilia Mirkin <imir...@alum.mit.edu> wrote:
>> i2b has to work for all integers, not just 1. INEG would not necessarily
>> result with all bits set, which is something that other operations can
>> rely on by e.g. using AND (or INEG for b2i).
>>
>> Signed-off-by: Ilia Mirkin <imir...@alum.mit.edu>
>> ---
>>
>> Found by observation. Noticed a weird pattern in the generated code,
>> which led up to this.
>>
>>  src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp 
>> b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
>> index 93671ba..8a591b9 100644
>> --- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
>> +++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
>> @@ -1941,7 +1941,7 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
>>        break;
>>     case ir_unop_i2b:
>>        if (native_integers)
>> -         emit(ir, TGSI_OPCODE_INEG, result_dst, op[0]);
>> +         emit(ir, TGSI_OPCODE_USNE, result_dst, op[0], 
>> st_src_reg_for_int(0));
>>        else
>>           emit(ir, TGSI_OPCODE_SNE, result_dst, op[0], 
>> st_src_reg_for_float(0.0));
>>        break;
>> --
>> 2.3.6
>>
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev@lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to