blob: 773ba1e1aee32c42ca101bcf49ce2617871573b6 [file] [log] [blame]
Chris Lattner539c3372006-02-11 09:37:07 +00001; 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 Spencer894cfff2007-04-15 05:16:38 +00004; RUN: llvm-upgrade < %s | llvm-as | opt -simplify-libcalls | llvm-dis | \
5; RUN: not grep {call double .pow}
6; END.
Reid Spencer0f4a8912005-04-29 05:47:05 +00007
Chris Lattner539c3372006-02-11 09:37:07 +00008declare double %pow(double, double)
Reid Spencer0f4a8912005-04-29 05:47:05 +00009
Chris Lattner539c3372006-02-11 09:37:07 +000010double %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 Spencer0f4a8912005-04-29 05:47:05 +000013}
Chris Lattner539c3372006-02-11 09:37:07 +000014
15double %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
20double %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