| ; RUN: llc < %s -mtriple=armv7-apple-darwin | FileCheck %s --check-prefix=ARM |
| ; RUN: llc < %s -mtriple=thumbv7-apple-darwin | FileCheck %s --check-prefix=THUMB2 |
| ; rdar://8690640 |
| |
| define i32* @t(i32* %x) nounwind { |
| entry: |
| ; ARM: t: |
| ; ARM: push |
| ; ARM: mov r7, sp |
| ; ARM: bl _foo |
| ; ARM: bl _foo |
| ; ARM: bl _foo |
| ; ARM: pop {r7, pc} |
| |
| ; THUMB2: t: |
| ; THUMB2: push |
| ; THUMB2: mov r7, sp |
| ; THUMB2: blx _foo |
| ; THUMB2: blx _foo |
| ; THUMB2: blx _foo |
| ; THUMB2: pop |
| %0 = tail call i32* @foo(i32* %x) nounwind |
| %1 = tail call i32* @foo(i32* %0) nounwind |
| %2 = tail call i32* @foo(i32* %1) nounwind |
| ret i32* %2 |
| } |
| |
| declare i32* @foo(i32*) |