brintos

brintos / llvm-project-archived public Read only

0
0
Text · 631 B · 8070573 Raw
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