https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100581
--- Comment #3 from Uroš Bizjak <ubizjak at gmail dot com> --- (In reply to Alex Coplan from comment #1) > Is it valid to create a vector type with total size less than the element > size? Shouldn't this be rejected? No, the generated code is: vmovq ff_b(%rip), %xmm0 vmovq ff_a(%rip), %xmm1 vmovq bf(%rip), %xmm2 vcmpltps %xmm1, %xmm0, %xmm1 vmovq af(%rip), %xmm0 vpcmov %xmm1, %xmm2, %xmm0, %xmm0 ret Using vmovq ensures that zero is loaded to the top two elements of xmm reg.