vc4: Expose compares at a lower level in QIR.
authorEric Anholt <eric@anholt.net>
Sun, 24 Aug 2014 23:51:32 +0000 (16:51 -0700)
committerEric Anholt <eric@anholt.net>
Thu, 4 Sep 2014 18:39:51 +0000 (11:39 -0700)
commit874dfa8b2ecccf3c9a73453d7ccc6638363a59bd
treebe821f68c78f6785282b2d620b84c122effd57a7
parent3972a6f057e20ec9e8358f4487c3b4d51c499628
vc4: Expose compares at a lower level in QIR.

Before, we had some special opcodes like CMP and SNE that emitted multiple
instructions.  Now, we reduce those operations significantly, giving
optimization more to look at for reducing redundant operations.

The downside is that QOP_SF is pretty special -- we're going to have to
track it separately when we're doing instruction scheduling, and we want
to peephole it into the instruction generating the destination write in
most cases (and not allocate the destination reg, probably.  Unless it's
used for some other purpose, as well).
src/gallium/drivers/vc4/vc4_opt_algebraic.c
src/gallium/drivers/vc4/vc4_program.c
src/gallium/drivers/vc4/vc4_qir.c
src/gallium/drivers/vc4/vc4_qir.h
src/gallium/drivers/vc4/vc4_qpu_emit.c