https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91898
--- Comment #4 from Nathan Sidwell <nathan at acm dot org> --- Created attachment 46941 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=46941&action=edit another example thanks, yup. I had a slightly different example ready to go (attached) Rather than a single switch dispatcher: .L12: movl %edx, %eax movl (%rdi,%rax,4), %eax andl $7, %eax ; <- masked in source to provide range information jmp *.L4(,%rax,8) to which each case block jumps to. Duplicate that code at the end of each case block.