Build constants using instructions mov/orr or mvn/eor.
[oota-llvm.git] / test / CodeGen / ARM / fp.ll
1 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm &&
2 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm | grep fmsr &&
3 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm | grep fmrs &&
4 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm | grep fmrrd &&
5 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm | grep fmdrr &&
6 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm | grep fldd &&
7 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm | grep flds &&
8 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm | grep fstd &&
9 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm | grep fsts &&
10 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm | grep "mov r0, #1065353216"
11
12
13 double %h(double* %v) {
14 entry:
15         %tmp = load double* %v          ; <double> [#uses=1]
16         ret double %tmp
17 }
18
19 float %h(float* %v) {
20 entry:
21         %tmp = load float* %v           ; <double> [#uses=1]
22         ret float %tmp
23 }
24
25 float %h() {
26 entry:
27         ret float 1.000000e+00
28 }
29
30 double %f2(double %a) {
31         ret double %a
32 }
33
34 void %f3() {
35 entry:
36         %tmp = call double %f5()                ; <double> [#uses=1]
37         call void %f4(double %tmp )
38         ret void
39 }
40
41 declare void %f4(double)
42 declare double %f5()
43
44 void %f6(float %a, float* %b) {
45 entry:
46         store float %a, float* %b
47         ret void
48 }
49
50 void %f7(double %a, double* %b) {
51 entry:
52         store double %a, double* %b
53         ret void
54 }