Home | History | Annotate | Download | only in ARM
      1 ; RUN: llc -filetype=asm -o - < %s -mtriple arm-arm-netbsd-eabi -disable-fp-elim| FileCheck %s --check-prefix=CHECK-ARM
      2 ; RUN: llc -filetype=asm -o - < %s -mtriple arm-arm-netbsd-eabi | FileCheck %s --check-prefix=CHECK-ARM-FP-ELIM
      3 
      4 define void @test1() {
      5     %tmp = alloca [ 64 x i32 ] , align 4
      6     ret void
      7 }
      8 
      9 ; CHECK-ARM-LABEL: test1:
     10 ; CHECK-ARM: .cfi_startproc
     11 ; CHECK-ARM: sub    sp, sp, #256
     12 ; CHECK-ARM: .cfi_endproc
     13 
     14 ; CHECK-ARM-FP-ELIM-LABEL: test1:
     15 ; CHECK-ARM-FP-ELIM: .cfi_startproc
     16 ; CHECK-ARM-FP-ELIM: sub    sp, sp, #256
     17 ; CHECK-ARM-FP-ELIM: .cfi_endproc
     18 
     19 define void @test2() {
     20     %tmp = alloca [ 4168 x i8 ] , align 4
     21     ret void
     22 }
     23 
     24 ; CHECK-ARM-LABEL: test2:
     25 ; CHECK-ARM: .cfi_startproc
     26 ; CHECK-ARM: push    {r4, r5}
     27 ; CHECK-ARM: .cfi_def_cfa_offset 8
     28 ; CHECK-ARM: .cfi_offset r5, -4
     29 ; CHECK-ARM: .cfi_offset r4, -8
     30 ; CHECK-ARM: sub    sp, sp, #72
     31 ; CHECK-ARM: sub    sp, sp, #4096
     32 ; CHECK-ARM: .cfi_def_cfa_offset 4176
     33 ; CHECK-ARM: .cfi_endproc
     34 
     35 ; CHECK-ARM-FP_ELIM-LABEL: test2:
     36 ; CHECK-ARM-FP_ELIM: .cfi_startproc
     37 ; CHECK-ARM-FP_ELIM: push    {r4, r5}
     38 ; CHECK-ARM-FP_ELIM: .cfi_def_cfa_offset 8
     39 ; CHECK-ARM-FP_ELIM: .cfi_offset 54, -4
     40 ; CHECK-ARM-FP_ELIM: .cfi_offset r4, -8
     41 ; CHECK-ARM-FP_ELIM: sub    sp, sp, #72
     42 ; CHECK-ARM-FP_ELIM: sub    sp, sp, #4096
     43 ; CHECK-ARM-FP_ELIM: .cfi_def_cfa_offset 4176
     44 ; CHECK-ARM-FP_ELIM: .cfi_endproc
     45 
     46 define i32 @test3() {
     47 	%retval = alloca i32, align 4
     48 	%tmp = alloca i32, align 4
     49 	%a = alloca [805306369 x i8], align 16
     50 	store i32 0, i32* %tmp
     51 	%tmp1 = load i32, i32* %tmp
     52         ret i32 %tmp1
     53 }
     54 
     55 ; CHECK-ARM-LABEL: test3:
     56 ; CHECK-ARM: .cfi_startproc
     57 ; CHECK-ARM: push    {r4, r5, r11}
     58 ; CHECK-ARM: .cfi_def_cfa_offset 12
     59 ; CHECK-ARM: .cfi_offset r11, -4
     60 ; CHECK-ARM: .cfi_offset r5, -8
     61 ; CHECK-ARM: .cfi_offset r4, -12
     62 ; CHECK-ARM: add    r11, sp, #8
     63 ; CHECK-ARM: .cfi_def_cfa r11, 4
     64 ; CHECK-ARM: sub    sp, sp, #20
     65 ; CHECK-ARM: sub    sp, sp, #805306368
     66 ; CHECK-ARM: bic    sp, sp, #15
     67 ; CHECK-ARM: .cfi_endproc
     68 
     69 ; CHECK-ARM-FP-ELIM-LABEL: test3:
     70 ; CHECK-ARM-FP-ELIM: .cfi_startproc
     71 ; CHECK-ARM-FP-ELIM: push    {r4, r5, r11}
     72 ; CHECK-ARM-FP-ELIM: .cfi_def_cfa_offset 12
     73 ; CHECK-ARM-FP-ELIM: .cfi_offset r11, -4
     74 ; CHECK-ARM-FP-ELIM: .cfi_offset r5, -8
     75 ; CHECK-ARM-FP-ELIM: .cfi_offset r4, -12
     76 ; CHECK-ARM-FP-ELIM: add    r11, sp, #8
     77 ; CHECK-ARM-FP-ELIM: .cfi_def_cfa r11, 4
     78 ; CHECK-ARM-FP-ELIM: sub    sp, sp, #20
     79 ; CHECK-ARM-FP-ELIM: sub    sp, sp, #805306368
     80 ; CHECK-ARM-FP-ELIM: bic    sp, sp, #15
     81 ; CHECK-ARM-FP-ELIM: .cfi_endproc
     82 
     83