https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64971
--- Comment #8 from Richard Henderson <rth at gcc dot gnu.org> --- Created attachment 38112 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38112&action=edit proposed patch Andrew's approach to force the SYMBOL_REF to DImode is certainly one way to approach it; another is to accept the SImode SYMBOL_REF. Which can be done relatively easily with a define_special_predicate. Whichever solution is chosen, there appears to be a disconnect between the call and sibcall patterns: (1) sibcalls fail to check for aarch64_islong_call_p. (2) sibcalls use a combined pattern with aarch64_call_insn_operand and Usf constraint, whereas calls use two separate patterns. This disconnect should be fixed at the same time.