https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110120
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |hp at gcc dot gnu.org, | |pinskia at gcc dot gnu.org --- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #3) > Most likely caused by r14-1526-g3991b2f623d22dea19c Specifically this part of the change: - if (costs_lt_p (&newcst, &oldcst, speed)) + + /* We perform this replacement only if NEXT is either a + naked SET, or else its single_set is the first element + in a PARALLEL. */ + rtx *setloc = GET_CODE (PATTERN (insn)) == PARALLEL + ? &XEXP (PATTERN (insn), 0) : &PATTERN (insn); + if (*setloc == set && costs_lt_p (&newcst, &oldcst, speed)) XEXP on PARALLEL is not correct. XVECEXP (PATTERN (insn), 0, 0) would be correct based on the comment.