MOVWnop is a nop/copy designed to ensure type safety. It generates no code. However, it is not free; regalloc sometimes makes a copy of a value to provide to MOVWnop, since it doesn't know that MOVWnop doesn't modify its argument.
I noticed this while tracking down regressions due to changes in rewrite rule order application.
I don't know what the best approach to fixing it is. Suggestions?