https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91289
--- Comment #2 from Philipp Spilger <philipp.spilger at kip dot uni-heidelberg.de> --- Only reverting the "elf_low" insn changes of this commit leads to no encounter of the problem, i.e. the following diff "resolves" the problem on gcc-9_1_0-release. diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index ad80592765d0..f797008eac9b 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -10138,11 +10138,13 @@ "lis %0,%1@ha") (define_insn "elf_low" - [(set (match_operand:SI 0 "gpc_reg_operand" "=r") - (lo_sum:SI (match_operand:SI 1 "gpc_reg_operand" "b") + [(set (match_operand:SI 0 "gpc_reg_operand" "=r,r") + (lo_sum:SI (match_operand:SI 1 "gpc_reg_operand" "b,!*r") (match_operand 2 "" "")))] "TARGET_ELF && !TARGET_64BIT && !flag_pic" - "la %0,%2@l(%1)") + "@ + la %0,%2@l(%1) + addic %0,%1,%K2") (define_insn "*pltseq_tocsave_<mode>" [(set (match_operand:P 0 "memory_operand" "=m")