1; RUN: llc -march=arm64 -mcpu=cyclone < %s | FileCheck %s
2
3; CHECK: foo
4; CHECK: ldr w[[REG:[0-9]+]], [x19, #264]
5; CHECK: str w[[REG]], [x19, #132]
6; CHECK: ldr w{{[0-9]+}}, [x19, #264]
7
8define i32 @foo(i32 %a) nounwind {
9  %retval = alloca i32, align 4
10  %a.addr = alloca i32, align 4
11  %arr = alloca [32 x i32], align 4
12  %i = alloca i32, align 4
13  %arr2 = alloca [32 x i32], align 4
14  %j = alloca i32, align 4
15  store i32 %a, i32* %a.addr, align 4
16  %tmp = load i32* %a.addr, align 4
17  %tmp1 = zext i32 %tmp to i64
18  %v = mul i64 4, %tmp1
19  %vla = alloca i8, i64 %v, align 4
20  %tmp2 = bitcast i8* %vla to i32*
21  %tmp3 = load i32* %a.addr, align 4
22  store i32 %tmp3, i32* %i, align 4
23  %tmp4 = load i32* %a.addr, align 4
24  store i32 %tmp4, i32* %j, align 4
25  %tmp5 = load i32* %j, align 4
26  store i32 %tmp5, i32* %retval
27  %x = load i32* %retval
28  ret i32 %x
29}
30