Tanya Lattner | 5f4b355 | 2008-03-10 07:21:50 +0000 | [diff] [blame] | 1 | ; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis > %t |
Reid Spencer | 6e87ec4 | 2007-04-16 17:36:08 +0000 | [diff] [blame] | 2 | ; 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 Lattner | fdcc0d9 | 2006-01-23 05:56:34 +0000 | [diff] [blame] | 8 | ; XFAIL: sparc |
Chris Lattner | 16a382d | 2005-08-24 17:20:30 +0000 | [diff] [blame] | 9 | |
Tanya Lattner | 5f4b355 | 2008-03-10 07:21:50 +0000 | [diff] [blame] | 10 | declare double @floor(double) |
Chris Lattner | 16a382d | 2005-08-24 17:20:30 +0000 | [diff] [blame] | 11 | |
Tanya Lattner | 5f4b355 | 2008-03-10 07:21:50 +0000 | [diff] [blame] | 12 | declare double @ceil(double) |
| 13 | |
| 14 | declare double @nearbyint(double) |
| 15 | |
| 16 | define 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 Lattner | 16a382d | 2005-08-24 17:20:30 +0000 | [diff] [blame] | 21 | ret float %F |
| 22 | } |
| 23 | |
Tanya Lattner | 5f4b355 | 2008-03-10 07:21:50 +0000 | [diff] [blame] | 24 | define 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 Lattner | 4bfe10d | 2006-01-23 06:24:17 +0000 | [diff] [blame] | 29 | ret float %F |
| 30 | } |
| 31 | |
Tanya Lattner | 5f4b355 | 2008-03-10 07:21:50 +0000 | [diff] [blame] | 32 | define float @test_nearbyint(float %C) { |
| 33 | %D = fpext float %C to double ; <double> [#uses=1] |
Chris Lattner | 0ceb880 | 2008-05-01 06:16:48 +0000 | [diff] [blame] | 34 | ; --> nearbyintf |
Tanya Lattner | 5f4b355 | 2008-03-10 07:21:50 +0000 | [diff] [blame] | 35 | %E = call double @nearbyint( double %D ) ; <double> [#uses=1] |
| 36 | %F = fptrunc double %E to float ; <float> [#uses=1] |
Chris Lattner | 4bfe10d | 2006-01-23 06:24:17 +0000 | [diff] [blame] | 37 | ret float %F |
| 38 | } |
| 39 | |