• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: llc < %s -O2 -mtriple=x86_64-linux-android -mattr=+mmx | FileCheck %s
2; RUN: llc < %s -O2 -mtriple=x86_64-linux-gnu -mattr=+mmx | FileCheck %s
3
4; __float128 myFP128 = 1.0L;  // x86_64-linux-android
5@myFP128 = global fp128 0xL00000000000000003FFF000000000000, align 16
6
7; The first few parameters are passed in registers and the other are on stack.
8
9define fp128 @TestParam_FP128_0(fp128 %d0, fp128 %d1, fp128 %d2, fp128 %d3, fp128 %d4, fp128 %d5, fp128 %d6, fp128 %d7, fp128 %d8, fp128 %d9, fp128 %d10, fp128 %d11, fp128 %d12, fp128 %d13, fp128 %d14, fp128 %d15, fp128 %d16, fp128 %d17, fp128 %d18, fp128 %d19) {
10entry:
11  ret fp128 %d0
12; CHECK-LABEL: TestParam_FP128_0:
13; CHECK-NOT:   mov
14; CHECK:       retq
15}
16
17define fp128 @TestParam_FP128_1(fp128 %d0, fp128 %d1, fp128 %d2, fp128 %d3, fp128 %d4, fp128 %d5, fp128 %d6, fp128 %d7, fp128 %d8, fp128 %d9, fp128 %d10, fp128 %d11, fp128 %d12, fp128 %d13, fp128 %d14, fp128 %d15, fp128 %d16, fp128 %d17, fp128 %d18, fp128 %d19) {
18entry:
19  ret fp128 %d1
20; CHECK-LABEL: TestParam_FP128_1:
21; CHECK:       movaps  %xmm1, %xmm0
22; CHECK-NEXT:  retq
23}
24
25define fp128 @TestParam_FP128_7(fp128 %d0, fp128 %d1, fp128 %d2, fp128 %d3, fp128 %d4, fp128 %d5, fp128 %d6, fp128 %d7, fp128 %d8, fp128 %d9, fp128 %d10, fp128 %d11, fp128 %d12, fp128 %d13, fp128 %d14, fp128 %d15, fp128 %d16, fp128 %d17, fp128 %d18, fp128 %d19) {
26entry:
27  ret fp128 %d7
28; CHECK-LABEL: TestParam_FP128_7:
29; CHECK:       movaps  %xmm7, %xmm0
30; CHECK-NEXT:  retq
31}
32
33define fp128 @TestParam_FP128_8(fp128 %d0, fp128 %d1, fp128 %d2, fp128 %d3, fp128 %d4, fp128 %d5, fp128 %d6, fp128 %d7, fp128 %d8, fp128 %d9, fp128 %d10, fp128 %d11, fp128 %d12, fp128 %d13, fp128 %d14, fp128 %d15, fp128 %d16, fp128 %d17, fp128 %d18, fp128 %d19) {
34entry:
35  ret fp128 %d8
36; CHECK-LABEL: TestParam_FP128_8:
37; CHECK:       movaps 8(%rsp), %xmm0
38; CHECK-NEXT:  retq
39}
40
41define fp128 @TestParam_FP128_9(fp128 %d0, fp128 %d1, fp128 %d2, fp128 %d3, fp128 %d4, fp128 %d5, fp128 %d6, fp128 %d7, fp128 %d8, fp128 %d9, fp128 %d10, fp128 %d11, fp128 %d12, fp128 %d13, fp128 %d14, fp128 %d15, fp128 %d16, fp128 %d17, fp128 %d18, fp128 %d19) {
42entry:
43  ret fp128 %d9
44; CHECK-LABEL: TestParam_FP128_9:
45; CHECK:       movaps 24(%rsp), %xmm0
46; CHECK-NEXT:  retq
47}
48