Skip to content

nv50/ir/ra: Fix copying compound for moves

M Henning requested to merge mhenning/mesa:merge-interval-split into main

This is an old patch from @cwabbott0. I've updated it slightly for changes made in bcf6a9ec

I'd like to see it merged because it fixes two tests on kepler that regressed with the switch to nir by default:

spec@arb_gpu_shader_fp64@execution@built-in-functions@fs-frexp-dvec4-variable-index
spec@arb_gpu_shader_int64@execution@indirect-array-two-accesses

Specifically, with the nir code path, we end up with a merge instruction whose input is another merge, which RA currently fails to coalesce correctly. This patch corrects that case by inserting a mov between the two during constraint handling and adjusting the criteria for coalescing.

Merge request reports