Evan Cheng | 0ea7d21 | 2010-04-15 18:42:28 +0000 | [diff] [blame] | 1 | ; RUN: llc < %s -mtriple=thumbv7-apple-darwin -mcpu=cortex-a8 -O3 | FileCheck %s |
| 2 | ; rdar://7493908 |
| 3 | |
| 4 | ; Make sure the result of the first dynamic_alloc isn't copied back to sp more |
| 5 | ; than once. We'll deal with poor codegen later. |
| 6 | |
Rafael Espindola | 1e81966 | 2010-06-17 15:18:27 +0000 | [diff] [blame] | 7 | define void @t() nounwind ssp { |
Evan Cheng | 0ea7d21 | 2010-04-15 18:42:28 +0000 | [diff] [blame] | 8 | entry: |
| 9 | ; CHECK: t: |
Daniel Dunbar | 6a87003 | 2010-09-03 15:26:42 +0000 | [diff] [blame] | 10 | ; CHECK: push {r4, r7} |
| 11 | ; CHECK: mov r0, sp |
| 12 | ; CHECK: add r7, sp, #4 |
| 13 | ; CHECK: bic r0, r0, #7 |
| 14 | ; CHECK: subs r0, #16 |
| 15 | ; CHECK: mov sp, r0 |
| 16 | ; CHECK: mov r0, sp |
| 17 | ; CHECK: bic r0, r0, #7 |
| 18 | ; CHECK: subs r0, #16 |
| 19 | ; CHECK: mov sp, r0 |
| 20 | |
Evan Cheng | 0ea7d21 | 2010-04-15 18:42:28 +0000 | [diff] [blame] | 21 | %size = mul i32 8, 2 |
| 22 | %vla_a = alloca i8, i32 %size, align 8 |
Evan Cheng | 0ea7d21 | 2010-04-15 18:42:28 +0000 | [diff] [blame] | 23 | %vla_b = alloca i8, i32 %size, align 8 |
| 24 | unreachable |
| 25 | } |