https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117072
--- Comment #8 from Hongtao Liu <liuhongt at gcc dot gnu.org> --- (In reply to Richard Biener from comment #7) > OTOH I'll note that no other simplify_* treats canonicalization as > simplification and the existing swap_commutative_operands_p transform for FMA > is highly uncommon. > > So why do we recognize (fma (neg (mem...)) ...) and not only (neg > (register_operand))? I think we can relex register_operand to nonimmediate_operand and rely on RA to reload it into a reg just like we did in <sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>. So a backend fix shou be better?