AArch64/ARM64: move ARM64 into AArch64's place
[oota-llvm.git] / test / CodeGen / AArch64 / regress-w29-reserved-with-fp.ll
1 ; RUN: llc -mtriple=aarch64-none-linux-gnu -disable-fp-elim < %s | FileCheck %s
2 @var = global i32 0
3
4 declare void @bar()
5
6 define void @test_w29_reserved() {
7 ; CHECK-LABEL: test_w29_reserved:
8 ; CHECK: add x29, sp, #{{[0-9]+}}
9
10   %val1 = load volatile i32* @var
11   %val2 = load volatile i32* @var
12   %val3 = load volatile i32* @var
13   %val4 = load volatile i32* @var
14   %val5 = load volatile i32* @var
15   %val6 = load volatile i32* @var
16   %val7 = load volatile i32* @var
17   %val8 = load volatile i32* @var
18   %val9 = load volatile i32* @var
19
20 ; CHECK-NOT: ldr w29,
21
22   ; Call to prevent fp-elim that occurs regardless in leaf functions.
23   call void @bar()
24
25   store volatile i32 %val1,  i32* @var
26   store volatile i32 %val2,  i32* @var
27   store volatile i32 %val3,  i32* @var
28   store volatile i32 %val4,  i32* @var
29   store volatile i32 %val5,  i32* @var
30   store volatile i32 %val6,  i32* @var
31   store volatile i32 %val7,  i32* @var
32   store volatile i32 %val8,  i32* @var
33   store volatile i32 %val9,  i32* @var
34
35   ret void
36 ; CHECK: ret
37 }