xref: /llvm-project/llvm/test/CodeGen/ARM/fp-arg-shuffle.ll (revision c1eb790cd2f2a3fd48781167b50f091c0d20be8d)
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4
2; RUN: llc -mtriple=arm-eabi -mattr=+neon -float-abi=soft %s -o - | FileCheck %s
3
4; CHECK: function1
5define double @function1(double %a, double %b, double %c, double %d, double %e, double %f) nounwind noinline ssp {
6; CHECK-LABEL: function1:
7; CHECK:       @ %bb.0: @ %entry
8; CHECK-NEXT:    .save {r4, r5, r11, lr}
9; CHECK-NEXT:    push {r4, r5, r11, lr}
10; CHECK-NEXT:    vldr d16, [sp, #40]
11; CHECK-NEXT:    vldr d17, [sp, #32]
12; CHECK-NEXT:    vmov r12, lr, d16
13; CHECK-NEXT:    vldr d16, [sp, #16]
14; CHECK-NEXT:    vmov r4, r5, d17
15; CHECK-NEXT:    vldr d17, [sp, #24]
16; CHECK-NEXT:    str r3, [sp, #36]
17; CHECK-NEXT:    str r2, [sp, #32]
18; CHECK-NEXT:    str r1, [sp, #44]
19; CHECK-NEXT:    str r0, [sp, #40]
20; CHECK-NEXT:    vstr d17, [sp, #16]
21; CHECK-NEXT:    vstr d16, [sp, #24]
22; CHECK-NEXT:    mov r0, r12
23; CHECK-NEXT:    mov r1, lr
24; CHECK-NEXT:    mov r2, r4
25; CHECK-NEXT:    mov r3, r5
26; CHECK-NEXT:    pop {r4, r5, r11, lr}
27; CHECK-NEXT:    b function2
28entry:
29  %call = tail call double @function2(double %f, double %e, double %d, double %c, double %b, double %a) nounwind
30  ret double %call
31}
32
33declare double @function2(double, double, double, double, double, double)
34