[Alignment][NFC] migrate DataLayout internal struct to llvm::Align
[llvm-core.git] / test / CodeGen / AArch64 / regress-w29-reserved-with-fp.ll
blob0d1ce41696cc49dc5678110ce14da371db893ae0
1 ; RUN: llc -mtriple=aarch64-none-linux-gnu -frame-pointer=all < %s | FileCheck %s
2 @var = global i32 0
4 declare void @bar()
6 define void @test_w29_reserved() {
7 ; CHECK-LABEL: test_w29_reserved:
8 ; CHECK: mov x29, sp
10   %val1 = load volatile i32, i32* @var
11   %val2 = load volatile i32, i32* @var
12   %val3 = load volatile i32, i32* @var
13   %val4 = load volatile i32, i32* @var
14   %val5 = load volatile i32, i32* @var
15   %val6 = load volatile i32, i32* @var
16   %val7 = load volatile i32, i32* @var
17   %val8 = load volatile i32, i32* @var
18   %val9 = load volatile i32, i32* @var
20 ; CHECK-NOT: ldr w29,
22   ; Call to prevent fp-elim that occurs regardless in leaf functions.
23   call void @bar()
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
35   ret void
36 ; CHECK: ret