nir/algebraic: add new fsum ops and fdot lowering
authorErico Nunes <nunes.erico@gmail.com>
Sat, 27 Jul 2019 15:58:53 +0000 (17:58 +0200)
committerErico Nunes <nunes.erico@gmail.com>
Wed, 31 Jul 2019 19:35:58 +0000 (21:35 +0200)
commit4a407df68297b434c4489e6d28c2dd18e9eec326
tree7e3e490d181117d541455900483d2281f47334ad
parent7f8ff686b73b057ea38d4e88009d4543fedfa455
nir/algebraic: add new fsum ops and fdot lowering

The Mali400 pp doesn't implement fdot but has fsum3 and fsum4, which can
be used to optimize fdot lowering. fsum2 is not implemented and can be
further lowered to an add with the vector components.
Currently lima ppir handles this lowering internally, however this
happens in a very late stage and requires a big chunk of code compared
to a nir_opt_algebraic lowering.
By having fsum in nir, we can reduce ppir complexity and enable the
lowered ops to be part of other nir optimizations in the optimization
loop.

Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
src/compiler/nir/nir.h
src/compiler/nir/nir_opcodes.py
src/compiler/nir/nir_opt_algebraic.py