23 lines · plain
1; RUN: llc -mtriple armv7a--none-eabi < %s | FileCheck %s2; RUN: llc -mtriple armv7a--none-eabi < %s -enable-ipra | FileCheck %s3 4; Other targets disable callee-saved registers for internal functions when5; using IPRA, but that isn't profitable for ARM because the PUSH/POP6; instructions can more efficiently save registers than using individual7; LDR/STRs in the caller.8 9define internal void @callee() norecurse {10; CHECK-LABEL: callee:11entry:12; CHECK: push {r4, lr}13; CHECK: pop {r4, pc}14 tail call void asm sideeffect "", "~{r4}"()15 ret void16}17 18define void @caller() {19entry:20 call void @callee()21 ret void22}23