freedreno/ir3: Fix up the half reg source even when src instr==NULL
authorNeil Roberts <nroberts@igalia.com>
Fri, 15 Mar 2019 13:32:27 +0000 (14:32 +0100)
committerRob Clark <robdclark@chromium.org>
Mon, 3 Jun 2019 20:31:51 +0000 (13:31 -0700)
commitfb53b326c24dc9f5c64f402dc53298c8b4928388
tree8156a6a68675bc59922706f937fefb8852d98edd
parent3222216a589f0952f11af76ce591c10ba96cdeb7
freedreno/ir3: Fix up the half reg source even when src instr==NULL

Previously the loop for assigning registers was bailing out early if
the register had a null source. I think the intention is that in this
case it isn’t necessary to assign a register. However it was also
missing out the part to fix up the types. This can happen if the
instruction is copy propagated to be a move from a constant half-float
input register. In that case it still needs to fix up the types.

Fixes assert in
dEQP-GLES3.functional.shaders.invariance.highp.subexpression_precision_mediump

when lowering the precision of the variables.

Signed-off-by: Rob Clark <robdclark@chromium.org>
src/freedreno/ir3/ir3_ra.c