https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81613
--- Comment #1 from Andreas Schwab <sch...@linux-m68k.org> --- Looking at the difference the old code didn't make any sense: --- intrinsic_modulo_1.s-good 2017-07-30 01:21:37.757618984 +0200 +++ intrinsic_modulo_1.s-bad 2017-07-30 01:20:30.321837737 +0200 @@ -100,13 +100,11 @@ fmovecr #0x32,%fp0 fcmp.s -32(%fp),%fp0 fjne .L6 - moveq #1,%d0 - cmp.l %d0,%d0 + subq.l #1,%d0 jne .L6 fcmp.s -28(%fp),%fp1 fjne .L6 - moveq #-2,%d0 - cmp.l %d0,%d0 + addq.l #2,%d0 jne .L6 fmovecr #0xf,%fp0 fcmp.s -24(%fp),%fp0 @@ -120,14 +118,12 @@ fmove.s -16(%fp),%fp1 fcmp.s #0x40000000,%fp1 fjne .L6 - moveq #2,%d0 - cmp.l %d0,%d0 + subq.l #2,%d0 jne .L6 fmove.s -12(%fp),%fp1 fcmp.s #0xbf800000,%fp1 fjne .L6 - moveq #-1,%d0 - cmp.l %d0,%d0 + addq.l #1,%d0 jne .L6 fcmp.s -8(%fp),%fp0 fjne .L6