The problem is here:
This instruction will be interpreted as
mov r8.__zw, r6.xyyy
This is an old bug in the shader compiler, old enough to be called as a feature.
So use the following instruction:
mov r8.__zw, r6.xyxy
mov r8.zw, r6.xyxy
OMG ? And for how long ATI can't fix it ?? This bug happens only with move or other instructions as well ( I think it doesn't happen with double instructions ) ?
PS. Thank you for quick answer.
Ok I see how it works now. This kind of assignment is always in work, but usually it's not the problem due to the tricks in instructions output ( like double instructions copying result to xy and zw ).
Thank you again for quick response .