On Sat, Mar 4, 2017 at 9:21 PM, Francisco Jerez <curroje...@riseup.net> wrote:
> Ilia Mirkin <imir...@alum.mit.edu> writes:
>
>> Also, how is this happening in the first place? For example, we have:
>>
>>    case ir_unop_bitcast_f2i:
>>    case ir_unop_bitcast_f2u:
>>       /* Make sure we don't propagate the negate modifier to integer 
>> opcodes. */
>>       if (op[0].negate || op[0].abs)
>>          emit_asm(ir, TGSI_OPCODE_MOV, result_dst, op[0]);
>>       else
>>          result_src = op[0];
>>
>> Oh, but it's going directly into a ir_triop_csel, which is missing
>> this logic. It should be added there instead, IMHO. OTOH, the same
>> issue will hit in emit_block_mov() if you do. Would love to hear some
>> other opinions... Marek, Brian, Roland?
>>
>
> I considered doing something like that but it will be somewhat more
> involved than in the snippet above because you'll have to allocate
> temporaries to hold the negated source results in case that any of the
> csel sources has a modifier set -- Can look into it next week if you
> think it's the right thing to do.

Right, that's mildly annoying but definitely solvable.

One last thought from me - for ir_unop_abs, we do the MOV. So perhaps
we should just suck it up and do the MOV here.

But I'd really like to hear from others.

  -ilia
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to