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