add new tests
[oota-llvm.git] / test / Transforms / SimplifyLibCalls / floor.ll
1 ; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | not grep 'call.*floor(' &&
2 ; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | grep 'call.*floorf('
3 ; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | not grep 'call.*ceil(' &&
4 ; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | grep 'call.*ceilf('
5 ; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | not grep 'call.*nearbyint(' &&
6 ; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | grep 'call.*nearbyintf('
7 ; XFAIL: sparc
8
9 declare double %floor(double)
10 declare double %ceil(double)
11 declare double %nearbyint(double)
12
13 float %test_floor(float %C) {
14         %D = cast float %C to double
15         %E = call double %floor(double %D)  ; --> floorf
16         %F = cast double %E to float
17         ret float %F
18 }
19
20 float %test_ceil(float %C) {
21         %D = cast float %C to double
22         %E = call double %ceil(double %D)  ; --> ceilf
23         %F = cast double %E to float
24         ret float %F
25 }
26
27 float %test_nearbyint(float %C) {
28         %D = cast float %C to double
29         %E = call double %nearbyint(double %D)  ; --> floorf
30         %F = cast double %E to float
31         ret float %F
32 }
33