|
| 1 | +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4 |
1 | 2 | ; RUN: llc -mtriple=arm-eabi -mattr=+neon -float-abi=soft %s -o - | FileCheck %s
|
2 | 3 |
|
3 | 4 | ; CHECK: function1
|
4 | 5 | ; CHECK-NOT: vmov
|
5 | 6 | define double @function1(double %a, double %b, double %c, double %d, double %e, double %f) nounwind noinline ssp {
|
| 7 | +; CHECK-LABEL: function1: |
| 8 | +; CHECK: @ %bb.0: @ %entry |
| 9 | +; CHECK-NEXT: .save {r4, r5, r11, lr} |
| 10 | +; CHECK-NEXT: push {r4, r5, r11, lr} |
| 11 | +; CHECK-NEXT: .pad #32 |
| 12 | +; CHECK-NEXT: sub sp, sp, #32 |
| 13 | +; CHECK-NEXT: add lr, sp, #64 |
| 14 | +; CHECK-NEXT: vldr d16, [sp, #56] |
| 15 | +; CHECK-NEXT: str r2, [sp, #16] |
| 16 | +; CHECK-NEXT: ldm lr, {r4, r5, r12, lr} |
| 17 | +; CHECK-NEXT: str r3, [sp, #20] |
| 18 | +; CHECK-NEXT: mov r3, r5 |
| 19 | +; CHECK-NEXT: str r0, [sp, #24] |
| 20 | +; CHECK-NEXT: mov r0, r12 |
| 21 | +; CHECK-NEXT: str r1, [sp, #28] |
| 22 | +; CHECK-NEXT: mov r1, lr |
| 23 | +; CHECK-NEXT: mov r2, r4 |
| 24 | +; CHECK-NEXT: vldr d17, [sp, #48] |
| 25 | +; CHECK-NEXT: vstmia sp, {d16, d17} |
| 26 | +; CHECK-NEXT: bl function2 |
| 27 | +; CHECK-NEXT: add sp, sp, #32 |
| 28 | +; CHECK-NEXT: pop {r4, r5, r11, lr} |
| 29 | +; CHECK-NEXT: mov pc, lr |
6 | 30 | entry:
|
7 | 31 | %call = tail call double @function2(double %f, double %e, double %d, double %c, double %b, double %a) nounwind
|
8 | 32 | ret double %call
|
|
0 commit comments