GC3000 supports some 4-wide integer ops
Wladimir J. van der Laan
laanwj at gmail.com
Thu Dec 8 12:40:50 UTC 2016
Just something I happened to stumble upon after updating verify_ops in
etnaviv_gpu_tests for GC3000. There, some of the integer shader op tests were
failing.
First I thought they broke some instructions, but it turns out that the bitwise
instructions went from 1-wide to 4-wide!
- add.u32 and imul variants are still scalar.
- lshift, rshift, rotate, or, and, xor, not, leadzero became 4-wide SIMD. The
shifts/rotate can do four shifts/rotates at once, with different shift
amounts (on GC2000 they do one operation and broadcast the result to all outputs).
I wonder why they made this change - I suppose it helps for some video codec
applications?
Should probably update the etna_viv isa.xml.
Wladimir
More information about the etnaviv
mailing list