https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52572
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Severity|normal |enhancement Last reconfirmed| |2021-12-25 Target| |x86_64-linux-gnu Status|UNCONFIRMED |NEW Ever confirmed|0 |1 --- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- LLVM produces: vxorps %xmm1, %xmm1, %xmm1 vblendps $3, %ymm1, %ymm0, %ymm0 # ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7] and vxorps %xmm0, %xmm0, %xmm0 vblendps $252, (%rdi), %ymm0, %ymm0 # ymm0 = ymm0[0,1],mem[2,3,4,5,6,7] Which I suspect is better.