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.