; RUN: llc -mtriple armv7a--none-eabi < %s | FileCheck %s ; RUN: llc -mtriple armv7a--none-eabi < %s -enable-ipra | FileCheck %s ; Other targets disable callee-saved registers for internal functions when ; using IPRA, but that isn't profitable for ARM because the PUSH/POP ; instructions can more efficiently save registers than using individual ; LDR/STRs in the caller. define internal void @callee() norecurse { ; CHECK-LABEL: callee: entry: ; CHECK: push {r4, lr} ; CHECK: pop {r4, pc} tail call void asm sideeffect "", "~{r4}"() ret void } define void @caller() { entry: call void @callee() ret void }