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: |
Evan Cheng | 3a1588a | 2010-04-15 22:20:34 +0000 | [diff] [blame] | 10 | ; CHECK: mov r0, sp |
| 11 | ; CHECK: bfc r0, #0, #3 |
| 12 | ; CHECK: subs r0, #16 |
| 13 | ; CHECK: mov sp, r0 |
Evan Cheng | 0ea7d21 | 2010-04-15 18:42:28 +0000 | [diff] [blame] | 14 | ; Yes, this is stupid codegen, but it's correct. |
Evan Cheng | 3a1588a | 2010-04-15 22:20:34 +0000 | [diff] [blame] | 15 | ; CHECK: mov r0, sp |
| 16 | ; CHECK: bfc r0, #0, #3 |
| 17 | ; CHECK: subs r0, #16 |
| 18 | ; CHECK: mov sp, r0 |
Evan Cheng | 0ea7d21 | 2010-04-15 18:42:28 +0000 | [diff] [blame] | 19 | %size = mul i32 8, 2 |
| 20 | %vla_a = alloca i8, i32 %size, align 8 |
| 21 | %vla_b = alloca i8, i32 %size, align 8 |
| 22 | unreachable |
| 23 | } |