https://gcc.gnu.org/bugzilla/show_bug.cgi?id=31667
--- Comment #4 from Allan Jensen <linux at carewolf dot com> --- (In reply to Allan Jensen from comment #3) > Gcc 5 and 6 produces code with pmovzx when compiling the example with -O3 > -msse4.1 > > I assume this can be closed. Note like comment 1 saids, it will not use a memory load, though instead it does half as many memory reads. movdqa 0x0(%rip),%xmm0 # 8 <foo+0x8> pmovzxbw %xmm0,%xmm1 psrldq $0x8,%xmm0 pmovzxbw %xmm0,%xmm0 movaps %xmm1,0x0(%rip) # 1e <foo+0x1e> movaps %xmm0,0x0(%rip) # 25 <foo+0x25>