Home | History | Annotate | Download | only in AArch64
      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, 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
     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 }
     38