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('
9 declare double %floor(double)
10 declare double %ceil(double)
11 declare double %nearbyint(double)
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
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
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