I suppose, if you use shuffle or insert intrinsics, you make it explicit where the new and old fields are coming from. Opportunities for register renaming or out of order speedups at run time are restricted, since you have possibly different dependency sequences for the 2 parts of the register. Making it explicit with intrinsics doesn't necessarily create a different situation at run time from use of asm to modify part of the register while leaving the other part unchanged.