https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65342
Iain Sandoe <iains at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #35039|0 |1 is obsolete| | --- Comment #26 from Iain Sandoe <iains at gcc dot gnu.org> --- Created attachment 46993 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=46993&action=edit [a] remove the Darwin-specific lo_sum patterns So, the lo_sum patterns in darwin.md have neither predicate nor constraint. This means that they match anything that combine tries (via recog) and we end up with unusable RTX. so step one, was to remove these patterns and fall back on movdi_internal64 - actually, this makes quite an improvement.. several of the test cases progressed right away. BUT. The we see "insn doesn't match it's constraints" because LRA has fallen back on loading a double reg ( ^d , m ) option. This is because the Y constraint is not recognising cases that matter as described above