Implement and use MOVZX(64, 32,...) Probably better to keep that same-register-MOV assert useful. Also, explicit type extension documents whats happening. Internally, this boils down to the original MOV, but without the assert.