https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110788
--- Comment #2 from Hongtao.liu <crazylht at gmail dot com> --- (In reply to Hongtao.liu from comment #1) > I prefer to add an UNSPEC to vpbroadcastm, don't want to mix gpr and kmask > too much for vec_duplicate:zero_extend pattern. And got this: .L3: vmovapd b(%rax), %ymm1{%k1} movl %edx, %esi subl $4, %edx movzwl %dx, %ecx vmulpd %ymm3, %ymm1, %ymm0{%k1}{z} vmovapd %ymm0, a(%rax){%k1} vpbroadcastd %ecx, %xmm0 addq $32, %rax vpcmpud $6, %xmm2, %xmm0, %k1 cmpw $4, %si ja .L3 vzeroupper