blob: a5d09524e11dc427a2f1400e58e5b800164ac4d8 [file] [log] [blame]
Manman Ren802cd6f2016-04-05 22:44:44 +00001; RUN: llc -mtriple=armv7-apple-ios < %s | FileCheck %s
2
3define swiftcc float @t1(float %a, float %b) {
4entry:
5; CHECK: t1
6; CHECK-NOT: vmov
7; CHECK: vadd.f32
8 %add = fadd float %a, %b
9 ret float %add
10}
11
12define swiftcc double @t2(double %a, double %b) {
13entry:
14; CHECK: t2
15; CHECK-NOT: vmov
16; CHECK: vadd.f64
17 %add = fadd double %a, %b
18 ret double %add
19}
20
21define swiftcc double @t9(double %d0, double %d1, double %d2, double %d3,
22 double %d4, double %d5, double %d6, double %d7, float %a, float %b) {
23entry:
24; CHECK-LABEL: t9:
25; CHECK-NOT: vmov
26; CHECK: vldr
27 %add = fadd float %a, %b
28 %conv = fpext float %add to double
29 ret double %conv
30}
31
32define swiftcc double @t10(double %d0, double %d1, double %d2, double %d3,
33 double %d4, double %d5, double %a, float %b, double %c) {
34entry:
35; CHECK-LABEL: t10:
36; CHECK-NOT: vmov
37; CHECK: vldr
38 %add = fadd double %a, %c
39 ret double %add
40}
41
42define swiftcc float @t11(double %d0, double %d1, double %d2, double %d3,
43 double %d4, double %d5, double %d6, float %a, double %b, float %c) {
44entry:
45; CHECK-LABEL: t11:
46; CHECK: vldr
47 %add = fadd float %a, %c
48 ret float %add
49}
50
51define swiftcc double @t12(double %a, double %b) {
52entry:
53; CHECK-LABEL: t12:
54; CHECK: vstr
55 %add = fadd double %a, %b
56 %sub = fsub double %a, %b
57 %call = tail call swiftcc double @x(double 0.000000e+00, double 0.000000e+00,
58 double 0.000000e+00, double 0.000000e+00, double 0.000000e+00,
59 double 0.000000e+00, double %add, float 0.000000e+00,
60 double %sub)
61 ret double %call
62}
63
64declare swiftcc double @x(double, double, double, double, double, double,
65 double, float, double)
66
67attributes #0 = { readnone }
68attributes #1 = { readonly }