https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118250
--- Comment #2 from Andi Kleen <andi-gcc at firstfloor dot org> ---
With
--param=switch-lower-slow-alg-max-cases=1
(so using greedy) trunk includes "38" in the first bit cluster, but the LLVM
code is still better. I've seen the dynamic programing algorithm miss clusters
like this before.
movl (%rdi), %eax
cmpl $38, %eax
jg .L2
cmpl $1, %eax
jle .L4
movabsq $274949472260, %rdx
btq %rax, %rdx
setc %al
ret
.p2align 4,,10
.p2align 3
.L2:
cmpl $95, %eax
sete %al
ret
.p2align 4,,10
.p2align 3
.L4:
xorl %eax, %eax
ret