blob: 31eb3f65623f577981ada9820472778a53c5c879 [file] [log] [blame]
Tanya Lattner5f4b3552008-03-10 07:21:50 +00001; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis > %t
Reid Spencer6e87ec42007-04-16 17:36:08 +00002; RUN: not grep {call.*floor(} %t
3; RUN: grep {call.*floorf(} %t
4; RUN: not grep {call.*ceil(} %t
5; RUN: grep {call.*ceilf(} %t
6; RUN: not grep {call.*nearbyint(} %t
7; RUN: grep {call.*nearbyintf(} %t
Chris Lattnerfdcc0d92006-01-23 05:56:34 +00008; XFAIL: sparc
Chris Lattner16a382d2005-08-24 17:20:30 +00009
Tanya Lattner5f4b3552008-03-10 07:21:50 +000010declare double @floor(double)
Chris Lattner16a382d2005-08-24 17:20:30 +000011
Tanya Lattner5f4b3552008-03-10 07:21:50 +000012declare double @ceil(double)
13
14declare double @nearbyint(double)
15
16define float @test_floor(float %C) {
17 %D = fpext float %C to double ; <double> [#uses=1]
18 ; --> floorf
19 %E = call double @floor( double %D ) ; <double> [#uses=1]
20 %F = fptrunc double %E to float ; <float> [#uses=1]
Chris Lattner16a382d2005-08-24 17:20:30 +000021 ret float %F
22}
23
Tanya Lattner5f4b3552008-03-10 07:21:50 +000024define float @test_ceil(float %C) {
25 %D = fpext float %C to double ; <double> [#uses=1]
26 ; --> ceilf
27 %E = call double @ceil( double %D ) ; <double> [#uses=1]
28 %F = fptrunc double %E to float ; <float> [#uses=1]
Chris Lattner4bfe10d2006-01-23 06:24:17 +000029 ret float %F
30}
31
Tanya Lattner5f4b3552008-03-10 07:21:50 +000032define float @test_nearbyint(float %C) {
33 %D = fpext float %C to double ; <double> [#uses=1]
Chris Lattner0ceb8802008-05-01 06:16:48 +000034 ; --> nearbyintf
Tanya Lattner5f4b3552008-03-10 07:21:50 +000035 %E = call double @nearbyint( double %D ) ; <double> [#uses=1]
36 %F = fptrunc double %E to float ; <float> [#uses=1]
Chris Lattner4bfe10d2006-01-23 06:24:17 +000037 ret float %F
38}
39