https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84844
--- Comment #6 from Uroš Bizjak <ubizjak at gmail dot com> --- (In reply to Jakub Jelinek from comment #2) > The problem is that if a constraint returns NO_REGS before RA (i.e. in > non-strict mode) then that alternative is ignored, and e.g. get_attr_type > used by sched1 needs to compute alternative. As the instruction uses > nonimmediate_operand and the only alternative with "r" input has "Yc" output > which is NO_REGS for this -march=, if the operand is a register, there is no > alternative left. OTOH, if the above is the problem - we have quite some constructs that declare insn pattern with (match_operand "nonimmediate_operand" "m"), please see the comment above floathi<mode>2. The comment also says that LRA will fix up this during register allocation. Also, -fschedule-insns without -fselective-scheduling is able to compile the testcase without errors, so it looks that -fselective-scheduling should be made more robust.