Home | History | Annotate | Download | only in AArch64
      1 ; RUN: llc -mtriple=arm64-apple-ios < %s | FileCheck %s
      2 ; RUN: llc -mtriple=aarch64-linux-gnu < %s | FileCheck -check-prefix CHECK-NOTMACHO %s
      3 ;
      4 ; rdar://14075006
      5 
      6 define void @odd() nounwind {
      7 ; CHECK-LABEL: odd:
      8 ; CHECK: stp d15, d14, [sp, #-144]!
      9 ; CHECK: stp d13, d12, [sp, #16]
     10 ; CHECK: stp d11, d10, [sp, #32]
     11 ; CHECK: stp d9, d8, [sp, #48]
     12 ; CHECK: stp x28, x27, [sp, #64]
     13 ; CHECK: stp x26, x25, [sp, #80]
     14 ; CHECK: stp x24, x23, [sp, #96]
     15 ; CHECK: stp x22, x21, [sp, #112]
     16 ; CHECK: stp x20, x19, [sp, #128]
     17 ; CHECK: mov x0, #42
     18 ; CHECK: ldp x20, x19, [sp, #128]
     19 ; CHECK: ldp x22, x21, [sp, #112]
     20 ; CHECK: ldp x24, x23, [sp, #96]
     21 ; CHECK: ldp x26, x25, [sp, #80]
     22 ; CHECK: ldp x28, x27, [sp, #64]
     23 ; CHECK: ldp d9, d8, [sp, #48]
     24 ; CHECK: ldp d11, d10, [sp, #32]
     25 ; CHECK: ldp d13, d12, [sp, #16]
     26 ; CHECK: ldp d15, d14, [sp], #144
     27 
     28 ; CHECK-NOTMACHO-LABEL: odd:
     29 ; CHECK-NOTMACHO: stp d14, d12, [sp, #-80]!
     30 ; CHECK-NOTMACHO: stp d10, d8, [sp, #16]
     31 ; CHECK-NOTMACHO: str x27, [sp, #32]
     32 ; CHECK-NOTMACHO: stp x25, x23, [sp, #48]
     33 ; CHECK-NOTMACHO: stp x21, x19, [sp, #64]
     34 ; CHECK-NOTMACHO: mov x0, #42
     35 ; CHECK-NOTMACHO: ldp x21, x19, [sp, #64]
     36 ; CHECK-NOTMACHO: ldp x25, x23, [sp, #48]
     37 ; CHECK-NOTMACHO: ldr x27, [sp, #32]
     38 ; CHECK-NOTMACHO: ldp d10, d8, [sp, #16]
     39 ; CHECK-NOTMACHO: ldp d14, d12, [sp], #80
     40   call void asm sideeffect "mov x0, #42", "~{x0},~{x19},~{x21},~{x23},~{x25},~{x27},~{d8},~{d10},~{d12},~{d14}"() nounwind
     41   ret void
     42 }
     43 
     44 define void @even() nounwind {
     45 ; CHECK-LABEL: even:
     46 ; CHECK: stp d15, d14, [sp, #-144]!
     47 ; CHECK: stp d13, d12, [sp, #16]
     48 ; CHECK: stp d11, d10, [sp, #32]
     49 ; CHECK: stp d9, d8, [sp, #48]
     50 ; CHECK: stp x28, x27, [sp, #64]
     51 ; CHECK: stp x26, x25, [sp, #80]
     52 ; CHECK: stp x24, x23, [sp, #96]
     53 ; CHECK: stp x22, x21, [sp, #112]
     54 ; CHECK: stp x20, x19, [sp, #128]
     55 ; CHECK: mov x0, #42
     56 ; CHECK: ldp x20, x19, [sp, #128]
     57 ; CHECK: ldp x22, x21, [sp, #112]
     58 ; CHECK: ldp x24, x23, [sp, #96]
     59 ; CHECK: ldp x26, x25, [sp, #80]
     60 ; CHECK: ldp x28, x27, [sp, #64]
     61 ; CHECK: ldp d9, d8, [sp, #48]
     62 ; CHECK: ldp d11, d10, [sp, #32]
     63 ; CHECK: ldp d13, d12, [sp, #16]
     64 ; CHECK: ldp d15, d14, [sp], #144
     65 
     66 ; CHECK-NOTMACHO-LABEL: even:
     67 ; CHECK-NOTMACHO: stp d15, d13, [sp, #-80]!
     68 ; CHECK-NOTMACHO: stp d11, d9, [sp, #16]
     69 ; CHECK-NOTMACHO: str x28, [sp, #32]
     70 ; CHECK-NOTMACHO: stp x26, x24, [sp, #48]
     71 ; CHECK-NOTMACHO: stp x22, x20, [sp, #64]
     72 ; CHECK-NOTMACHO: mov x0, #42
     73 ; CHECK-NOTMACHO: ldp x22, x20, [sp, #64]
     74 ; CHECK-NOTMACHO: ldp x26, x24, [sp, #48]
     75 ; CHECK-NOTMACHO: ldr x28, [sp, #32]
     76 ; CHECK-NOTMACHO: ldp d11, d9, [sp, #16]
     77 ; CHECK-NOTMACHO: ldp d15, d13, [sp], #80
     78   call void asm sideeffect "mov x0, #42", "~{x0},~{x20},~{x22},~{x24},~{x26},~{x28},~{d9},~{d11},~{d13},~{d15}"() nounwind
     79   ret void
     80 }
     81