https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106705
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> --- So you expect us to somehow generate val2 = -len; switch (len) { case 7: do_sd(val, mem, val2++); case 6: do_sd(val, mem, val2++); case 5: do_sd(val, mem, val2++); case 4: do_sd(val, mem, val2++); case 3: do_sd(val, mem, val2++); case 2: do_sd(val, mem, val2++); case 1: do_sd(val, mem, val2++); ? (VRP on GIMPLE would undo that I suppose)