https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60969
--- Comment #18 from Richard Henderson <rth at gcc dot gnu.org> --- (In reply to H.J. Lu from comment #17) That's probably the best solution long-term. Sometime before register allocation (but not too far before) inspect the insn stream and see what's left. If we see no mmx (explicit patterns, or asms using y constraint), disable the mmx registers entirely. If we see mmx, and we don't see modes that *require* 387 (i.e. SFmode present but 3dnow/sse1+ssemath enabled, or DFmode present but sse2+ssemath enabled), then disable the 387 registers entirely. If we've got a function that uses both mmx and 387... warn? I can't imagine that the RA would do anything nice. Really I'd love to be able to drop mmx support entirely. I'd be surprised if we couldn't emulate mmx builtins on sse2. And how many mmx-but-not-sse machines are really left alive?