freedreno/ir3/cf: handle multiple cov's properly
authorRob Clark <robdclark@chromium.org>
Sat, 16 May 2020 00:12:25 +0000 (17:12 -0700)
committerMarge Bot <eric+marge@anholt.net>
Tue, 19 May 2020 16:06:17 +0000 (16:06 +0000)
commit3474ba53b5e6560e758cef51b50d248b6fb806ec
treedb67e689823558941922270389693e4940f4a00d
parent3db5d146e97e132e17fe7e3aca306c3523d14279
freedreno/ir3/cf: handle multiple cov's properly

There can be multiple (for ex.) f32f16's from a single source, in
particular appearing in different blocks.  We need to update all uses
of the src which had conversion folded in, not all the uses of the
individual cov.  Also, to avoid invalidating the ssa use info that was
gathered at the beginning of the pass, don't actually eliminate the
cov, but instead change it to a simple mov that the cp pass can gobble
up.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>
src/freedreno/ir3/ir3_cf.c