https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87763
--- Comment #4 from Segher Boessenkool <segher at gcc dot gnu.org> --- (In reply to Wilco from comment #3) > IRA costing doesn't consider the possibility of a simple move being > removeable. Not always, yeah (only if you have matching constraints, which are silly to have for moves; IRA or LRA should do the work, not the machine description). > Neither does it consider that some variants are more expensive > than others - use of '?' is the only way to mark more expensive variants. ? and !, or ^ and $ if it only more expensive if it needs reloads. > The example shown is fixed when I change the w=rZ variant to ?w=rZ in > movsi_aarch64. Is it always more expensive than the other alternatives? Then it *should* have "?" modifiers!