Quoting Richard Henderson <r...@redhat.com>:
Look much closer. These patterns are 100% identical. The *move_frame_1 pattern will _never_ be matched, because such an insn will always be matched by move_frame.
move_frame only matches if: operands[1] == frame_pointer_rtx || operands[1] == arg_pointer_rtx move_frame_1 instead matches if: (reload_in_progress || reload_completed) && (operands[1] == stack_pointer_rtx || operands[1] == hard_frame_pointer_rtx)