Evan Cheng | 1e0eab1 | 2010-11-29 22:43:27 +0000 | [diff] [blame] | 1 | ; RUN: llc < %s -mtriple=armv7-apple-darwin | FileCheck %s --check-prefix=ARM |
| 2 | ; RUN: llc < %s -mtriple=thumbv7-apple-darwin | FileCheck %s --check-prefix=THUMB2 |
| 3 | ; rdar://8690640 |
| 4 | |
| 5 | define i32* @t(i32* %x) nounwind { |
| 6 | entry: |
| 7 | ; ARM: t: |
| 8 | ; ARM: push |
| 9 | ; ARM: mov r7, sp |
| 10 | ; ARM: bl _foo |
| 11 | ; ARM: bl _foo |
| 12 | ; ARM: bl _foo |
Jim Grosbach | dd11988 | 2011-03-11 22:51:41 +0000 | [diff] [blame] | 13 | ; ARM: pop {r7, pc} |
Evan Cheng | 1e0eab1 | 2010-11-29 22:43:27 +0000 | [diff] [blame] | 14 | |
| 15 | ; THUMB2: t: |
| 16 | ; THUMB2: push |
| 17 | ; THUMB2: mov r7, sp |
| 18 | ; THUMB2: blx _foo |
| 19 | ; THUMB2: blx _foo |
| 20 | ; THUMB2: blx _foo |
| 21 | ; THUMB2: pop |
| 22 | %0 = tail call i32* @foo(i32* %x) nounwind |
| 23 | %1 = tail call i32* @foo(i32* %0) nounwind |
| 24 | %2 = tail call i32* @foo(i32* %1) nounwind |
| 25 | ret i32* %2 |
| 26 | } |
| 27 | |
| 28 | declare i32* @foo(i32*) |