[Freedreno] [Mesa-dev] [RFC 2/4] nir: Add a new ALU nir_op_imad
Eduardo Lima Mitev
elima at igalia.com
Sat Jan 26 08:40:15 UTC 2019
On 1/25/19 6:46 PM, Eric Anholt wrote:
> Eduardo Lima Mitev <elima at igalia.com> writes:
>
>> ir3 compiler has an integer multiply-add instruction (IMAD_S24)
>> that is used for different offset calculations in the backend.
>> Since we intend to move some of these calculations to NIR, we need
>> a new ALU op that can represent it.
>> ---
>> src/compiler/nir/nir_opcodes.py | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/src/compiler/nir/nir_opcodes.py b/src/compiler/nir/nir_opcodes.py
>> index d32005846a6..b61845fd514 100644
>> --- a/src/compiler/nir/nir_opcodes.py
>> +++ b/src/compiler/nir/nir_opcodes.py
>> @@ -754,6 +754,7 @@ def triop_horiz(name, output_size, src1_size, src2_size, src3_size, const_expr):
>> [tuint, tuint, tuint], "", const_expr)
>>
>> triop("ffma", tfloat, "src0 * src1 + src2")
>> +triop("imad", tint, "src0 * src1 + src2")
>
> The constant-folding expression should be corrected to what the backend
> operation actually does, and you should probably call it imad24 or
> something in that case.
>
Roger. Got similar feedback from Ilia. Will fix that.
Eduardo
More information about the Freedreno
mailing list