https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101523
--- Comment #33 from Andreas Krebbel <krebbel at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #26) ... > I suspect if we change the s390 backend just slightly to set the cost when > there is an index to the address to 1 for the MEM, combine won't be acting > up here. > Basically putting in sync the 2 cost methods. I've tried that but this didn't change anything. As you have expected the problem goes away when letting s390_address_cost always return 0.