xref: /llvm-project/llvm/test/CodeGen/ARM/fp.ll (revision c8054d90fbe7ff386577c27dd51d597924036cde)
1; RUN: llc < %s -march=arm -mattr=+vfp2 > %t
2; RUN: grep fmsr %t | count 4
3; RUN: grep fsitos %t
4; RUN: grep fmrs %t | count 2
5; RUN: grep fsitod %t
6; RUN: grep fmrrd %t | count 3
7; RUN: not grep fmdrr %t
8; RUN: grep fldd %t
9; RUN: grep fuitod %t
10; RUN: grep fuitos %t
11; RUN: grep 1065353216 %t
12
13define float @f(i32 %a) {
14entry:
15        %tmp = sitofp i32 %a to float           ; <float> [#uses=1]
16        ret float %tmp
17}
18
19define double @g(i32 %a) {
20entry:
21        %tmp = sitofp i32 %a to double          ; <double> [#uses=1]
22        ret double %tmp
23}
24
25define double @uint_to_double(i32 %a) {
26entry:
27        %tmp = uitofp i32 %a to double          ; <double> [#uses=1]
28        ret double %tmp
29}
30
31define float @uint_to_float(i32 %a) {
32entry:
33        %tmp = uitofp i32 %a to float           ; <float> [#uses=1]
34        ret float %tmp
35}
36
37define double @h(double* %v) {
38entry:
39        %tmp = load double* %v          ; <double> [#uses=1]
40        ret double %tmp
41}
42
43define float @h2() {
44entry:
45        ret float 1.000000e+00
46}
47
48define double @f2(double %a) {
49        ret double %a
50}
51
52define void @f3() {
53entry:
54        %tmp = call double @f5( )               ; <double> [#uses=1]
55        call void @f4( double %tmp )
56        ret void
57}
58
59declare void @f4(double)
60
61declare double @f5()
62
63