Chris Lattner | 539c337 | 2006-02-11 09:37:07 +0000 | [diff] [blame] | 1 | ; Testcase for calls to the standard C "pow" function |
| 2 | ; |
Chandler Carruth | 1de43ed | 2012-07-02 19:09:46 +0000 | [diff] [blame] | 3 | ; RUN: opt < %s -simplify-libcalls -S | not grep "call .pow" |
Chris Lattner | 77d00b0 | 2008-04-09 00:07:45 +0000 | [diff] [blame] | 4 | |
Reid Spencer | 0f4a891 | 2005-04-29 05:47:05 +0000 | [diff] [blame] | 5 | |
Tanya Lattner | ceca194 | 2008-03-10 07:21:50 +0000 | [diff] [blame] | 6 | declare double @pow(double, double) |
Chris Lattner | 77d00b0 | 2008-04-09 00:07:45 +0000 | [diff] [blame] | 7 | declare float @powf(float, float) |
Reid Spencer | 0f4a891 | 2005-04-29 05:47:05 +0000 | [diff] [blame] | 8 | |
Tanya Lattner | ceca194 | 2008-03-10 07:21:50 +0000 | [diff] [blame] | 9 | define double @test1(double %X) { |
| 10 | %Y = call double @pow( double %X, double 0.000000e+00 ) ; <double> [#uses=1] |
| 11 | ret double %Y |
Reid Spencer | 0f4a891 | 2005-04-29 05:47:05 +0000 | [diff] [blame] | 12 | } |
Chris Lattner | 539c337 | 2006-02-11 09:37:07 +0000 | [diff] [blame] | 13 | |
Tanya Lattner | ceca194 | 2008-03-10 07:21:50 +0000 | [diff] [blame] | 14 | define double @test2(double %X) { |
| 15 | %Y = call double @pow( double %X, double -0.000000e+00 ) ; <double> [#uses=1] |
| 16 | ret double %Y |
Chris Lattner | 539c337 | 2006-02-11 09:37:07 +0000 | [diff] [blame] | 17 | } |
| 18 | |
Tanya Lattner | ceca194 | 2008-03-10 07:21:50 +0000 | [diff] [blame] | 19 | define double @test3(double %X) { |
| 20 | %Y = call double @pow( double 1.000000e+00, double %X ) ; <double> [#uses=1] |
| 21 | ret double %Y |
Chris Lattner | 539c337 | 2006-02-11 09:37:07 +0000 | [diff] [blame] | 22 | } |
| 23 | |
Chris Lattner | 77d00b0 | 2008-04-09 00:07:45 +0000 | [diff] [blame] | 24 | define double @test4(double %X) { |
| 25 | %Y = call double @pow( double %X, double 2.0) |
| 26 | ret double %Y |
| 27 | } |
| 28 | |
| 29 | define float @test4f(float %X) { |
| 30 | %Y = call float @powf( float %X, float 2.0) |
| 31 | ret float %Y |
| 32 | } |
Chris Lattner | cc7f168 | 2008-04-09 17:48:11 +0000 | [diff] [blame] | 33 | |
| 34 | define float @test5f(float %X) { |
| 35 | %Y = call float @powf(float 2.0, float %X) ;; exp2 |
| 36 | ret float %Y |
| 37 | } |