https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63177
--- Comment #6 from Carl Love <carll at gcc dot gnu.org> --- Printing the results rather then aborting, we see the value of ib[1] and ib[3] are swapped; ib[2] and ib[4] are swapped, then ib[5] and ib[7] are swapped and ib[6] and ib[8] are swapped. The pattern continues. ib[1] = 168, res[1] = 192 <-R1 ib[2] = 156, res[2] = 180 <-R2 ib[3] = 192, res[3] = 168 <-R1 ib[4] = 180, res[4] = 156 <-R2 ib[5] = 120, res[5] = 144 <-R3 ib[6] = 108, res[6] = 132 <-R4 ib[7] = 144, res[7] = 120 <-R3 ib[8] = 132, res[8] = 108 <-R4 ib[9] = 72, res[9] = 96 <-R5 ib[10] = 60, res[10] = 84 <-R6 ib[11] = 96, res[11] = 72 <-R5 ib[12] = 84, res[12] = 60 <-R6 ib[13] = 24, res[13] = 48 <-R7 ib[14] = 12, res[14] = 36 <-R8 ib[15] = 48, res[15] = 24 <-R7 ib[16] = 36, res[16] = 12 <-R8