Chris Lattner | 539c337 | 2006-02-11 09:37:07 +0000 | [diff] [blame] | 1 | ; Testcase for calls to the standard C "pow" function |
| 2 | ; |
| 3 | ; Equivalent to: http://gcc.gnu.org/ml/gcc-patches/2003-02/msg01786.html |
Reid Spencer | 894cfff | 2007-04-15 05:16:38 +0000 | [diff] [blame] | 4 | ; RUN: llvm-upgrade < %s | llvm-as | opt -simplify-libcalls | llvm-dis | \ |
| 5 | ; RUN: not grep {call double .pow} |
| 6 | ; END. |
Reid Spencer | 0f4a891 | 2005-04-29 05:47:05 +0000 | [diff] [blame] | 7 | |
Chris Lattner | 539c337 | 2006-02-11 09:37:07 +0000 | [diff] [blame] | 8 | declare double %pow(double, double) |
Reid Spencer | 0f4a891 | 2005-04-29 05:47:05 +0000 | [diff] [blame] | 9 | |
Chris Lattner | 539c337 | 2006-02-11 09:37:07 +0000 | [diff] [blame] | 10 | double %test1(double %X) { |
| 11 | %Y = call double %pow(double %X, double 0.0) |
| 12 | ret double %Y ; x^0.0 always equals 1.0 |
Reid Spencer | 0f4a891 | 2005-04-29 05:47:05 +0000 | [diff] [blame] | 13 | } |
Chris Lattner | 539c337 | 2006-02-11 09:37:07 +0000 | [diff] [blame] | 14 | |
| 15 | double %test2(double %X) { |
| 16 | %Y = call double %pow(double %X, double -0.0) |
| 17 | ret double %Y ; x^-0.0 always equals 1.0 |
| 18 | } |
| 19 | |
| 20 | double %test3(double %X) { |
| 21 | %Y = call double %pow(double 1.0, double %X) |
| 22 | ret double %Y ; 1.0^x always equals 1.0 |
| 23 | } |
| 24 | |