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