ARM test cases contributed by Apple.
[oota-llvm.git] / test / CodeGen / ARM / fparith.ll
1 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm &&
2 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm -mattr=+vfp2 &&
3 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm -mattr=+vfp2 | grep fadds &&
4 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm -mattr=+vfp2 | grep faddd &&
5 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm -mattr=+vfp2 | grep fmuls &&
6 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm -mattr=+vfp2 | grep fmuld &&
7 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm -mattr=+vfp2 | grep fnegs &&
8 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm -mattr=+vfp2 | grep fnegd &&
9 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm -mattr=+vfp2 | grep fdivs &&
10 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm -mattr=+vfp2 | grep fdivd
11
12
13 float %f1(float %a, float %b) {
14 entry:
15         %tmp = add float %a, %b
16         ret float %tmp
17 }
18
19 double %f2(double %a, double %b) {
20 entry:
21         %tmp = add double %a, %b
22         ret double %tmp
23 }
24
25 float %f3(float %a, float %b) {
26 entry:
27         %tmp = mul float %a, %b
28         ret float %tmp
29 }
30
31 double %f4(double %a, double %b) {
32 entry:
33         %tmp = mul double %a, %b
34         ret double %tmp
35 }
36
37 float %f5(float %a, float %b) {
38 entry:
39         %tmp = sub float %a, %b
40         ret float %tmp
41 }
42
43 double %f6(double %a, double %b) {
44 entry:
45         %tmp = sub double %a, %b
46         ret double %tmp
47 }
48
49 float %f7(float %a) {
50 entry:
51         %tmp1 = sub float -0.000000e+00, %a
52         ret float %tmp1
53 }
54
55 double %f8(double %a) {
56 entry:
57         %tmp1 = sub double -0.000000e+00, %a
58         ret double %tmp1
59 }
60
61 float %f9(float %a, float %b) {
62 entry:
63         %tmp1 = div float %a, %b
64         ret float %tmp1
65 }
66
67 double %f10(double %a, double %b) {
68 entry:
69         %tmp1 = div double %a, %b
70         ret double %tmp1
71 }
72
73 float %f11(float %a) {
74 entry:
75         %tmp1 = call float %fabsf(float %a)
76         ret float %tmp1
77 }
78
79 declare float %fabsf(float)
80
81 double %f12(double %a) {
82 entry:
83         %tmp1 = call double %fabs(double %a)
84         ret double %tmp1
85 }
86
87 declare double %fabs(double)