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