https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64379
--- Comment #7 from Donn Seeley <donn.seeley at windriver dot com> --- Re -mapcs-frame: Yes, the failure is due to code in arm_expand_epilogue_apcs_frame() that explicitly requires / stomps on IP in order to restore VFP/NEON registers. Sorry, I should have mentioned that. The indirect tailcall register is chosen from CALLER_SAVE_REGS via the "Cs" constraint, and CALLER_SAVE_REGS contains the arg regs plus IP; if the arg regs are in use, then the tailcall register ends up being IP. Hence the conflict.