panfrost/midgard: Handle csel correctly
authorAlyssa Rosenzweig <alyssa@rosenzweig.io>
Tue, 7 May 2019 02:52:08 +0000 (02:52 +0000)
committerAlyssa Rosenzweig <alyssa@rosenzweig.io>
Sun, 12 May 2019 22:21:49 +0000 (22:21 +0000)
commit726f0263e14d219153088b018624710d20f3a124
tree6984d60f8ca12ca81754d4f872361005adfb0d72
parenta35269cf446bfad2261dc1e7945cd779fb42208d
panfrost/midgard: Handle csel correctly

We use an algebraic pass for the csel optimizations, and use proper
vectorized csel ops (i/fcsel_v) for mixed, rather lowering.

To avoid regressions along the way, we fix an issue with the copy
propagation pass (it should not attempt to propagate constants).
Similarly, we take care to break bundles when using csel to fix some
scheduler corner cases.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
src/gallium/drivers/panfrost/ci/expected-failures.txt
src/gallium/drivers/panfrost/midgard/helpers.h
src/gallium/drivers/panfrost/midgard/midgard.h
src/gallium/drivers/panfrost/midgard/midgard_compile.c
src/gallium/drivers/panfrost/midgard/midgard_nir_algebraic.py