Commit 5b200ac2 by Feng Wang Committed by Paul Brook

f95-lang.c (gfc_init_builtin_functions): Use vold_list_node.

	* f95-lang.c (gfc_init_builtin_functions): Use vold_list_node.
	Create decls for __builtin_pow{,f}.
	* gfortran.h (PREFIX_LEN): Define.
	* trans-decl.c (gfor_fndecl_math_powi): Add.
	(gfor_fndecl_math_powf, gfor_fndecl_math_pow): Remove.
	(gfc_build_intrinsic_function_decls): Create decls for powi.
	* trans-expr.c (powi_table): Add.
	(gfc_conv_integer_power): Remove.
	(gfc_conv_powi): New function.
	(gfc_conv_cst_int_power): New function.
	(gfc_conv_power_op): Use new powi routines.
	* trans.h (struct gfc_powdecl_list): Add.
	(gfor_fndecl_math_powi): Add.
	(gfor_fndecl_math_powf, gfor_fndecl_math_pow): Remove.
testsuite/
	* gfortran.fortran-torture/execute/power.f90: Test constant integers.
libgfortran/
	* Makefile.am (i_pow_c): Set it. Add build rule.
	(gfor_built_src): Use it.
	(m4_files): add m4/pow.m4.
	* Makefile.in: Regenerate.
	* m4/pow.m4: New file.
	* generated/pow_*.c: Regenerate.

From-SVN: r82014
parent 933520b9
2004-05-18 Paul Brook <paul@codesourcery.com>
* f95-lang.c (gfc_init_builtin_functions): Use vold_list_node.
Create decls for __builtin_pow{,f}.
* gfortran.h (PREFIX_LEN): Define.
* trans-decl.c (gfor_fndecl_math_powi): Add.
(gfor_fndecl_math_powf, gfor_fndecl_math_pow): Remove.
(gfc_build_intrinsic_function_decls): Create decls for powi.
* trans-expr.c (powi_table): Add.
(gfc_conv_integer_power): Remove.
(gfc_conv_powi): New function.
(gfc_conv_cst_int_power): New function.
(gfc_conv_power_op): Use new powi routines.
* trans.h (struct gfc_powdecl_list): Add.
(gfor_fndecl_math_powi): Add.
(gfor_fndecl_math_powf, gfor_fndecl_math_pow): Remove.
2004-05-18 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de> 2004-05-18 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
* trans.c, trans-decl.c: Fix comment typos. * trans.c, trans-decl.c: Fix comment typos.
......
...@@ -750,16 +750,13 @@ gfc_init_builtin_functions (void) ...@@ -750,16 +750,13 @@ gfc_init_builtin_functions (void)
tree mfunc_double[2]; tree mfunc_double[2];
tree ftype; tree ftype;
tree tmp; tree tmp;
tree voidchain;
voidchain = tree_cons (NULL_TREE, void_type_node, NULL_TREE); tmp = tree_cons (NULL_TREE, float_type_node, void_list_node);
tmp = tree_cons (NULL_TREE, float_type_node, voidchain);
mfunc_float[0] = build_function_type (float_type_node, tmp); mfunc_float[0] = build_function_type (float_type_node, tmp);
tmp = tree_cons (NULL_TREE, float_type_node, tmp); tmp = tree_cons (NULL_TREE, float_type_node, tmp);
mfunc_float[1] = build_function_type (float_type_node, tmp); mfunc_float[1] = build_function_type (float_type_node, tmp);
tmp = tree_cons (NULL_TREE, double_type_node, voidchain); tmp = tree_cons (NULL_TREE, double_type_node, void_list_node);
mfunc_double[0] = build_function_type (double_type_node, tmp); mfunc_double[0] = build_function_type (double_type_node, tmp);
tmp = tree_cons (NULL_TREE, double_type_node, tmp); tmp = tree_cons (NULL_TREE, double_type_node, tmp);
mfunc_double[1] = build_function_type (double_type_node, tmp); mfunc_double[1] = build_function_type (double_type_node, tmp);
...@@ -777,57 +774,63 @@ gfc_init_builtin_functions (void) ...@@ -777,57 +774,63 @@ gfc_init_builtin_functions (void)
gfc_define_builtin ("__builtin_roundf", mfunc_float[0], gfc_define_builtin ("__builtin_roundf", mfunc_float[0],
BUILT_IN_ROUNDF, "roundf", true); BUILT_IN_ROUNDF, "roundf", true);
/* These are used to implement the ** operator. */
gfc_define_builtin ("__builtin_pow", mfunc_double[0],
BUILT_IN_POW, "pow", true);
gfc_define_builtin ("__builtin_powf", mfunc_float[0],
BUILT_IN_POWF, "powf", true);
/* Other builtin functions we use. */ /* Other builtin functions we use. */
tmp = tree_cons (NULL_TREE, long_integer_type_node, voidchain); tmp = tree_cons (NULL_TREE, long_integer_type_node, void_list_node);
tmp = tree_cons (NULL_TREE, long_integer_type_node, tmp); tmp = tree_cons (NULL_TREE, long_integer_type_node, tmp);
ftype = build_function_type (long_integer_type_node, tmp); ftype = build_function_type (long_integer_type_node, tmp);
gfc_define_builtin ("__builtin_expect", ftype, BUILT_IN_EXPECT, gfc_define_builtin ("__builtin_expect", ftype, BUILT_IN_EXPECT,
"__builtin_expect", true); "__builtin_expect", true);
tmp = tree_cons (NULL_TREE, size_type_node, voidchain); tmp = tree_cons (NULL_TREE, size_type_node, void_list_node);
tmp = tree_cons (NULL_TREE, pvoid_type_node, tmp); tmp = tree_cons (NULL_TREE, pvoid_type_node, tmp);
tmp = tree_cons (NULL_TREE, pvoid_type_node, tmp); tmp = tree_cons (NULL_TREE, pvoid_type_node, tmp);
ftype = build_function_type (pvoid_type_node, tmp); ftype = build_function_type (pvoid_type_node, tmp);
gfc_define_builtin ("__builtin_memcpy", ftype, BUILT_IN_MEMCPY, gfc_define_builtin ("__builtin_memcpy", ftype, BUILT_IN_MEMCPY,
"memcpy", false); "memcpy", false);
tmp = tree_cons (NULL_TREE, integer_type_node, voidchain); tmp = tree_cons (NULL_TREE, integer_type_node, void_list_node);
ftype = build_function_type (integer_type_node, tmp); ftype = build_function_type (integer_type_node, tmp);
gfc_define_builtin ("__builtin_clz", ftype, BUILT_IN_CLZ, "clz", true); gfc_define_builtin ("__builtin_clz", ftype, BUILT_IN_CLZ, "clz", true);
tmp = tree_cons (NULL_TREE, long_integer_type_node, voidchain); tmp = tree_cons (NULL_TREE, long_integer_type_node, void_list_node);
ftype = build_function_type (integer_type_node, tmp); ftype = build_function_type (integer_type_node, tmp);
gfc_define_builtin ("__builtin_clzl", ftype, BUILT_IN_CLZL, "clzl", true); gfc_define_builtin ("__builtin_clzl", ftype, BUILT_IN_CLZL, "clzl", true);
tmp = tree_cons (NULL_TREE, long_long_integer_type_node, voidchain); tmp = tree_cons (NULL_TREE, long_long_integer_type_node, void_list_node);
ftype = build_function_type (integer_type_node, tmp); ftype = build_function_type (integer_type_node, tmp);
gfc_define_builtin ("__builtin_clzll", ftype, BUILT_IN_CLZLL, "clzll", true); gfc_define_builtin ("__builtin_clzll", ftype, BUILT_IN_CLZLL, "clzll", true);
tmp = tree_cons (NULL_TREE, pvoid_type_node, voidchain); tmp = tree_cons (NULL_TREE, pvoid_type_node, void_list_node);
tmp = tree_cons (NULL_TREE, pvoid_type_node, tmp); tmp = tree_cons (NULL_TREE, pvoid_type_node, tmp);
tmp = tree_cons (NULL_TREE, pvoid_type_node, tmp); tmp = tree_cons (NULL_TREE, pvoid_type_node, tmp);
ftype = build_function_type (void_type_node, tmp); ftype = build_function_type (void_type_node, tmp);
gfc_define_builtin ("__builtin_init_trampoline", ftype, gfc_define_builtin ("__builtin_init_trampoline", ftype,
BUILT_IN_INIT_TRAMPOLINE, "init_trampoline", false); BUILT_IN_INIT_TRAMPOLINE, "init_trampoline", false);
tmp = tree_cons (NULL_TREE, pvoid_type_node, voidchain); tmp = tree_cons (NULL_TREE, pvoid_type_node, void_list_node);
ftype = build_function_type (pvoid_type_node, tmp); ftype = build_function_type (pvoid_type_node, tmp);
gfc_define_builtin ("__builtin_adjust_trampoline", ftype, gfc_define_builtin ("__builtin_adjust_trampoline", ftype,
BUILT_IN_ADJUST_TRAMPOLINE, "adjust_trampoline", true); BUILT_IN_ADJUST_TRAMPOLINE, "adjust_trampoline", true);
tmp = tree_cons (NULL_TREE, pvoid_type_node, voidchain); tmp = tree_cons (NULL_TREE, pvoid_type_node, void_list_node);
tmp = tree_cons (NULL_TREE, size_type_node, voidchain); tmp = tree_cons (NULL_TREE, size_type_node, void_list_node);
ftype = build_function_type (pvoid_type_node, tmp); ftype = build_function_type (pvoid_type_node, tmp);
gfc_define_builtin ("__builtin_stack_alloc", ftype, BUILT_IN_STACK_ALLOC, gfc_define_builtin ("__builtin_stack_alloc", ftype, BUILT_IN_STACK_ALLOC,
"stack_alloc", false); "stack_alloc", false);
/* The stack_save and stack_restore builtins aren't used directly. They /* The stack_save and stack_restore builtins aren't used directly. They
are inserted during gimplification to implement stack_alloc calls. */ are inserted during gimplification to implement stack_alloc calls. */
ftype = build_function_type (pvoid_type_node, voidchain); ftype = build_function_type (pvoid_type_node, void_list_node);
gfc_define_builtin ("__builtin_stack_save", ftype, BUILT_IN_STACK_SAVE, gfc_define_builtin ("__builtin_stack_save", ftype, BUILT_IN_STACK_SAVE,
"stack_save", false); "stack_save", false);
tmp = tree_cons (NULL_TREE, pvoid_type_node, voidchain); tmp = tree_cons (NULL_TREE, pvoid_type_node, void_list_node);
ftype = build_function_type (void_type_node, tmp); ftype = build_function_type (void_type_node, tmp);
gfc_define_builtin ("__builtin_stack_restore", ftype, BUILT_IN_STACK_RESTORE, gfc_define_builtin ("__builtin_stack_restore", ftype, BUILT_IN_STACK_RESTORE,
"stack_restore", false); "stack_restore", false);
......
...@@ -82,6 +82,7 @@ char *alloca (); ...@@ -82,6 +82,7 @@ char *alloca ();
ugly to look at and a pain to type when you add the prefix by hand, ugly to look at and a pain to type when you add the prefix by hand,
so we hide it behind a macro. */ so we hide it behind a macro. */
#define PREFIX(x) "_gfortran_" x #define PREFIX(x) "_gfortran_" x
#define PREFIX_LEN 10
/* Macro to initialize an mstring structure. */ /* Macro to initialize an mstring structure. */
#define minit(s, t) { s, NULL, t } #define minit(s, t) { s, NULL, t }
......
...@@ -93,8 +93,7 @@ tree gfor_fndecl_associated; ...@@ -93,8 +93,7 @@ tree gfor_fndecl_associated;
/* Math functions. Many other math functions are handled in /* Math functions. Many other math functions are handled in
trans-intrinsic.c. */ trans-intrinsic.c. */
tree gfor_fndecl_math_powf; gfc_powdecl_list gfor_fndecl_math_powi[3][2];
tree gfor_fndecl_math_pow;
tree gfor_fndecl_math_cpowf; tree gfor_fndecl_math_cpowf;
tree gfor_fndecl_math_cpow; tree gfor_fndecl_math_cpow;
tree gfor_fndecl_math_cabsf; tree gfor_fndecl_math_cabsf;
...@@ -1398,14 +1397,40 @@ gfc_build_intrinsic_function_decls (void) ...@@ -1398,14 +1397,40 @@ gfc_build_intrinsic_function_decls (void)
/* Power functions. */ /* Power functions. */
gfor_fndecl_math_powf = {
gfc_build_library_function_decl (get_identifier ("powf"), tree type;
gfc_real4_type_node, tree itype;
1, gfc_real4_type_node); int kind;
gfor_fndecl_math_pow = int ikind;
gfc_build_library_function_decl (get_identifier ("pow"), static int kinds[2] = {4, 8};
gfc_real8_type_node, char name[PREFIX_LEN + 10]; /* _gfortran_pow_?n_?n */
1, gfc_real8_type_node);
for (ikind=0; ikind < 2; ikind++)
{
itype = gfc_get_int_type (kinds[ikind]);
for (kind = 0; kind < 2; kind ++)
{
type = gfc_get_int_type (kinds[kind]);
sprintf(name, PREFIX("pow_i%d_i%d"), kinds[kind], kinds[ikind]);
gfor_fndecl_math_powi[kind][ikind].integer =
gfc_build_library_function_decl (get_identifier (name),
type, 2, type, itype);
type = gfc_get_real_type (kinds[kind]);
sprintf(name, PREFIX("pow_r%d_i%d"), kinds[kind], kinds[ikind]);
gfor_fndecl_math_powi[kind][ikind].real =
gfc_build_library_function_decl (get_identifier (name),
type, 2, type, itype);
type = gfc_get_complex_type (kinds[kind]);
sprintf(name, PREFIX("pow_c%d_i%d"), kinds[kind], kinds[ikind]);
gfor_fndecl_math_powi[kind][ikind].cmplx =
gfc_build_library_function_decl (get_identifier (name),
type, 2, type, itype);
}
}
}
gfor_fndecl_math_cpowf = gfor_fndecl_math_cpowf =
gfc_build_library_function_decl (get_identifier ("cpowf"), gfc_build_library_function_decl (get_identifier ("cpowf"),
gfc_complex4_type_node, gfc_complex4_type_node,
......
...@@ -382,189 +382,172 @@ gfc_conv_unary_op (enum tree_code code, gfc_se * se, gfc_expr * expr) ...@@ -382,189 +382,172 @@ gfc_conv_unary_op (enum tree_code code, gfc_se * se, gfc_expr * expr)
} }
/* Expand power operator to optimal multiplications when a value is raised
to an constant integer n. See section 4.6.3, "Evaluation of Powers" of
Donald E. Knuth, "Seminumerical Algorithms", Vol. 2, "The Art of Computer
Programming", 3rd Edition, 1998. */
/* This code is mostly duplicated from expand_powi in the backend.
We establish the "optimal power tree" lookup table with the defined size.
The items in the table are the exponents used to calculate the index
exponents. Any integer n less than the value can get an "addition chain",
with the first node being one. */
#define POWI_TABLE_SIZE 256
/* The table is from Builtins.c. */
static const unsigned char powi_table[POWI_TABLE_SIZE] =
{
0, 1, 1, 2, 2, 3, 3, 4, /* 0 - 7 */
4, 6, 5, 6, 6, 10, 7, 9, /* 8 - 15 */
8, 16, 9, 16, 10, 12, 11, 13, /* 16 - 23 */
12, 17, 13, 18, 14, 24, 15, 26, /* 24 - 31 */
16, 17, 17, 19, 18, 33, 19, 26, /* 32 - 39 */
20, 25, 21, 40, 22, 27, 23, 44, /* 40 - 47 */
24, 32, 25, 34, 26, 29, 27, 44, /* 48 - 55 */
28, 31, 29, 34, 30, 60, 31, 36, /* 56 - 63 */
32, 64, 33, 34, 34, 46, 35, 37, /* 64 - 71 */
36, 65, 37, 50, 38, 48, 39, 69, /* 72 - 79 */
40, 49, 41, 43, 42, 51, 43, 58, /* 80 - 87 */
44, 64, 45, 47, 46, 59, 47, 76, /* 88 - 95 */
48, 65, 49, 66, 50, 67, 51, 66, /* 96 - 103 */
52, 70, 53, 74, 54, 104, 55, 74, /* 104 - 111 */
56, 64, 57, 69, 58, 78, 59, 68, /* 112 - 119 */
60, 61, 61, 80, 62, 75, 63, 68, /* 120 - 127 */
64, 65, 65, 128, 66, 129, 67, 90, /* 128 - 135 */
68, 73, 69, 131, 70, 94, 71, 88, /* 136 - 143 */
72, 128, 73, 98, 74, 132, 75, 121, /* 144 - 151 */
76, 102, 77, 124, 78, 132, 79, 106, /* 152 - 159 */
80, 97, 81, 160, 82, 99, 83, 134, /* 160 - 167 */
84, 86, 85, 95, 86, 160, 87, 100, /* 168 - 175 */
88, 113, 89, 98, 90, 107, 91, 122, /* 176 - 183 */
92, 111, 93, 102, 94, 126, 95, 150, /* 184 - 191 */
96, 128, 97, 130, 98, 133, 99, 195, /* 192 - 199 */
100, 128, 101, 123, 102, 164, 103, 138, /* 200 - 207 */
104, 145, 105, 146, 106, 109, 107, 149, /* 208 - 215 */
108, 200, 109, 146, 110, 170, 111, 157, /* 216 - 223 */
112, 128, 113, 130, 114, 182, 115, 132, /* 224 - 231 */
116, 200, 117, 132, 118, 158, 119, 206, /* 232 - 239 */
120, 240, 121, 162, 122, 147, 123, 152, /* 240 - 247 */
124, 166, 125, 214, 126, 138, 127, 153, /* 248 - 255 */
};
/* If n is larger than lookup table's max index, we use "window method". */
#define POWI_WINDOW_SIZE 3
/* Recursive function to expand power operator. The temporary values are put
in tmpvar. The function return tmpvar[1] ** n. */
static tree
gfc_conv_powi (gfc_se * se, int n, tree * tmpvar)
{
tree op0;
tree op1;
tree tmp;
int digit;
/* For power op (lhs ** rhs) We generate: if (n < POWI_TABLE_SIZE)
m = lhs
if (rhs > 0)
count = rhs
else if (rhs == 0)
{ {
count = 0 if (tmpvar[n])
m = 1 return tmpvar[n];
op0 = gfc_conv_powi (se, n - powi_table[n], tmpvar);
op1 = gfc_conv_powi (se, powi_table[n], tmpvar);
} }
else // (rhs < 0) else if (n & 1)
{
digit = n & ((1 << POWI_WINDOW_SIZE) - 1);
op0 = gfc_conv_powi (se, n - digit, tmpvar);
op1 = gfc_conv_powi (se, digit, tmpvar);
}
else
{ {
count = -rhs op0 = gfc_conv_powi (se, n >> 1, tmpvar);
m = 1 / m; op1 = op0;
} }
// for constant rhs we do the above at compile time
val = m;
for (n = 1; n < count; n++)
val = val * m;
*/
static void tmp = fold (build (MULT_EXPR, TREE_TYPE (op0), op0, op1));
gfc_conv_integer_power (gfc_se * se, tree lhs, tree rhs) tmp = gfc_evaluate_now (tmp, &se->pre);
if (n < POWI_TABLE_SIZE)
tmpvar[n] = tmp;
return tmp;
}
/* Expand lhs ** rhs. rhs is an constant integer. If expand successfully,
return 1. Else return 0 and will call runtime library functions. */
static int
gfc_conv_cst_int_power (gfc_se * se, tree lhs, tree rhs)
{ {
tree count;
tree result;
tree cond; tree cond;
tree neg_stmt;
tree pos_stmt;
tree tmp; tree tmp;
tree var;
tree type; tree type;
stmtblock_t block; tree vartmp[POWI_TABLE_SIZE];
tree exit_label; int n;
int sgn;
type = TREE_TYPE (lhs); type = TREE_TYPE (lhs);
n = abs (TREE_INT_CST_LOW (rhs));
sgn = tree_int_cst_sgn (rhs);
if (INTEGER_CST_P (rhs)) if ((!flag_unsafe_math_optimizations || optimize_size) && (n > 2 || n < -1))
{ return 0;
if (integer_zerop (rhs))
/* rhs == 0 */
if (sgn == 0)
{ {
se->expr = gfc_build_const (type, integer_one_node); se->expr = gfc_build_const (type, integer_one_node);
return; return 1;
} }
/* Special cases for constant values. */ /* If rhs < 0 and lhs is an integer, the result is -1, 0 or 1. */
if (TREE_INT_CST_HIGH (rhs) == -1) if ((sgn == -1) && (TREE_CODE (type) == INTEGER_TYPE))
{
/* x ** (-y) == 1 / (x ** y). */
if (TREE_CODE (type) == INTEGER_TYPE)
{
se->expr = integer_zero_node;
return;
}
tmp = gfc_build_const (type, integer_one_node);
lhs = fold (build (RDIV_EXPR, type, tmp, lhs));
rhs = fold (build1 (NEGATE_EXPR, TREE_TYPE (rhs), rhs));
assert (INTEGER_CST_P (rhs));
}
else
{ {
/* TODO: really big integer powers. */ tmp = build (EQ_EXPR, boolean_type_node, lhs,
assert (TREE_INT_CST_HIGH (rhs) == 0); integer_minus_one_node);
} cond = build (EQ_EXPR, boolean_type_node, lhs,
integer_one_node);
if (integer_onep (rhs)) /* If rhs is an even,
{ result = (lhs == 1 || lhs == -1) ? 1 : 0. */
se->expr = lhs; if ((n & 1) == 0)
return;
}
if (TREE_INT_CST_LOW (rhs) == 2)
{
se->expr = build (MULT_EXPR, type, lhs, lhs);
return;
}
if (TREE_INT_CST_LOW (rhs) == 3)
{ {
tmp = build (MULT_EXPR, type, lhs, lhs); tmp = build (TRUTH_OR_EXPR, boolean_type_node, tmp, cond);
se->expr = fold (build (MULT_EXPR, type, tmp, lhs)); se->expr = build (COND_EXPR, type, tmp, integer_one_node,
return; integer_zero_node);
return 1;
} }
/* If rhs is an odd,
/* Create the loop count variable. */ result = (lhs == 1) ? 1 : (lhs == -1) ? -1 : 0. */
count = gfc_create_var (TREE_TYPE (rhs), "count"); tmp = build (COND_EXPR, type, tmp, integer_minus_one_node,
gfc_add_modify_expr (&se->pre, count, rhs); integer_zero_node);
se->expr = build (COND_EXPR, type, cond, integer_one_node,
tmp);
return 1;
} }
else
{
/* Put the lhs into a temporary variable. */
var = gfc_create_var (type, "val");
count = gfc_create_var (TREE_TYPE (rhs), "count");
gfc_add_modify_expr (&se->pre, var, lhs);
lhs = var;
/* Generate code for negative rhs. */ memset (vartmp, 0, sizeof (vartmp));
gfc_start_block (&block); vartmp[1] = lhs;
if (TREE_CODE (TREE_TYPE (lhs)) == INTEGER_TYPE) se->expr = gfc_conv_powi (se, n, vartmp);
{ if (sgn == -1)
gfc_add_modify_expr (&block, lhs, integer_zero_node);
gfc_add_modify_expr (&block, count, integer_zero_node);
}
else
{ {
tmp = gfc_build_const (type, integer_one_node); tmp = gfc_build_const (type, integer_one_node);
tmp = build (RDIV_EXPR, type, tmp, lhs); se->expr = build (RDIV_EXPR, type, tmp, se->expr);
gfc_add_modify_expr (&block, var, tmp);
tmp = build1 (NEGATE_EXPR, TREE_TYPE (rhs), rhs);
gfc_add_modify_expr (&block, count, tmp);
} }
neg_stmt = gfc_finish_block (&block); return 1;
pos_stmt = build_v (MODIFY_EXPR, count, rhs);
/* Code for rhs == 0. */
gfc_start_block (&block);
gfc_add_modify_expr (&block, count, integer_zero_node);
tmp = gfc_build_const (type, integer_one_node);
gfc_add_modify_expr (&block, lhs, tmp);
tmp = gfc_finish_block (&block);
/* Select the appropriate action. */
cond = build (EQ_EXPR, boolean_type_node, rhs, integer_zero_node);
tmp = build_v (COND_EXPR, cond, tmp, neg_stmt);
cond = build (GT_EXPR, boolean_type_node, rhs, integer_zero_node);
tmp = build_v (COND_EXPR, cond, pos_stmt, tmp);
gfc_add_expr_to_block (&se->pre, tmp);
}
/* Create a variable for the result. */
result = gfc_create_var (type, "pow");
gfc_add_modify_expr (&se->pre, result, lhs);
exit_label = gfc_build_label_decl (NULL_TREE);
TREE_USED (exit_label) = 1;
/* Create the loop body. */
gfc_start_block (&block);
/* First the exit condition (until count <= 1). */
tmp = build1_v (GOTO_EXPR, exit_label);
cond = build (LE_EXPR, TREE_TYPE (count), count, integer_one_node);
tmp = build_v (COND_EXPR, cond, tmp, build_empty_stmt ());
gfc_add_expr_to_block (&block, tmp);
/* Multiply by the lhs. */
tmp = build (MULT_EXPR, type, result, lhs);
gfc_add_modify_expr (&block, result, tmp);
/* Adjust the loop count. */
tmp = build (MINUS_EXPR, TREE_TYPE (count), count, integer_one_node);
gfc_add_modify_expr (&block, count, tmp);
tmp = gfc_finish_block (&block);
/* Create the the loop. */
tmp = build_v (LOOP_EXPR, tmp);
gfc_add_expr_to_block (&se->pre, tmp);
/* Add the exit label. */
tmp = build1_v (LABEL_EXPR, exit_label);
gfc_add_expr_to_block (&se->pre, tmp);
se->expr = result;
} }
/* Power op (**). Integer rhs has special handling. */ /* Power op (**). Constant integer exponent has special handling. */
static void static void
gfc_conv_power_op (gfc_se * se, gfc_expr * expr) gfc_conv_power_op (gfc_se * se, gfc_expr * expr)
{ {
int kind; int kind;
int ikind;
gfc_se lse; gfc_se lse;
gfc_se rse; gfc_se rse;
tree fndecl; tree fndecl;
tree tmp; tree tmp;
tree type;
gfc_init_se (&lse, se); gfc_init_se (&lse, se);
gfc_conv_expr_val (&lse, expr->op1); gfc_conv_expr_val (&lse, expr->op1);
...@@ -574,24 +557,83 @@ gfc_conv_power_op (gfc_se * se, gfc_expr * expr) ...@@ -574,24 +557,83 @@ gfc_conv_power_op (gfc_se * se, gfc_expr * expr)
gfc_conv_expr_val (&rse, expr->op2); gfc_conv_expr_val (&rse, expr->op2);
gfc_add_block_to_block (&se->pre, &rse.pre); gfc_add_block_to_block (&se->pre, &rse.pre);
type = TREE_TYPE (lse.expr); if (expr->op2->ts.type == BT_INTEGER
&& expr->op2->expr_type == EXPR_CONSTANT)
if (gfc_conv_cst_int_power (se, lse.expr, rse.expr))
return;
kind = expr->op1->ts.kind; kind = expr->op1->ts.kind;
switch (expr->op2->ts.type) switch (expr->op2->ts.type)
{ {
case BT_INTEGER: case BT_INTEGER:
/* Integer powers are expanded inline as multiplications. */ ikind = expr->op2->ts.kind;
gfc_conv_integer_power (se, lse.expr, rse.expr); switch (ikind)
return; {
case 1:
case 2:
rse.expr = convert (gfc_int4_type_node, rse.expr);
/* Fall through. */
case 4:
ikind = 0;
break;
case 8:
ikind = 1;
break;
default:
abort();
}
switch (kind)
{
case 1:
case 2:
if (expr->op1->ts.type == BT_INTEGER)
lse.expr = convert (gfc_int4_type_node, lse.expr);
else
abort ();
/* Fall through. */
case 4:
kind = 0;
break;
case 8:
kind = 1;
break;
default:
abort();
}
switch (expr->op1->ts.type)
{
case BT_INTEGER:
fndecl = gfor_fndecl_math_powi[kind][ikind].integer;
break;
case BT_REAL:
fndecl = gfor_fndecl_math_powi[kind][ikind].real;
break;
case BT_COMPLEX:
fndecl = gfor_fndecl_math_powi[kind][ikind].cmplx;
break;
default:
abort ();
}
break;
case BT_REAL: case BT_REAL:
switch (kind) switch (kind)
{ {
case 4: case 4:
fndecl = gfor_fndecl_math_powf; fndecl = built_in_decls[BUILT_IN_POWF];
break; break;
case 8: case 8:
fndecl = gfor_fndecl_math_pow; fndecl = built_in_decls[BUILT_IN_POW];
break; break;
default: default:
abort (); abort ();
...@@ -619,7 +661,7 @@ gfc_conv_power_op (gfc_se * se, gfc_expr * expr) ...@@ -619,7 +661,7 @@ gfc_conv_power_op (gfc_se * se, gfc_expr * expr)
tmp = gfc_chainon_list (NULL_TREE, lse.expr); tmp = gfc_chainon_list (NULL_TREE, lse.expr);
tmp = gfc_chainon_list (tmp, rse.expr); tmp = gfc_chainon_list (tmp, rse.expr);
se->expr = gfc_build_function_call (fndecl, tmp); se->expr = fold (gfc_build_function_call (fndecl, tmp));
} }
......
...@@ -428,8 +428,16 @@ extern GTY(()) tree gfor_fndecl_associated; ...@@ -428,8 +428,16 @@ extern GTY(()) tree gfor_fndecl_associated;
/* Math functions. Many other math functions are handled in /* Math functions. Many other math functions are handled in
trans-intrinsic.c. */ trans-intrinsic.c. */
extern GTY(()) tree gfor_fndecl_math_powf;
extern GTY(()) tree gfor_fndecl_math_pow; typedef struct gfc_powdecl_list GTY(())
{
tree integer;
tree real;
tree cmplx;
}
gfc_powdecl_list;
extern GTY(()) gfc_powdecl_list gfor_fndecl_math_powi[3][2];
extern GTY(()) tree gfor_fndecl_math_cpowf; extern GTY(()) tree gfor_fndecl_math_cpowf;
extern GTY(()) tree gfor_fndecl_math_cpow; extern GTY(()) tree gfor_fndecl_math_cpow;
extern GTY(()) tree gfor_fndecl_math_cabsf; extern GTY(()) tree gfor_fndecl_math_cabsf;
......
2004-05-18 Paul Brook <paul@codesourcery.com>
* gfortran.fortran-torture/execute/power.f90: Test constant integers.
2004-05-18 Andrew Pinski <pinskia@physics.uc.edu> 2004-05-18 Andrew Pinski <pinskia@physics.uc.edu>
* gcc.dg/tree-ssa/20040518-1.c: New test. * gcc.dg/tree-ssa/20040518-1.c: New test.
......
...@@ -3,9 +3,41 @@ program testpow ...@@ -3,9 +3,41 @@ program testpow
implicit none implicit none
real(kind=4) r, s, two real(kind=4) r, s, two
real(kind=8) :: q real(kind=8) :: q
complex(kind=4) :: c complex(kind=4) :: c, z
real, parameter :: del = 0.0001 real, parameter :: del = 0.0001
integer i integer i, j
i = 2
j = i ** 10
if (abs (j - 1024) .gt. del) call abort
j = i ** (-10)
if (abs (j - 0) .gt. del) call abort
j = i ** 0
if (abs (j - 1) .gt. del) call abort
i = 1
j = i ** 10
if (abs (j - 1) .gt. del) call abort
j = i ** (-10)
if (abs (j - 1) .gt. del) call abort
j = i ** 0
if (abs (j - 1) .gt. del) call abort
i = -1
j = i ** 10
if (abs (j - 1) .gt. del) call abort
j = i ** (-10)
if (abs (j - 1) .gt. del) call abort
j = i ** 0
if (abs (j - 1) .gt. del) call abort
j = i ** 11
if (abs (j - (-1)) .gt. del) call abort
j = i ** (-11)
if (abs (j - (-1)) .gt. del) call abort
c = (2.0, 3.0)
z = c ** 2
if (abs(z - (-5.0, 12.0)) .gt. del) call abort
z = c ** 7
if (abs(z - (6554.0, 4449.0)) .gt. del) call abort
two = 2.0 two = 2.0
......
2004-05-18 Paul Brook <paul@codesourcery.com> 2004-05-18 Paul Brook <paul@codesourcery.com>
* Makefile.am (i_pow_c): Set it. Add build rule.
(gfor_built_src): Use it.
(m4_files): add m4/pow.m4.
* Makefile.in: Regenerate.
* m4/pow.m4: New file.
* generated/pow_*.c: Regenerate.
2004-05-18 Paul Brook <paul@codesourcery.com>
* Makefile.am: Remove references to types.m4. * Makefile.am: Remove references to types.m4.
* m4/iparm.m4: Merge with types.m4. * m4/iparm.m4: Merge with types.m4.
* m4/types.m4: Remove. * m4/types.m4: Remove.
......
...@@ -222,6 +222,20 @@ i_set_exponent_c = \ ...@@ -222,6 +222,20 @@ i_set_exponent_c = \
generated/set_exponent_r4.c \ generated/set_exponent_r4.c \
generated/set_exponent_r8.c generated/set_exponent_r8.c
i_pow_c = \
generated/pow_i4_i4.c \
generated/pow_i8_i4.c \
generated/pow_r4_i4.c \
generated/pow_r8_i4.c \
generated/pow_c4_i4.c \
generated/pow_c8_i4.c \
generated/pow_i4_i8.c \
generated/pow_i8_i8.c \
generated/pow_r4_i8.c \
generated/pow_r8_i8.c \
generated/pow_c4_i8.c \
generated/pow_c8_i8.c
m4_files= m4/iparm.m4 m4/ifunction.m4 m4/iforeach.m4 m4/all.m4 \ m4_files= m4/iparm.m4 m4/ifunction.m4 m4/iforeach.m4 m4/all.m4 \
m4/any.m4 m4/count.m4 m4/maxloc0.m4 m4/maxloc1.m4 m4/maxval.m4 \ m4/any.m4 m4/count.m4 m4/maxloc0.m4 m4/maxloc1.m4 m4/maxval.m4 \
m4/minloc0.m4 m4/minloc1.m4 m4/minval.m4 m4/product.m4 m4/sum.m4 \ m4/minloc0.m4 m4/minloc1.m4 m4/minval.m4 m4/product.m4 m4/sum.m4 \
...@@ -229,14 +243,15 @@ m4_files= m4/iparm.m4 m4/ifunction.m4 m4/iforeach.m4 m4/all.m4 \ ...@@ -229,14 +243,15 @@ m4_files= m4/iparm.m4 m4/ifunction.m4 m4/iforeach.m4 m4/all.m4 \
m4/ctrig.m4 m4/cexp.m4 m4/chyp.m4 m4/mtype.m4 \ m4/ctrig.m4 m4/cexp.m4 m4/chyp.m4 m4/mtype.m4 \
m4/specific.m4 m4/specific2.m4 m4/head.m4 m4/shape.m4 m4/reshape.m4 \ m4/specific.m4 m4/specific2.m4 m4/head.m4 m4/shape.m4 m4/reshape.m4 \
m4/transpose.m4 m4/eoshift1.m4 m4/eoshift3.m4 m4/exponent.m4 \ m4/transpose.m4 m4/eoshift1.m4 m4/eoshift3.m4 m4/exponent.m4 \
m4/fraction.m4 m4/nearest.m4 m4/set_exponent.m4 m4/fraction.m4 m4/nearest.m4 m4/set_exponent.m4 m4/pow.m4
gfor_built_src= $(i_all_c) $(i_any_c) $(i_count_c) $(i_maxloc0_c) \ gfor_built_src= $(i_all_c) $(i_any_c) $(i_count_c) $(i_maxloc0_c) \
$(i_maxloc1_c) $(i_maxval_c) $(i_minloc0_c) $(i_minloc1_c) $(i_minval_c) \ $(i_maxloc1_c) $(i_maxval_c) $(i_minloc0_c) $(i_minloc1_c) $(i_minval_c) \
$(i_product_c) $(i_sum_c) $(i_dotprod_c) $(i_dotprodl_c) $(i_dotprodc_c) \ $(i_product_c) $(i_sum_c) $(i_dotprod_c) $(i_dotprodl_c) $(i_dotprodc_c) \
$(i_matmul_c) $(i_matmull_c) $(i_transpose_c) $(i_shape_c) $(i_eoshift1_c) \ $(i_matmul_c) $(i_matmull_c) $(i_transpose_c) $(i_shape_c) $(i_eoshift1_c) \
$(i_eoshift3_c) $(i_cshift1_c) $(i_reshape_c) $(in_pack_c) $(in_unpack_c) \ $(i_eoshift3_c) $(i_cshift1_c) $(i_reshape_c) $(in_pack_c) $(in_unpack_c) \
$(i_exponent_c) $(i_fraction_c) $(i_nearest_c) $(i_set_exponent_c) $(i_exponent_c) $(i_fraction_c) $(i_nearest_c) $(i_set_exponent_c) \
$(i_pow_c)
# We only use these if libm doesn't contain complex math functions. # We only use these if libm doesn't contain complex math functions.
...@@ -443,6 +458,9 @@ $(i_nearest_c): m4/nearest.m4 m4/mtype.m4 ...@@ -443,6 +458,9 @@ $(i_nearest_c): m4/nearest.m4 m4/mtype.m4
$(i_set_exponent_c): m4/set_exponent.m4 m4/mtype.m4 $(i_set_exponent_c): m4/set_exponent.m4 m4/mtype.m4
m4 -Dfile=$@ -I$(srcdir)/m4 set_exponent.m4 > $@ m4 -Dfile=$@ -I$(srcdir)/m4 set_exponent.m4 > $@
$(i_pow_c): m4/pow.m4 $(I_M4_DEPS)
m4 -Dfile=$@ -I$(srcdir)/m4 pow.m4 > $@
$(gfor_math_trig_c): m4/ctrig.m4 m4/mtype.m4 $(gfor_math_trig_c): m4/ctrig.m4 m4/mtype.m4
m4 -Dfile=$@ -I$(srcdir)/m4 ctrig.m4 > $@ m4 -Dfile=$@ -I$(srcdir)/m4 ctrig.m4 > $@
......
...@@ -101,7 +101,10 @@ am__objects_26 = exponent_r4.lo exponent_r8.lo ...@@ -101,7 +101,10 @@ am__objects_26 = exponent_r4.lo exponent_r8.lo
am__objects_27 = fraction_r4.lo fraction_r8.lo am__objects_27 = fraction_r4.lo fraction_r8.lo
am__objects_28 = nearest_r4.lo nearest_r8.lo am__objects_28 = nearest_r4.lo nearest_r8.lo
am__objects_29 = set_exponent_r4.lo set_exponent_r8.lo am__objects_29 = set_exponent_r4.lo set_exponent_r8.lo
am__objects_30 = $(am__objects_2) $(am__objects_3) $(am__objects_4) \ am__objects_30 = pow_i4_i4.lo pow_i8_i4.lo pow_r4_i4.lo pow_r8_i4.lo \
pow_c4_i4.lo pow_c8_i4.lo pow_i4_i8.lo pow_i8_i8.lo \
pow_r4_i8.lo pow_r8_i8.lo pow_c4_i8.lo pow_c8_i8.lo
am__objects_31 = $(am__objects_2) $(am__objects_3) $(am__objects_4) \
$(am__objects_5) $(am__objects_6) $(am__objects_7) \ $(am__objects_5) $(am__objects_6) $(am__objects_7) \
$(am__objects_8) $(am__objects_9) $(am__objects_10) \ $(am__objects_8) $(am__objects_9) $(am__objects_10) \
$(am__objects_11) $(am__objects_12) $(am__objects_13) \ $(am__objects_11) $(am__objects_12) $(am__objects_13) \
...@@ -110,18 +113,18 @@ am__objects_30 = $(am__objects_2) $(am__objects_3) $(am__objects_4) \ ...@@ -110,18 +113,18 @@ am__objects_30 = $(am__objects_2) $(am__objects_3) $(am__objects_4) \
$(am__objects_20) $(am__objects_21) $(am__objects_22) \ $(am__objects_20) $(am__objects_21) $(am__objects_22) \
$(am__objects_23) $(am__objects_24) $(am__objects_25) \ $(am__objects_23) $(am__objects_24) $(am__objects_25) \
$(am__objects_26) $(am__objects_27) $(am__objects_28) \ $(am__objects_26) $(am__objects_27) $(am__objects_28) \
$(am__objects_29) $(am__objects_29) $(am__objects_30)
am__objects_31 = backspace.lo close.lo endfile.lo format.lo inquire.lo \ am__objects_32 = backspace.lo close.lo endfile.lo format.lo inquire.lo \
list_read.lo lock.lo open.lo read.lo rewind.lo transfer.lo \ list_read.lo lock.lo open.lo read.lo rewind.lo transfer.lo \
unit.lo unix.lo write.lo unit.lo unix.lo write.lo
am__objects_32 = associated.lo abort.lo cpu_time.lo cshift0.lo \ am__objects_33 = associated.lo abort.lo cpu_time.lo cshift0.lo \
eoshift0.lo eoshift2.lo ishftc.lo pack_generic.lo size.lo \ eoshift0.lo eoshift2.lo ishftc.lo pack_generic.lo size.lo \
spread_generic.lo string_intrinsics.lo random.lo \ spread_generic.lo string_intrinsics.lo random.lo \
reshape_generic.lo reshape_packed.lo selected_kind.lo \ reshape_generic.lo reshape_packed.lo selected_kind.lo \
transpose_generic.lo unpack_generic.lo in_pack_generic.lo \ transpose_generic.lo unpack_generic.lo in_pack_generic.lo \
in_unpack_generic.lo in_unpack_generic.lo
am__objects_33 = am__objects_34 =
am__objects_34 = _abs_c4.lo _abs_c8.lo _abs_i4.lo _abs_i8.lo \ am__objects_35 = _abs_c4.lo _abs_c8.lo _abs_i4.lo _abs_i8.lo \
_abs_r4.lo _abs_r8.lo _exp_r4.lo _exp_r8.lo _exp_c4.lo \ _abs_r4.lo _abs_r8.lo _exp_r4.lo _exp_r8.lo _exp_c4.lo \
_exp_c8.lo _log_r4.lo _log_r8.lo _log_c4.lo _log_c8.lo \ _exp_c8.lo _log_r4.lo _log_r8.lo _log_c4.lo _log_c8.lo \
_log10_r4.lo _log10_r8.lo _sqrt_r4.lo _sqrt_r8.lo _sqrt_c4.lo \ _log10_r4.lo _log10_r8.lo _sqrt_r4.lo _sqrt_r8.lo _sqrt_c4.lo \
...@@ -131,13 +134,13 @@ am__objects_34 = _abs_c4.lo _abs_c8.lo _abs_i4.lo _abs_i8.lo \ ...@@ -131,13 +134,13 @@ am__objects_34 = _abs_c4.lo _abs_c8.lo _abs_i4.lo _abs_i8.lo \
_tan_r4.lo _tan_r8.lo _sinh_r4.lo _sinh_r8.lo _cosh_r4.lo \ _tan_r4.lo _tan_r8.lo _sinh_r4.lo _sinh_r8.lo _cosh_r4.lo \
_cosh_r8.lo _tanh_r4.lo _tanh_r8.lo _conjg_c4.lo _conjg_c8.lo \ _cosh_r8.lo _tanh_r4.lo _tanh_r8.lo _conjg_c4.lo _conjg_c8.lo \
_aint_r4.lo _aint_r8.lo _anint_r4.lo _anint_r8.lo _aint_r4.lo _aint_r8.lo _anint_r4.lo _anint_r8.lo
am__objects_35 = _sign_i4.lo _sign_i8.lo _sign_r4.lo _sign_r8.lo \ am__objects_36 = _sign_i4.lo _sign_i8.lo _sign_r4.lo _sign_r8.lo \
_dim_i4.lo _dim_i8.lo _dim_r4.lo _dim_r8.lo _atan2_r4.lo \ _dim_i4.lo _dim_i8.lo _dim_r4.lo _dim_r8.lo _atan2_r4.lo \
_atan2_r8.lo _mod_i4.lo _mod_i8.lo _mod_r4.lo _mod_r8.lo _atan2_r8.lo _mod_i4.lo _mod_i8.lo _mod_r4.lo _mod_r8.lo
am__objects_36 = $(am__objects_34) $(am__objects_35) dprod_r8.lo am__objects_37 = $(am__objects_35) $(am__objects_36) dprod_r8.lo
am_libgfortran_la_OBJECTS = $(am__objects_1) $(am__objects_30) \ am_libgfortran_la_OBJECTS = $(am__objects_1) $(am__objects_31) \
$(am__objects_31) $(am__objects_32) $(am__objects_33) \ $(am__objects_32) $(am__objects_33) $(am__objects_34) \
$(am__objects_36) $(am__objects_37)
libgfortran_la_OBJECTS = $(am_libgfortran_la_OBJECTS) libgfortran_la_OBJECTS = $(am_libgfortran_la_OBJECTS)
libgfortranbegin_la_LIBADD = libgfortranbegin_la_LIBADD =
am_libgfortranbegin_la_OBJECTS = fmain.lo am_libgfortranbegin_la_OBJECTS = fmain.lo
...@@ -235,6 +238,18 @@ am__depfiles_maybe = depfiles ...@@ -235,6 +238,18 @@ am__depfiles_maybe = depfiles
@AMDEP_TRUE@ ./$(DEPDIR)/nearest_r4.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/nearest_r4.Plo \
@AMDEP_TRUE@ ./$(DEPDIR)/nearest_r8.Plo ./$(DEPDIR)/open.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/nearest_r8.Plo ./$(DEPDIR)/open.Plo \
@AMDEP_TRUE@ ./$(DEPDIR)/pack_generic.Plo ./$(DEPDIR)/pause.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/pack_generic.Plo ./$(DEPDIR)/pause.Plo \
@AMDEP_TRUE@ ./$(DEPDIR)/pow_c4_i4.Plo \
@AMDEP_TRUE@ ./$(DEPDIR)/pow_c4_i8.Plo \
@AMDEP_TRUE@ ./$(DEPDIR)/pow_c8_i4.Plo \
@AMDEP_TRUE@ ./$(DEPDIR)/pow_c8_i8.Plo \
@AMDEP_TRUE@ ./$(DEPDIR)/pow_i4_i4.Plo \
@AMDEP_TRUE@ ./$(DEPDIR)/pow_i4_i8.Plo \
@AMDEP_TRUE@ ./$(DEPDIR)/pow_i8_i4.Plo \
@AMDEP_TRUE@ ./$(DEPDIR)/pow_i8_i8.Plo \
@AMDEP_TRUE@ ./$(DEPDIR)/pow_r4_i4.Plo \
@AMDEP_TRUE@ ./$(DEPDIR)/pow_r4_i8.Plo \
@AMDEP_TRUE@ ./$(DEPDIR)/pow_r8_i4.Plo \
@AMDEP_TRUE@ ./$(DEPDIR)/pow_r8_i8.Plo \
@AMDEP_TRUE@ ./$(DEPDIR)/product_c4.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/product_c4.Plo \
@AMDEP_TRUE@ ./$(DEPDIR)/product_c8.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/product_c8.Plo \
@AMDEP_TRUE@ ./$(DEPDIR)/product_i4.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/product_i4.Plo \
...@@ -600,6 +615,20 @@ i_set_exponent_c = \ ...@@ -600,6 +615,20 @@ i_set_exponent_c = \
generated/set_exponent_r4.c \ generated/set_exponent_r4.c \
generated/set_exponent_r8.c generated/set_exponent_r8.c
i_pow_c = \
generated/pow_i4_i4.c \
generated/pow_i8_i4.c \
generated/pow_r4_i4.c \
generated/pow_r8_i4.c \
generated/pow_c4_i4.c \
generated/pow_c8_i4.c \
generated/pow_i4_i8.c \
generated/pow_i8_i8.c \
generated/pow_r4_i8.c \
generated/pow_r8_i8.c \
generated/pow_c4_i8.c \
generated/pow_c8_i8.c
m4_files = m4/iparm.m4 m4/ifunction.m4 m4/iforeach.m4 m4/all.m4 \ m4_files = m4/iparm.m4 m4/ifunction.m4 m4/iforeach.m4 m4/all.m4 \
m4/any.m4 m4/count.m4 m4/maxloc0.m4 m4/maxloc1.m4 m4/maxval.m4 \ m4/any.m4 m4/count.m4 m4/maxloc0.m4 m4/maxloc1.m4 m4/maxval.m4 \
m4/minloc0.m4 m4/minloc1.m4 m4/minval.m4 m4/product.m4 m4/sum.m4 \ m4/minloc0.m4 m4/minloc1.m4 m4/minval.m4 m4/product.m4 m4/sum.m4 \
...@@ -607,14 +636,15 @@ m4_files = m4/iparm.m4 m4/ifunction.m4 m4/iforeach.m4 m4/all.m4 \ ...@@ -607,14 +636,15 @@ m4_files = m4/iparm.m4 m4/ifunction.m4 m4/iforeach.m4 m4/all.m4 \
m4/ctrig.m4 m4/cexp.m4 m4/chyp.m4 m4/mtype.m4 \ m4/ctrig.m4 m4/cexp.m4 m4/chyp.m4 m4/mtype.m4 \
m4/specific.m4 m4/specific2.m4 m4/head.m4 m4/shape.m4 m4/reshape.m4 \ m4/specific.m4 m4/specific2.m4 m4/head.m4 m4/shape.m4 m4/reshape.m4 \
m4/transpose.m4 m4/eoshift1.m4 m4/eoshift3.m4 m4/exponent.m4 \ m4/transpose.m4 m4/eoshift1.m4 m4/eoshift3.m4 m4/exponent.m4 \
m4/fraction.m4 m4/nearest.m4 m4/set_exponent.m4 m4/fraction.m4 m4/nearest.m4 m4/set_exponent.m4 m4/pow.m4
gfor_built_src = $(i_all_c) $(i_any_c) $(i_count_c) $(i_maxloc0_c) \ gfor_built_src = $(i_all_c) $(i_any_c) $(i_count_c) $(i_maxloc0_c) \
$(i_maxloc1_c) $(i_maxval_c) $(i_minloc0_c) $(i_minloc1_c) $(i_minval_c) \ $(i_maxloc1_c) $(i_maxval_c) $(i_minloc0_c) $(i_minloc1_c) $(i_minval_c) \
$(i_product_c) $(i_sum_c) $(i_dotprod_c) $(i_dotprodl_c) $(i_dotprodc_c) \ $(i_product_c) $(i_sum_c) $(i_dotprod_c) $(i_dotprodl_c) $(i_dotprodc_c) \
$(i_matmul_c) $(i_matmull_c) $(i_transpose_c) $(i_shape_c) $(i_eoshift1_c) \ $(i_matmul_c) $(i_matmull_c) $(i_transpose_c) $(i_shape_c) $(i_eoshift1_c) \
$(i_eoshift3_c) $(i_cshift1_c) $(i_reshape_c) $(in_pack_c) $(in_unpack_c) \ $(i_eoshift3_c) $(i_cshift1_c) $(i_reshape_c) $(in_pack_c) $(in_unpack_c) \
$(i_exponent_c) $(i_fraction_c) $(i_nearest_c) $(i_set_exponent_c) $(i_exponent_c) $(i_fraction_c) $(i_nearest_c) $(i_set_exponent_c) \
$(i_pow_c)
# We only use these if libm doesn't contain complex math functions. # We only use these if libm doesn't contain complex math functions.
...@@ -938,6 +968,18 @@ distclean-compile: ...@@ -938,6 +968,18 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pack_generic.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pack_generic.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pause.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pause.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pow_c4_i4.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pow_c4_i8.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pow_c8_i4.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pow_c8_i8.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pow_i4_i4.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pow_i4_i8.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pow_i8_i4.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pow_i8_i8.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pow_r4_i4.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pow_r4_i8.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pow_r8_i4.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pow_r8_i8.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/product_c4.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/product_c4.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/product_c8.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/product_c8.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/product_i4.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/product_i4.Plo@am__quote@
...@@ -3594,6 +3636,294 @@ set_exponent_r8.lo: generated/set_exponent_r8.c ...@@ -3594,6 +3636,294 @@ set_exponent_r8.lo: generated/set_exponent_r8.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o set_exponent_r8.lo `test -f 'generated/set_exponent_r8.c' || echo '$(srcdir)/'`generated/set_exponent_r8.c @am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o set_exponent_r8.lo `test -f 'generated/set_exponent_r8.c' || echo '$(srcdir)/'`generated/set_exponent_r8.c
pow_i4_i4.o: generated/pow_i4_i4.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pow_i4_i4.o -MD -MP -MF "$(DEPDIR)/pow_i4_i4.Tpo" -c -o pow_i4_i4.o `test -f 'generated/pow_i4_i4.c' || echo '$(srcdir)/'`generated/pow_i4_i4.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pow_i4_i4.Tpo" "$(DEPDIR)/pow_i4_i4.Po"; else rm -f "$(DEPDIR)/pow_i4_i4.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generated/pow_i4_i4.c' object='pow_i4_i4.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/pow_i4_i4.Po' tmpdepfile='$(DEPDIR)/pow_i4_i4.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pow_i4_i4.o `test -f 'generated/pow_i4_i4.c' || echo '$(srcdir)/'`generated/pow_i4_i4.c
pow_i4_i4.obj: generated/pow_i4_i4.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pow_i4_i4.obj -MD -MP -MF "$(DEPDIR)/pow_i4_i4.Tpo" -c -o pow_i4_i4.obj `if test -f 'generated/pow_i4_i4.c'; then $(CYGPATH_W) 'generated/pow_i4_i4.c'; else $(CYGPATH_W) '$(srcdir)/generated/pow_i4_i4.c'; fi`; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pow_i4_i4.Tpo" "$(DEPDIR)/pow_i4_i4.Po"; else rm -f "$(DEPDIR)/pow_i4_i4.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generated/pow_i4_i4.c' object='pow_i4_i4.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/pow_i4_i4.Po' tmpdepfile='$(DEPDIR)/pow_i4_i4.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pow_i4_i4.obj `if test -f 'generated/pow_i4_i4.c'; then $(CYGPATH_W) 'generated/pow_i4_i4.c'; else $(CYGPATH_W) '$(srcdir)/generated/pow_i4_i4.c'; fi`
pow_i4_i4.lo: generated/pow_i4_i4.c
@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pow_i4_i4.lo -MD -MP -MF "$(DEPDIR)/pow_i4_i4.Tpo" -c -o pow_i4_i4.lo `test -f 'generated/pow_i4_i4.c' || echo '$(srcdir)/'`generated/pow_i4_i4.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pow_i4_i4.Tpo" "$(DEPDIR)/pow_i4_i4.Plo"; else rm -f "$(DEPDIR)/pow_i4_i4.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generated/pow_i4_i4.c' object='pow_i4_i4.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/pow_i4_i4.Plo' tmpdepfile='$(DEPDIR)/pow_i4_i4.TPlo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pow_i4_i4.lo `test -f 'generated/pow_i4_i4.c' || echo '$(srcdir)/'`generated/pow_i4_i4.c
pow_i8_i4.o: generated/pow_i8_i4.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pow_i8_i4.o -MD -MP -MF "$(DEPDIR)/pow_i8_i4.Tpo" -c -o pow_i8_i4.o `test -f 'generated/pow_i8_i4.c' || echo '$(srcdir)/'`generated/pow_i8_i4.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pow_i8_i4.Tpo" "$(DEPDIR)/pow_i8_i4.Po"; else rm -f "$(DEPDIR)/pow_i8_i4.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generated/pow_i8_i4.c' object='pow_i8_i4.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/pow_i8_i4.Po' tmpdepfile='$(DEPDIR)/pow_i8_i4.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pow_i8_i4.o `test -f 'generated/pow_i8_i4.c' || echo '$(srcdir)/'`generated/pow_i8_i4.c
pow_i8_i4.obj: generated/pow_i8_i4.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pow_i8_i4.obj -MD -MP -MF "$(DEPDIR)/pow_i8_i4.Tpo" -c -o pow_i8_i4.obj `if test -f 'generated/pow_i8_i4.c'; then $(CYGPATH_W) 'generated/pow_i8_i4.c'; else $(CYGPATH_W) '$(srcdir)/generated/pow_i8_i4.c'; fi`; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pow_i8_i4.Tpo" "$(DEPDIR)/pow_i8_i4.Po"; else rm -f "$(DEPDIR)/pow_i8_i4.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generated/pow_i8_i4.c' object='pow_i8_i4.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/pow_i8_i4.Po' tmpdepfile='$(DEPDIR)/pow_i8_i4.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pow_i8_i4.obj `if test -f 'generated/pow_i8_i4.c'; then $(CYGPATH_W) 'generated/pow_i8_i4.c'; else $(CYGPATH_W) '$(srcdir)/generated/pow_i8_i4.c'; fi`
pow_i8_i4.lo: generated/pow_i8_i4.c
@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pow_i8_i4.lo -MD -MP -MF "$(DEPDIR)/pow_i8_i4.Tpo" -c -o pow_i8_i4.lo `test -f 'generated/pow_i8_i4.c' || echo '$(srcdir)/'`generated/pow_i8_i4.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pow_i8_i4.Tpo" "$(DEPDIR)/pow_i8_i4.Plo"; else rm -f "$(DEPDIR)/pow_i8_i4.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generated/pow_i8_i4.c' object='pow_i8_i4.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/pow_i8_i4.Plo' tmpdepfile='$(DEPDIR)/pow_i8_i4.TPlo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pow_i8_i4.lo `test -f 'generated/pow_i8_i4.c' || echo '$(srcdir)/'`generated/pow_i8_i4.c
pow_r4_i4.o: generated/pow_r4_i4.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pow_r4_i4.o -MD -MP -MF "$(DEPDIR)/pow_r4_i4.Tpo" -c -o pow_r4_i4.o `test -f 'generated/pow_r4_i4.c' || echo '$(srcdir)/'`generated/pow_r4_i4.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pow_r4_i4.Tpo" "$(DEPDIR)/pow_r4_i4.Po"; else rm -f "$(DEPDIR)/pow_r4_i4.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generated/pow_r4_i4.c' object='pow_r4_i4.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/pow_r4_i4.Po' tmpdepfile='$(DEPDIR)/pow_r4_i4.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pow_r4_i4.o `test -f 'generated/pow_r4_i4.c' || echo '$(srcdir)/'`generated/pow_r4_i4.c
pow_r4_i4.obj: generated/pow_r4_i4.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pow_r4_i4.obj -MD -MP -MF "$(DEPDIR)/pow_r4_i4.Tpo" -c -o pow_r4_i4.obj `if test -f 'generated/pow_r4_i4.c'; then $(CYGPATH_W) 'generated/pow_r4_i4.c'; else $(CYGPATH_W) '$(srcdir)/generated/pow_r4_i4.c'; fi`; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pow_r4_i4.Tpo" "$(DEPDIR)/pow_r4_i4.Po"; else rm -f "$(DEPDIR)/pow_r4_i4.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generated/pow_r4_i4.c' object='pow_r4_i4.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/pow_r4_i4.Po' tmpdepfile='$(DEPDIR)/pow_r4_i4.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pow_r4_i4.obj `if test -f 'generated/pow_r4_i4.c'; then $(CYGPATH_W) 'generated/pow_r4_i4.c'; else $(CYGPATH_W) '$(srcdir)/generated/pow_r4_i4.c'; fi`
pow_r4_i4.lo: generated/pow_r4_i4.c
@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pow_r4_i4.lo -MD -MP -MF "$(DEPDIR)/pow_r4_i4.Tpo" -c -o pow_r4_i4.lo `test -f 'generated/pow_r4_i4.c' || echo '$(srcdir)/'`generated/pow_r4_i4.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pow_r4_i4.Tpo" "$(DEPDIR)/pow_r4_i4.Plo"; else rm -f "$(DEPDIR)/pow_r4_i4.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generated/pow_r4_i4.c' object='pow_r4_i4.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/pow_r4_i4.Plo' tmpdepfile='$(DEPDIR)/pow_r4_i4.TPlo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pow_r4_i4.lo `test -f 'generated/pow_r4_i4.c' || echo '$(srcdir)/'`generated/pow_r4_i4.c
pow_r8_i4.o: generated/pow_r8_i4.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pow_r8_i4.o -MD -MP -MF "$(DEPDIR)/pow_r8_i4.Tpo" -c -o pow_r8_i4.o `test -f 'generated/pow_r8_i4.c' || echo '$(srcdir)/'`generated/pow_r8_i4.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pow_r8_i4.Tpo" "$(DEPDIR)/pow_r8_i4.Po"; else rm -f "$(DEPDIR)/pow_r8_i4.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generated/pow_r8_i4.c' object='pow_r8_i4.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/pow_r8_i4.Po' tmpdepfile='$(DEPDIR)/pow_r8_i4.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pow_r8_i4.o `test -f 'generated/pow_r8_i4.c' || echo '$(srcdir)/'`generated/pow_r8_i4.c
pow_r8_i4.obj: generated/pow_r8_i4.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pow_r8_i4.obj -MD -MP -MF "$(DEPDIR)/pow_r8_i4.Tpo" -c -o pow_r8_i4.obj `if test -f 'generated/pow_r8_i4.c'; then $(CYGPATH_W) 'generated/pow_r8_i4.c'; else $(CYGPATH_W) '$(srcdir)/generated/pow_r8_i4.c'; fi`; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pow_r8_i4.Tpo" "$(DEPDIR)/pow_r8_i4.Po"; else rm -f "$(DEPDIR)/pow_r8_i4.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generated/pow_r8_i4.c' object='pow_r8_i4.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/pow_r8_i4.Po' tmpdepfile='$(DEPDIR)/pow_r8_i4.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pow_r8_i4.obj `if test -f 'generated/pow_r8_i4.c'; then $(CYGPATH_W) 'generated/pow_r8_i4.c'; else $(CYGPATH_W) '$(srcdir)/generated/pow_r8_i4.c'; fi`
pow_r8_i4.lo: generated/pow_r8_i4.c
@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pow_r8_i4.lo -MD -MP -MF "$(DEPDIR)/pow_r8_i4.Tpo" -c -o pow_r8_i4.lo `test -f 'generated/pow_r8_i4.c' || echo '$(srcdir)/'`generated/pow_r8_i4.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pow_r8_i4.Tpo" "$(DEPDIR)/pow_r8_i4.Plo"; else rm -f "$(DEPDIR)/pow_r8_i4.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generated/pow_r8_i4.c' object='pow_r8_i4.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/pow_r8_i4.Plo' tmpdepfile='$(DEPDIR)/pow_r8_i4.TPlo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pow_r8_i4.lo `test -f 'generated/pow_r8_i4.c' || echo '$(srcdir)/'`generated/pow_r8_i4.c
pow_c4_i4.o: generated/pow_c4_i4.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pow_c4_i4.o -MD -MP -MF "$(DEPDIR)/pow_c4_i4.Tpo" -c -o pow_c4_i4.o `test -f 'generated/pow_c4_i4.c' || echo '$(srcdir)/'`generated/pow_c4_i4.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pow_c4_i4.Tpo" "$(DEPDIR)/pow_c4_i4.Po"; else rm -f "$(DEPDIR)/pow_c4_i4.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generated/pow_c4_i4.c' object='pow_c4_i4.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/pow_c4_i4.Po' tmpdepfile='$(DEPDIR)/pow_c4_i4.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pow_c4_i4.o `test -f 'generated/pow_c4_i4.c' || echo '$(srcdir)/'`generated/pow_c4_i4.c
pow_c4_i4.obj: generated/pow_c4_i4.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pow_c4_i4.obj -MD -MP -MF "$(DEPDIR)/pow_c4_i4.Tpo" -c -o pow_c4_i4.obj `if test -f 'generated/pow_c4_i4.c'; then $(CYGPATH_W) 'generated/pow_c4_i4.c'; else $(CYGPATH_W) '$(srcdir)/generated/pow_c4_i4.c'; fi`; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pow_c4_i4.Tpo" "$(DEPDIR)/pow_c4_i4.Po"; else rm -f "$(DEPDIR)/pow_c4_i4.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generated/pow_c4_i4.c' object='pow_c4_i4.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/pow_c4_i4.Po' tmpdepfile='$(DEPDIR)/pow_c4_i4.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pow_c4_i4.obj `if test -f 'generated/pow_c4_i4.c'; then $(CYGPATH_W) 'generated/pow_c4_i4.c'; else $(CYGPATH_W) '$(srcdir)/generated/pow_c4_i4.c'; fi`
pow_c4_i4.lo: generated/pow_c4_i4.c
@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pow_c4_i4.lo -MD -MP -MF "$(DEPDIR)/pow_c4_i4.Tpo" -c -o pow_c4_i4.lo `test -f 'generated/pow_c4_i4.c' || echo '$(srcdir)/'`generated/pow_c4_i4.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pow_c4_i4.Tpo" "$(DEPDIR)/pow_c4_i4.Plo"; else rm -f "$(DEPDIR)/pow_c4_i4.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generated/pow_c4_i4.c' object='pow_c4_i4.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/pow_c4_i4.Plo' tmpdepfile='$(DEPDIR)/pow_c4_i4.TPlo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pow_c4_i4.lo `test -f 'generated/pow_c4_i4.c' || echo '$(srcdir)/'`generated/pow_c4_i4.c
pow_c8_i4.o: generated/pow_c8_i4.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pow_c8_i4.o -MD -MP -MF "$(DEPDIR)/pow_c8_i4.Tpo" -c -o pow_c8_i4.o `test -f 'generated/pow_c8_i4.c' || echo '$(srcdir)/'`generated/pow_c8_i4.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pow_c8_i4.Tpo" "$(DEPDIR)/pow_c8_i4.Po"; else rm -f "$(DEPDIR)/pow_c8_i4.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generated/pow_c8_i4.c' object='pow_c8_i4.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/pow_c8_i4.Po' tmpdepfile='$(DEPDIR)/pow_c8_i4.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pow_c8_i4.o `test -f 'generated/pow_c8_i4.c' || echo '$(srcdir)/'`generated/pow_c8_i4.c
pow_c8_i4.obj: generated/pow_c8_i4.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pow_c8_i4.obj -MD -MP -MF "$(DEPDIR)/pow_c8_i4.Tpo" -c -o pow_c8_i4.obj `if test -f 'generated/pow_c8_i4.c'; then $(CYGPATH_W) 'generated/pow_c8_i4.c'; else $(CYGPATH_W) '$(srcdir)/generated/pow_c8_i4.c'; fi`; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pow_c8_i4.Tpo" "$(DEPDIR)/pow_c8_i4.Po"; else rm -f "$(DEPDIR)/pow_c8_i4.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generated/pow_c8_i4.c' object='pow_c8_i4.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/pow_c8_i4.Po' tmpdepfile='$(DEPDIR)/pow_c8_i4.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pow_c8_i4.obj `if test -f 'generated/pow_c8_i4.c'; then $(CYGPATH_W) 'generated/pow_c8_i4.c'; else $(CYGPATH_W) '$(srcdir)/generated/pow_c8_i4.c'; fi`
pow_c8_i4.lo: generated/pow_c8_i4.c
@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pow_c8_i4.lo -MD -MP -MF "$(DEPDIR)/pow_c8_i4.Tpo" -c -o pow_c8_i4.lo `test -f 'generated/pow_c8_i4.c' || echo '$(srcdir)/'`generated/pow_c8_i4.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pow_c8_i4.Tpo" "$(DEPDIR)/pow_c8_i4.Plo"; else rm -f "$(DEPDIR)/pow_c8_i4.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generated/pow_c8_i4.c' object='pow_c8_i4.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/pow_c8_i4.Plo' tmpdepfile='$(DEPDIR)/pow_c8_i4.TPlo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pow_c8_i4.lo `test -f 'generated/pow_c8_i4.c' || echo '$(srcdir)/'`generated/pow_c8_i4.c
pow_i4_i8.o: generated/pow_i4_i8.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pow_i4_i8.o -MD -MP -MF "$(DEPDIR)/pow_i4_i8.Tpo" -c -o pow_i4_i8.o `test -f 'generated/pow_i4_i8.c' || echo '$(srcdir)/'`generated/pow_i4_i8.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pow_i4_i8.Tpo" "$(DEPDIR)/pow_i4_i8.Po"; else rm -f "$(DEPDIR)/pow_i4_i8.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generated/pow_i4_i8.c' object='pow_i4_i8.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/pow_i4_i8.Po' tmpdepfile='$(DEPDIR)/pow_i4_i8.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pow_i4_i8.o `test -f 'generated/pow_i4_i8.c' || echo '$(srcdir)/'`generated/pow_i4_i8.c
pow_i4_i8.obj: generated/pow_i4_i8.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pow_i4_i8.obj -MD -MP -MF "$(DEPDIR)/pow_i4_i8.Tpo" -c -o pow_i4_i8.obj `if test -f 'generated/pow_i4_i8.c'; then $(CYGPATH_W) 'generated/pow_i4_i8.c'; else $(CYGPATH_W) '$(srcdir)/generated/pow_i4_i8.c'; fi`; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pow_i4_i8.Tpo" "$(DEPDIR)/pow_i4_i8.Po"; else rm -f "$(DEPDIR)/pow_i4_i8.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generated/pow_i4_i8.c' object='pow_i4_i8.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/pow_i4_i8.Po' tmpdepfile='$(DEPDIR)/pow_i4_i8.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pow_i4_i8.obj `if test -f 'generated/pow_i4_i8.c'; then $(CYGPATH_W) 'generated/pow_i4_i8.c'; else $(CYGPATH_W) '$(srcdir)/generated/pow_i4_i8.c'; fi`
pow_i4_i8.lo: generated/pow_i4_i8.c
@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pow_i4_i8.lo -MD -MP -MF "$(DEPDIR)/pow_i4_i8.Tpo" -c -o pow_i4_i8.lo `test -f 'generated/pow_i4_i8.c' || echo '$(srcdir)/'`generated/pow_i4_i8.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pow_i4_i8.Tpo" "$(DEPDIR)/pow_i4_i8.Plo"; else rm -f "$(DEPDIR)/pow_i4_i8.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generated/pow_i4_i8.c' object='pow_i4_i8.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/pow_i4_i8.Plo' tmpdepfile='$(DEPDIR)/pow_i4_i8.TPlo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pow_i4_i8.lo `test -f 'generated/pow_i4_i8.c' || echo '$(srcdir)/'`generated/pow_i4_i8.c
pow_i8_i8.o: generated/pow_i8_i8.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pow_i8_i8.o -MD -MP -MF "$(DEPDIR)/pow_i8_i8.Tpo" -c -o pow_i8_i8.o `test -f 'generated/pow_i8_i8.c' || echo '$(srcdir)/'`generated/pow_i8_i8.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pow_i8_i8.Tpo" "$(DEPDIR)/pow_i8_i8.Po"; else rm -f "$(DEPDIR)/pow_i8_i8.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generated/pow_i8_i8.c' object='pow_i8_i8.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/pow_i8_i8.Po' tmpdepfile='$(DEPDIR)/pow_i8_i8.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pow_i8_i8.o `test -f 'generated/pow_i8_i8.c' || echo '$(srcdir)/'`generated/pow_i8_i8.c
pow_i8_i8.obj: generated/pow_i8_i8.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pow_i8_i8.obj -MD -MP -MF "$(DEPDIR)/pow_i8_i8.Tpo" -c -o pow_i8_i8.obj `if test -f 'generated/pow_i8_i8.c'; then $(CYGPATH_W) 'generated/pow_i8_i8.c'; else $(CYGPATH_W) '$(srcdir)/generated/pow_i8_i8.c'; fi`; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pow_i8_i8.Tpo" "$(DEPDIR)/pow_i8_i8.Po"; else rm -f "$(DEPDIR)/pow_i8_i8.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generated/pow_i8_i8.c' object='pow_i8_i8.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/pow_i8_i8.Po' tmpdepfile='$(DEPDIR)/pow_i8_i8.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pow_i8_i8.obj `if test -f 'generated/pow_i8_i8.c'; then $(CYGPATH_W) 'generated/pow_i8_i8.c'; else $(CYGPATH_W) '$(srcdir)/generated/pow_i8_i8.c'; fi`
pow_i8_i8.lo: generated/pow_i8_i8.c
@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pow_i8_i8.lo -MD -MP -MF "$(DEPDIR)/pow_i8_i8.Tpo" -c -o pow_i8_i8.lo `test -f 'generated/pow_i8_i8.c' || echo '$(srcdir)/'`generated/pow_i8_i8.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pow_i8_i8.Tpo" "$(DEPDIR)/pow_i8_i8.Plo"; else rm -f "$(DEPDIR)/pow_i8_i8.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generated/pow_i8_i8.c' object='pow_i8_i8.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/pow_i8_i8.Plo' tmpdepfile='$(DEPDIR)/pow_i8_i8.TPlo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pow_i8_i8.lo `test -f 'generated/pow_i8_i8.c' || echo '$(srcdir)/'`generated/pow_i8_i8.c
pow_r4_i8.o: generated/pow_r4_i8.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pow_r4_i8.o -MD -MP -MF "$(DEPDIR)/pow_r4_i8.Tpo" -c -o pow_r4_i8.o `test -f 'generated/pow_r4_i8.c' || echo '$(srcdir)/'`generated/pow_r4_i8.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pow_r4_i8.Tpo" "$(DEPDIR)/pow_r4_i8.Po"; else rm -f "$(DEPDIR)/pow_r4_i8.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generated/pow_r4_i8.c' object='pow_r4_i8.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/pow_r4_i8.Po' tmpdepfile='$(DEPDIR)/pow_r4_i8.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pow_r4_i8.o `test -f 'generated/pow_r4_i8.c' || echo '$(srcdir)/'`generated/pow_r4_i8.c
pow_r4_i8.obj: generated/pow_r4_i8.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pow_r4_i8.obj -MD -MP -MF "$(DEPDIR)/pow_r4_i8.Tpo" -c -o pow_r4_i8.obj `if test -f 'generated/pow_r4_i8.c'; then $(CYGPATH_W) 'generated/pow_r4_i8.c'; else $(CYGPATH_W) '$(srcdir)/generated/pow_r4_i8.c'; fi`; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pow_r4_i8.Tpo" "$(DEPDIR)/pow_r4_i8.Po"; else rm -f "$(DEPDIR)/pow_r4_i8.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generated/pow_r4_i8.c' object='pow_r4_i8.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/pow_r4_i8.Po' tmpdepfile='$(DEPDIR)/pow_r4_i8.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pow_r4_i8.obj `if test -f 'generated/pow_r4_i8.c'; then $(CYGPATH_W) 'generated/pow_r4_i8.c'; else $(CYGPATH_W) '$(srcdir)/generated/pow_r4_i8.c'; fi`
pow_r4_i8.lo: generated/pow_r4_i8.c
@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pow_r4_i8.lo -MD -MP -MF "$(DEPDIR)/pow_r4_i8.Tpo" -c -o pow_r4_i8.lo `test -f 'generated/pow_r4_i8.c' || echo '$(srcdir)/'`generated/pow_r4_i8.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pow_r4_i8.Tpo" "$(DEPDIR)/pow_r4_i8.Plo"; else rm -f "$(DEPDIR)/pow_r4_i8.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generated/pow_r4_i8.c' object='pow_r4_i8.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/pow_r4_i8.Plo' tmpdepfile='$(DEPDIR)/pow_r4_i8.TPlo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pow_r4_i8.lo `test -f 'generated/pow_r4_i8.c' || echo '$(srcdir)/'`generated/pow_r4_i8.c
pow_r8_i8.o: generated/pow_r8_i8.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pow_r8_i8.o -MD -MP -MF "$(DEPDIR)/pow_r8_i8.Tpo" -c -o pow_r8_i8.o `test -f 'generated/pow_r8_i8.c' || echo '$(srcdir)/'`generated/pow_r8_i8.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pow_r8_i8.Tpo" "$(DEPDIR)/pow_r8_i8.Po"; else rm -f "$(DEPDIR)/pow_r8_i8.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generated/pow_r8_i8.c' object='pow_r8_i8.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/pow_r8_i8.Po' tmpdepfile='$(DEPDIR)/pow_r8_i8.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pow_r8_i8.o `test -f 'generated/pow_r8_i8.c' || echo '$(srcdir)/'`generated/pow_r8_i8.c
pow_r8_i8.obj: generated/pow_r8_i8.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pow_r8_i8.obj -MD -MP -MF "$(DEPDIR)/pow_r8_i8.Tpo" -c -o pow_r8_i8.obj `if test -f 'generated/pow_r8_i8.c'; then $(CYGPATH_W) 'generated/pow_r8_i8.c'; else $(CYGPATH_W) '$(srcdir)/generated/pow_r8_i8.c'; fi`; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pow_r8_i8.Tpo" "$(DEPDIR)/pow_r8_i8.Po"; else rm -f "$(DEPDIR)/pow_r8_i8.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generated/pow_r8_i8.c' object='pow_r8_i8.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/pow_r8_i8.Po' tmpdepfile='$(DEPDIR)/pow_r8_i8.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pow_r8_i8.obj `if test -f 'generated/pow_r8_i8.c'; then $(CYGPATH_W) 'generated/pow_r8_i8.c'; else $(CYGPATH_W) '$(srcdir)/generated/pow_r8_i8.c'; fi`
pow_r8_i8.lo: generated/pow_r8_i8.c
@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pow_r8_i8.lo -MD -MP -MF "$(DEPDIR)/pow_r8_i8.Tpo" -c -o pow_r8_i8.lo `test -f 'generated/pow_r8_i8.c' || echo '$(srcdir)/'`generated/pow_r8_i8.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pow_r8_i8.Tpo" "$(DEPDIR)/pow_r8_i8.Plo"; else rm -f "$(DEPDIR)/pow_r8_i8.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generated/pow_r8_i8.c' object='pow_r8_i8.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/pow_r8_i8.Plo' tmpdepfile='$(DEPDIR)/pow_r8_i8.TPlo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pow_r8_i8.lo `test -f 'generated/pow_r8_i8.c' || echo '$(srcdir)/'`generated/pow_r8_i8.c
pow_c4_i8.o: generated/pow_c4_i8.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pow_c4_i8.o -MD -MP -MF "$(DEPDIR)/pow_c4_i8.Tpo" -c -o pow_c4_i8.o `test -f 'generated/pow_c4_i8.c' || echo '$(srcdir)/'`generated/pow_c4_i8.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pow_c4_i8.Tpo" "$(DEPDIR)/pow_c4_i8.Po"; else rm -f "$(DEPDIR)/pow_c4_i8.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generated/pow_c4_i8.c' object='pow_c4_i8.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/pow_c4_i8.Po' tmpdepfile='$(DEPDIR)/pow_c4_i8.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pow_c4_i8.o `test -f 'generated/pow_c4_i8.c' || echo '$(srcdir)/'`generated/pow_c4_i8.c
pow_c4_i8.obj: generated/pow_c4_i8.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pow_c4_i8.obj -MD -MP -MF "$(DEPDIR)/pow_c4_i8.Tpo" -c -o pow_c4_i8.obj `if test -f 'generated/pow_c4_i8.c'; then $(CYGPATH_W) 'generated/pow_c4_i8.c'; else $(CYGPATH_W) '$(srcdir)/generated/pow_c4_i8.c'; fi`; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pow_c4_i8.Tpo" "$(DEPDIR)/pow_c4_i8.Po"; else rm -f "$(DEPDIR)/pow_c4_i8.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generated/pow_c4_i8.c' object='pow_c4_i8.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/pow_c4_i8.Po' tmpdepfile='$(DEPDIR)/pow_c4_i8.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pow_c4_i8.obj `if test -f 'generated/pow_c4_i8.c'; then $(CYGPATH_W) 'generated/pow_c4_i8.c'; else $(CYGPATH_W) '$(srcdir)/generated/pow_c4_i8.c'; fi`
pow_c4_i8.lo: generated/pow_c4_i8.c
@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pow_c4_i8.lo -MD -MP -MF "$(DEPDIR)/pow_c4_i8.Tpo" -c -o pow_c4_i8.lo `test -f 'generated/pow_c4_i8.c' || echo '$(srcdir)/'`generated/pow_c4_i8.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pow_c4_i8.Tpo" "$(DEPDIR)/pow_c4_i8.Plo"; else rm -f "$(DEPDIR)/pow_c4_i8.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generated/pow_c4_i8.c' object='pow_c4_i8.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/pow_c4_i8.Plo' tmpdepfile='$(DEPDIR)/pow_c4_i8.TPlo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pow_c4_i8.lo `test -f 'generated/pow_c4_i8.c' || echo '$(srcdir)/'`generated/pow_c4_i8.c
pow_c8_i8.o: generated/pow_c8_i8.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pow_c8_i8.o -MD -MP -MF "$(DEPDIR)/pow_c8_i8.Tpo" -c -o pow_c8_i8.o `test -f 'generated/pow_c8_i8.c' || echo '$(srcdir)/'`generated/pow_c8_i8.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pow_c8_i8.Tpo" "$(DEPDIR)/pow_c8_i8.Po"; else rm -f "$(DEPDIR)/pow_c8_i8.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generated/pow_c8_i8.c' object='pow_c8_i8.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/pow_c8_i8.Po' tmpdepfile='$(DEPDIR)/pow_c8_i8.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pow_c8_i8.o `test -f 'generated/pow_c8_i8.c' || echo '$(srcdir)/'`generated/pow_c8_i8.c
pow_c8_i8.obj: generated/pow_c8_i8.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pow_c8_i8.obj -MD -MP -MF "$(DEPDIR)/pow_c8_i8.Tpo" -c -o pow_c8_i8.obj `if test -f 'generated/pow_c8_i8.c'; then $(CYGPATH_W) 'generated/pow_c8_i8.c'; else $(CYGPATH_W) '$(srcdir)/generated/pow_c8_i8.c'; fi`; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pow_c8_i8.Tpo" "$(DEPDIR)/pow_c8_i8.Po"; else rm -f "$(DEPDIR)/pow_c8_i8.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generated/pow_c8_i8.c' object='pow_c8_i8.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/pow_c8_i8.Po' tmpdepfile='$(DEPDIR)/pow_c8_i8.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pow_c8_i8.obj `if test -f 'generated/pow_c8_i8.c'; then $(CYGPATH_W) 'generated/pow_c8_i8.c'; else $(CYGPATH_W) '$(srcdir)/generated/pow_c8_i8.c'; fi`
pow_c8_i8.lo: generated/pow_c8_i8.c
@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pow_c8_i8.lo -MD -MP -MF "$(DEPDIR)/pow_c8_i8.Tpo" -c -o pow_c8_i8.lo `test -f 'generated/pow_c8_i8.c' || echo '$(srcdir)/'`generated/pow_c8_i8.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pow_c8_i8.Tpo" "$(DEPDIR)/pow_c8_i8.Plo"; else rm -f "$(DEPDIR)/pow_c8_i8.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generated/pow_c8_i8.c' object='pow_c8_i8.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/pow_c8_i8.Plo' tmpdepfile='$(DEPDIR)/pow_c8_i8.TPlo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pow_c8_i8.lo `test -f 'generated/pow_c8_i8.c' || echo '$(srcdir)/'`generated/pow_c8_i8.c
backspace.o: io/backspace.c backspace.o: io/backspace.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT backspace.o -MD -MP -MF "$(DEPDIR)/backspace.Tpo" -c -o backspace.o `test -f 'io/backspace.c' || echo '$(srcdir)/'`io/backspace.c; \ @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT backspace.o -MD -MP -MF "$(DEPDIR)/backspace.Tpo" -c -o backspace.o `test -f 'io/backspace.c' || echo '$(srcdir)/'`io/backspace.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/backspace.Tpo" "$(DEPDIR)/backspace.Po"; else rm -f "$(DEPDIR)/backspace.Tpo"; exit 1; fi @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/backspace.Tpo" "$(DEPDIR)/backspace.Po"; else rm -f "$(DEPDIR)/backspace.Tpo"; exit 1; fi
...@@ -5464,6 +5794,9 @@ uninstall-am: uninstall-info-am uninstall-libLTLIBRARIES ...@@ -5464,6 +5794,9 @@ uninstall-am: uninstall-info-am uninstall-libLTLIBRARIES
@MAINTAINER_MODE_TRUE@$(i_set_exponent_c): m4/set_exponent.m4 m4/mtype.m4 @MAINTAINER_MODE_TRUE@$(i_set_exponent_c): m4/set_exponent.m4 m4/mtype.m4
@MAINTAINER_MODE_TRUE@ m4 -Dfile=$@ -I$(srcdir)/m4 set_exponent.m4 > $@ @MAINTAINER_MODE_TRUE@ m4 -Dfile=$@ -I$(srcdir)/m4 set_exponent.m4 > $@
@MAINTAINER_MODE_TRUE@$(i_pow_c): m4/pow.m4 $(I_M4_DEPS)
@MAINTAINER_MODE_TRUE@ m4 -Dfile=$@ -I$(srcdir)/m4 pow.m4 > $@
@MAINTAINER_MODE_TRUE@$(gfor_math_trig_c): m4/ctrig.m4 m4/mtype.m4 @MAINTAINER_MODE_TRUE@$(gfor_math_trig_c): m4/ctrig.m4 m4/mtype.m4
@MAINTAINER_MODE_TRUE@ m4 -Dfile=$@ -I$(srcdir)/m4 ctrig.m4 > $@ @MAINTAINER_MODE_TRUE@ m4 -Dfile=$@ -I$(srcdir)/m4 ctrig.m4 > $@
......
/* Support routines for the intrinsic power (**) operator.
Copyright 2004 Free Software Foundation, Inc.
Contributed by Paul Brook
This file is part of the GNU Fortran 95 runtime library (libgfor).
Libgfor is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
Ligbfor is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with libgfor; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include "config.h"
#include "libgfortran.h"
/* Uuse Binary Method to calculate the powi. This is not an optimal but
a simple and reasonable arithmetic. See section 4.6.3, "Evaluation of
Powers" of Donald E. Knuth, "Seminumerical Algorithms", Vol. 2, "The Art
of Computer Programming", 3rd Edition, 1998. */
GFC_COMPLEX_4
prefix(pow_c4_i4) (GFC_COMPLEX_4 a, GFC_INTEGER_4 b)
{
GFC_COMPLEX_4 pow, x;
GFC_INTEGER_4 n, u;
n = b;
x = a;
pow = 1;
if (n != 0)
{
if (n < 0)
{
n = -n;
x = pow / x;
}
u = n;
for (;;)
{
if (u & 1)
pow *= x;
u >>= 1;
if (u)
x *= x;
else
break;
}
}
return pow;
}
/* Support routines for the intrinsic power (**) operator.
Copyright 2004 Free Software Foundation, Inc.
Contributed by Paul Brook
This file is part of the GNU Fortran 95 runtime library (libgfor).
Libgfor is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
Ligbfor is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with libgfor; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include "config.h"
#include "libgfortran.h"
/* Uuse Binary Method to calculate the powi. This is not an optimal but
a simple and reasonable arithmetic. See section 4.6.3, "Evaluation of
Powers" of Donald E. Knuth, "Seminumerical Algorithms", Vol. 2, "The Art
of Computer Programming", 3rd Edition, 1998. */
GFC_COMPLEX_4
prefix(pow_c4_i8) (GFC_COMPLEX_4 a, GFC_INTEGER_8 b)
{
GFC_COMPLEX_4 pow, x;
GFC_INTEGER_8 n, u;
n = b;
x = a;
pow = 1;
if (n != 0)
{
if (n < 0)
{
n = -n;
x = pow / x;
}
u = n;
for (;;)
{
if (u & 1)
pow *= x;
u >>= 1;
if (u)
x *= x;
else
break;
}
}
return pow;
}
/* Support routines for the intrinsic power (**) operator.
Copyright 2004 Free Software Foundation, Inc.
Contributed by Paul Brook
This file is part of the GNU Fortran 95 runtime library (libgfor).
Libgfor is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
Ligbfor is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with libgfor; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include "config.h"
#include "libgfortran.h"
/* Uuse Binary Method to calculate the powi. This is not an optimal but
a simple and reasonable arithmetic. See section 4.6.3, "Evaluation of
Powers" of Donald E. Knuth, "Seminumerical Algorithms", Vol. 2, "The Art
of Computer Programming", 3rd Edition, 1998. */
GFC_COMPLEX_8
prefix(pow_c8_i4) (GFC_COMPLEX_8 a, GFC_INTEGER_4 b)
{
GFC_COMPLEX_8 pow, x;
GFC_INTEGER_4 n, u;
n = b;
x = a;
pow = 1;
if (n != 0)
{
if (n < 0)
{
n = -n;
x = pow / x;
}
u = n;
for (;;)
{
if (u & 1)
pow *= x;
u >>= 1;
if (u)
x *= x;
else
break;
}
}
return pow;
}
/* Support routines for the intrinsic power (**) operator.
Copyright 2004 Free Software Foundation, Inc.
Contributed by Paul Brook
This file is part of the GNU Fortran 95 runtime library (libgfor).
Libgfor is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
Ligbfor is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with libgfor; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include "config.h"
#include "libgfortran.h"
/* Uuse Binary Method to calculate the powi. This is not an optimal but
a simple and reasonable arithmetic. See section 4.6.3, "Evaluation of
Powers" of Donald E. Knuth, "Seminumerical Algorithms", Vol. 2, "The Art
of Computer Programming", 3rd Edition, 1998. */
GFC_COMPLEX_8
prefix(pow_c8_i8) (GFC_COMPLEX_8 a, GFC_INTEGER_8 b)
{
GFC_COMPLEX_8 pow, x;
GFC_INTEGER_8 n, u;
n = b;
x = a;
pow = 1;
if (n != 0)
{
if (n < 0)
{
n = -n;
x = pow / x;
}
u = n;
for (;;)
{
if (u & 1)
pow *= x;
u >>= 1;
if (u)
x *= x;
else
break;
}
}
return pow;
}
/* Support routines for the intrinsic power (**) operator.
Copyright 2004 Free Software Foundation, Inc.
Contributed by Paul Brook
This file is part of the GNU Fortran 95 runtime library (libgfor).
Libgfor is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
Ligbfor is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with libgfor; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include "config.h"
#include "libgfortran.h"
/* Uuse Binary Method to calculate the powi. This is not an optimal but
a simple and reasonable arithmetic. See section 4.6.3, "Evaluation of
Powers" of Donald E. Knuth, "Seminumerical Algorithms", Vol. 2, "The Art
of Computer Programming", 3rd Edition, 1998. */
GFC_INTEGER_4
prefix(pow_i4_i4) (GFC_INTEGER_4 a, GFC_INTEGER_4 b)
{
GFC_INTEGER_4 pow, x;
GFC_INTEGER_4 n, u;
n = b;
x = a;
pow = 1;
if (n != 0)
{
if (n < 0)
{
if (x == 1)
return 1;
if (x == -1)
return (n & 1) ? -1 : 1;
return (x == 0) ? 1 / x : 0;
}
u = n;
for (;;)
{
if (u & 1)
pow *= x;
u >>= 1;
if (u)
x *= x;
else
break;
}
}
return pow;
}
/* Support routines for the intrinsic power (**) operator.
Copyright 2004 Free Software Foundation, Inc.
Contributed by Paul Brook
This file is part of the GNU Fortran 95 runtime library (libgfor).
Libgfor is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
Ligbfor is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with libgfor; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include "config.h"
#include "libgfortran.h"
/* Uuse Binary Method to calculate the powi. This is not an optimal but
a simple and reasonable arithmetic. See section 4.6.3, "Evaluation of
Powers" of Donald E. Knuth, "Seminumerical Algorithms", Vol. 2, "The Art
of Computer Programming", 3rd Edition, 1998. */
GFC_INTEGER_4
prefix(pow_i4_i8) (GFC_INTEGER_4 a, GFC_INTEGER_8 b)
{
GFC_INTEGER_4 pow, x;
GFC_INTEGER_8 n, u;
n = b;
x = a;
pow = 1;
if (n != 0)
{
if (n < 0)
{
if (x == 1)
return 1;
if (x == -1)
return (n & 1) ? -1 : 1;
return (x == 0) ? 1 / x : 0;
}
u = n;
for (;;)
{
if (u & 1)
pow *= x;
u >>= 1;
if (u)
x *= x;
else
break;
}
}
return pow;
}
/* Support routines for the intrinsic power (**) operator.
Copyright 2004 Free Software Foundation, Inc.
Contributed by Paul Brook
This file is part of the GNU Fortran 95 runtime library (libgfor).
Libgfor is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
Ligbfor is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with libgfor; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include "config.h"
#include "libgfortran.h"
/* Uuse Binary Method to calculate the powi. This is not an optimal but
a simple and reasonable arithmetic. See section 4.6.3, "Evaluation of
Powers" of Donald E. Knuth, "Seminumerical Algorithms", Vol. 2, "The Art
of Computer Programming", 3rd Edition, 1998. */
GFC_INTEGER_8
prefix(pow_i8_i4) (GFC_INTEGER_8 a, GFC_INTEGER_4 b)
{
GFC_INTEGER_8 pow, x;
GFC_INTEGER_4 n, u;
n = b;
x = a;
pow = 1;
if (n != 0)
{
if (n < 0)
{
if (x == 1)
return 1;
if (x == -1)
return (n & 1) ? -1 : 1;
return (x == 0) ? 1 / x : 0;
}
u = n;
for (;;)
{
if (u & 1)
pow *= x;
u >>= 1;
if (u)
x *= x;
else
break;
}
}
return pow;
}
/* Support routines for the intrinsic power (**) operator.
Copyright 2004 Free Software Foundation, Inc.
Contributed by Paul Brook
This file is part of the GNU Fortran 95 runtime library (libgfor).
Libgfor is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
Ligbfor is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with libgfor; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include "config.h"
#include "libgfortran.h"
/* Uuse Binary Method to calculate the powi. This is not an optimal but
a simple and reasonable arithmetic. See section 4.6.3, "Evaluation of
Powers" of Donald E. Knuth, "Seminumerical Algorithms", Vol. 2, "The Art
of Computer Programming", 3rd Edition, 1998. */
GFC_INTEGER_8
prefix(pow_i8_i8) (GFC_INTEGER_8 a, GFC_INTEGER_8 b)
{
GFC_INTEGER_8 pow, x;
GFC_INTEGER_8 n, u;
n = b;
x = a;
pow = 1;
if (n != 0)
{
if (n < 0)
{
if (x == 1)
return 1;
if (x == -1)
return (n & 1) ? -1 : 1;
return (x == 0) ? 1 / x : 0;
}
u = n;
for (;;)
{
if (u & 1)
pow *= x;
u >>= 1;
if (u)
x *= x;
else
break;
}
}
return pow;
}
/* Support routines for the intrinsic power (**) operator.
Copyright 2004 Free Software Foundation, Inc.
Contributed by Paul Brook
This file is part of the GNU Fortran 95 runtime library (libgfor).
Libgfor is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
Ligbfor is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with libgfor; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include "config.h"
#include "libgfortran.h"
/* Uuse Binary Method to calculate the powi. This is not an optimal but
a simple and reasonable arithmetic. See section 4.6.3, "Evaluation of
Powers" of Donald E. Knuth, "Seminumerical Algorithms", Vol. 2, "The Art
of Computer Programming", 3rd Edition, 1998. */
GFC_REAL_4
prefix(pow_r4_i4) (GFC_REAL_4 a, GFC_INTEGER_4 b)
{
GFC_REAL_4 pow, x;
GFC_INTEGER_4 n, u;
n = b;
x = a;
pow = 1;
if (n != 0)
{
if (n < 0)
{
n = -n;
x = pow / x;
}
u = n;
for (;;)
{
if (u & 1)
pow *= x;
u >>= 1;
if (u)
x *= x;
else
break;
}
}
return pow;
}
/* Support routines for the intrinsic power (**) operator.
Copyright 2004 Free Software Foundation, Inc.
Contributed by Paul Brook
This file is part of the GNU Fortran 95 runtime library (libgfor).
Libgfor is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
Ligbfor is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with libgfor; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include "config.h"
#include "libgfortran.h"
/* Uuse Binary Method to calculate the powi. This is not an optimal but
a simple and reasonable arithmetic. See section 4.6.3, "Evaluation of
Powers" of Donald E. Knuth, "Seminumerical Algorithms", Vol. 2, "The Art
of Computer Programming", 3rd Edition, 1998. */
GFC_REAL_4
prefix(pow_r4_i8) (GFC_REAL_4 a, GFC_INTEGER_8 b)
{
GFC_REAL_4 pow, x;
GFC_INTEGER_8 n, u;
n = b;
x = a;
pow = 1;
if (n != 0)
{
if (n < 0)
{
n = -n;
x = pow / x;
}
u = n;
for (;;)
{
if (u & 1)
pow *= x;
u >>= 1;
if (u)
x *= x;
else
break;
}
}
return pow;
}
/* Support routines for the intrinsic power (**) operator.
Copyright 2004 Free Software Foundation, Inc.
Contributed by Paul Brook
This file is part of the GNU Fortran 95 runtime library (libgfor).
Libgfor is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
Ligbfor is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with libgfor; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include "config.h"
#include "libgfortran.h"
/* Uuse Binary Method to calculate the powi. This is not an optimal but
a simple and reasonable arithmetic. See section 4.6.3, "Evaluation of
Powers" of Donald E. Knuth, "Seminumerical Algorithms", Vol. 2, "The Art
of Computer Programming", 3rd Edition, 1998. */
GFC_REAL_8
prefix(pow_r8_i4) (GFC_REAL_8 a, GFC_INTEGER_4 b)
{
GFC_REAL_8 pow, x;
GFC_INTEGER_4 n, u;
n = b;
x = a;
pow = 1;
if (n != 0)
{
if (n < 0)
{
n = -n;
x = pow / x;
}
u = n;
for (;;)
{
if (u & 1)
pow *= x;
u >>= 1;
if (u)
x *= x;
else
break;
}
}
return pow;
}
/* Support routines for the intrinsic power (**) operator.
Copyright 2004 Free Software Foundation, Inc.
Contributed by Paul Brook
This file is part of the GNU Fortran 95 runtime library (libgfor).
Libgfor is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
Ligbfor is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with libgfor; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include "config.h"
#include "libgfortran.h"
/* Uuse Binary Method to calculate the powi. This is not an optimal but
a simple and reasonable arithmetic. See section 4.6.3, "Evaluation of
Powers" of Donald E. Knuth, "Seminumerical Algorithms", Vol. 2, "The Art
of Computer Programming", 3rd Edition, 1998. */
GFC_REAL_8
prefix(pow_r8_i8) (GFC_REAL_8 a, GFC_INTEGER_8 b)
{
GFC_REAL_8 pow, x;
GFC_INTEGER_8 n, u;
n = b;
x = a;
pow = 1;
if (n != 0)
{
if (n < 0)
{
n = -n;
x = pow / x;
}
u = n;
for (;;)
{
if (u & 1)
pow *= x;
u >>= 1;
if (u)
x *= x;
else
break;
}
}
return pow;
}
`/* Support routines for the intrinsic power (**) operator.
Copyright 2004 Free Software Foundation, Inc.
Contributed by Paul Brook
This file is part of the GNU Fortran 95 runtime library (libgfor).
Libgfor is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
Ligbfor is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with libgfor; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include "config.h"
#include "libgfortran.h"'
include(iparm.m4)dnl
/* Uuse Binary Method to calculate the powi. This is not an optimal but
a simple and reasonable arithmetic. See section 4.6.3, "Evaluation of
Powers" of Donald E. Knuth, "Seminumerical Algorithms", Vol. 2, "The Art
of Computer Programming", 3rd Edition, 1998. */
rtype_name
`prefix(pow_'rtype_code`_'atype_code) (rtype_name a, atype_name b)
{
rtype_name pow, x;
atype_name n, u;
n = b;
x = a;
pow = 1;
if (n != 0)
{
if (n < 0)
{
ifelse(rtype_letter,i,`dnl
if (x == 1)
return 1;
if (x == -1)
return (n & 1) ? -1 : 1;
return (x == 0) ? 1 / x : 0;
',`
n = -n;
x = pow / x;
')dnl
}
u = n;
for (;;)
{
if (u & 1)
pow *= x;
u >>= 1;
if (u)
x *= x;
else
break;
}
}
return pow;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment