; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4 ; RUN: llc -mtriple=arm-eabi -mattr=+neon -float-abi=soft %s -o - | FileCheck %s ; CHECK: function1 define double @function1(double %a, double %b, double %c, double %d, double %e, double %f) nounwind noinline ssp { ; CHECK-LABEL: function1: ; CHECK: @ %bb.0: @ %entry ; CHECK-NEXT: .save {r4, r5, r11, lr} ; CHECK-NEXT: push {r4, r5, r11, lr} ; CHECK-NEXT: vldr d16, [sp, #40] ; CHECK-NEXT: vldr d17, [sp, #32] ; CHECK-NEXT: vmov r12, lr, d16 ; CHECK-NEXT: vldr d16, [sp, #16] ; CHECK-NEXT: vmov r4, r5, d17 ; CHECK-NEXT: vldr d17, [sp, #24] ; CHECK-NEXT: str r3, [sp, #36] ; CHECK-NEXT: str r2, [sp, #32] ; CHECK-NEXT: str r1, [sp, #44] ; CHECK-NEXT: str r0, [sp, #40] ; CHECK-NEXT: vstr d17, [sp, #16] ; CHECK-NEXT: vstr d16, [sp, #24] ; CHECK-NEXT: mov r0, r12 ; CHECK-NEXT: mov r1, lr ; CHECK-NEXT: mov r2, r4 ; CHECK-NEXT: mov r3, r5 ; CHECK-NEXT: pop {r4, r5, r11, lr} ; CHECK-NEXT: b function2 entry: %call = tail call double @function2(double %f, double %e, double %d, double %c, double %b, double %a) nounwind ret double %call } declare double @function2(double, double, double, double, double, double)