pan/midgard: Copyprop destination override
Counterpart of #2066 (closed) ... Again, we're much too conservative. Instead of:
vmul.fmovr hr24.xyzw, r24.xxxx, r1
vadd.froundeven hr1, hr24.xyzwefgh, #0
we want
vadd.froundevenr hr1, r1, #0
Note this is harder than #2066 (closed), since we need to change the actual instruction, since destinations can step down in size but sources cannot step up. So in the transformed program without the move, the roundeven is running in 32-bit mode whereas with the move it's running in 16-bit mode. There may be semantic differences worth noting, etc.