https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103750
Hongtao Liu <liuhongt at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED CC| |liuhongt at gcc dot gnu.org --- Comment #19 from Hongtao Liu <liuhongt at gcc dot gnu.org> --- Looks like it's fixed by r16-170-ga670ebde399548. Now it generates decent code as "_Z8qustrchrPDsS_Ds": cmp rdi, rsi jnb .L7 vpbroadcastw ymm0, edx .L4: vpcmpeqw k1, ymm0, YMMWORD PTR [rdi] vpcmpeqw k0, ymm0, YMMWORD PTR [rdi+32] kortestw k1, k0 je .L10 kortestw k1, k1 je .L5 kmovw eax, k1 tzcnt eax, eax lea rax, [rdi+rax*2] vzeroupper ret .L5: kmovw eax, k0 tzcnt ax, ax add rdi, 32 movzx eax, ax lea rax, [rdi+rax*2] vzeroupper ret .L10: add rdi, 64 cmp rdi, rsi jb .L4 mov rax, rsi vzeroupper ret .L7: mov rax, rsi ret