https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89112
--- Comment #5 from acsawdey at gcc dot gnu.org --- This patch fixes the issue on trunk: Index: gcc/config/rs6000/rs6000.md =================================================================== --- gcc/config/rs6000/rs6000.md (revision 268403) +++ gcc/config/rs6000/rs6000.md (working copy) @@ -12639,8 +12639,8 @@ else { static char seq[96]; - char *bcs = output_cbranch (operands[3], "$+8", 1, insn); - sprintf(seq, "<bd_neg> $+12\;%s;b %%l0", bcs); + char *bcs = output_cbranch (operands[3], ".L%=", 1, insn); + sprintf(seq, "<bd_neg> .L%%=\;%s\;b %%l0\;.L%%=:", bcs); return seq; } } I'm testing now, I will get this posted. Once approved for backport I'll apply the same thing to gcc-8-branch for inclusion in the next 8 release.