https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96245
--- Comment #10 from Jakub Jelinek <jakub at gcc dot gnu.org> --- That is just one specific special case, it can be anything else, like case 7: p[14] = 1; break; case 8: p[13] = 1; break; case 9: p[12] = 1; break; case 10: p[11] = 1; break; etc. I think there are advantages of doing this in switchconv, namely that it would be done only if the switchconv pass finds out it would be beneficial, but there can be advantages doing that in tail-merging too, mainly for -Os or proven cold code it is often but not always to optimize this (not only if either the code is very small or if between pre and switchconv we can simplify it if it is constant).