for Zen5 rustc creates the following:
utf8_sequence_length_lookup: shl edi, 24 mov ecx, 274945 not edi lzcnt eax, edi shl al, 2 shrx rax, rcx, rax and al, 7 ret
Struggling proc \n lzcnt ecx,ecx \n test cl,cl \n setz al \n lea edx,[ecx-2] ;[0,1,2] \n cmp rdx,2 \n cmovle eax,ecx \n ret \n Struggling endp
We can assume the count has already been done.
for Zen5 rustc creates the following:
https://rust.godbolt.org/z/hz1eKjnaG