1; RUN: opt < %s -simplify-libcalls -S > %t 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 8; XFAIL: sparc 9 10declare double @floor(double) 11 12declare 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] 21 ret float %F 22} 23 24define 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] 29 ret float %F 30} 31 32; PR8466 33; XFAIL: win32 34define float @test_nearbyint(float %C) { 35 %D = fpext float %C to double ; <double> [#uses=1] 36 ; --> nearbyintf 37 %E = call double @nearbyint( double %D ) ; <double> [#uses=1] 38 %F = fptrunc double %E to float ; <float> [#uses=1] 39 ret float %F 40} 41 42