This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [fortran, patch] Expand powi to optimal multiplications
- From: Paul Brook <paul at codesourcery dot com>
- To: fortran at gcc dot gnu dot org
- Cc: Tobias Schlüter <tobias dot schlueter at physik dot uni-muenchen dot de>,Feng Wang <wf_cs at yahoo dot com>, patch <gcc-patches at gcc dot gnu dot org>
- Date: Wed, 19 May 2004 01:34:38 +0100
- Subject: Re: [fortran, patch] Expand powi to optimal multiplications
- Organization: CodeSourcery
- References: <20040430093333.18513.qmail@web15212.mail.bjs.yahoo.com> <200405060019.58904.paul@codesourcery.com> <40AA3FDA.3080509@physik.uni-muenchen.de>
On Tuesday 18 May 2004 17:54, Tobias Schlüter wrote:
> Paul Brook wrote:
> > I've made some changes to your patch, and will apply it once tree-ssa has
> > been merged.
>
> I'm just going through past e-mails, checking for lost patches. It seems
> that this has never gone in. Are you still waiting for something, Paul?
> In that case a PR might be helpful.
No, just time to update and apply the patch.
Applied as follows.
Paul
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.
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.
Index: gcc/fortran/f95-lang.c
===================================================================
RCS file: /var/cvsroot/gcc-cvs/gcc/gcc/fortran/f95-lang.c,v
retrieving revision 1.4
diff -c -p -r1.4 f95-lang.c
*** a/gcc/fortran/f95-lang.c 14 May 2004 13:00:04 -0000 1.4
--- b/gcc/fortran/f95-lang.c 19 May 2004 00:30:04 -0000
*************** gfc_init_builtin_functions (void)
*** 750,765 ****
tree mfunc_double[2];
tree ftype;
tree tmp;
- tree voidchain;
! voidchain = tree_cons (NULL_TREE, void_type_node, NULL_TREE);
!
! tmp = tree_cons (NULL_TREE, float_type_node, voidchain);
mfunc_float[0] = build_function_type (float_type_node, tmp);
tmp = tree_cons (NULL_TREE, float_type_node, tmp);
mfunc_float[1] = build_function_type (float_type_node, tmp);
! tmp = tree_cons (NULL_TREE, double_type_node, voidchain);
mfunc_double[0] = build_function_type (double_type_node, tmp);
tmp = tree_cons (NULL_TREE, double_type_node, tmp);
mfunc_double[1] = build_function_type (double_type_node, tmp);
--- 750,762 ----
tree mfunc_double[2];
tree ftype;
tree tmp;
! tmp = tree_cons (NULL_TREE, float_type_node, void_list_node);
mfunc_float[0] = build_function_type (float_type_node, tmp);
tmp = tree_cons (NULL_TREE, float_type_node, tmp);
mfunc_float[1] = build_function_type (float_type_node, tmp);
! tmp = tree_cons (NULL_TREE, double_type_node, void_list_node);
mfunc_double[0] = build_function_type (double_type_node, tmp);
tmp = tree_cons (NULL_TREE, double_type_node, tmp);
mfunc_double[1] = build_function_type (double_type_node, tmp);
*************** gfc_init_builtin_functions (void)
*** 777,833 ****
gfc_define_builtin ("__builtin_roundf", mfunc_float[0],
BUILT_IN_ROUNDF, "roundf", true);
/* Other builtin functions we use. */
! tmp = tree_cons (NULL_TREE, long_integer_type_node, voidchain);
tmp = tree_cons (NULL_TREE, long_integer_type_node, tmp);
ftype = build_function_type (long_integer_type_node, tmp);
gfc_define_builtin ("__builtin_expect", ftype, BUILT_IN_EXPECT,
"__builtin_expect", true);
! tmp = tree_cons (NULL_TREE, size_type_node, voidchain);
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);
gfc_define_builtin ("__builtin_memcpy", ftype, BUILT_IN_MEMCPY,
"memcpy", false);
! tmp = tree_cons (NULL_TREE, integer_type_node, voidchain);
ftype = build_function_type (integer_type_node, tmp);
gfc_define_builtin ("__builtin_clz", ftype, BUILT_IN_CLZ, "clz", true);
! tmp = tree_cons (NULL_TREE, long_integer_type_node, voidchain);
ftype = build_function_type (integer_type_node, tmp);
gfc_define_builtin ("__builtin_clzl", ftype, BUILT_IN_CLZL, "clzl", true);
! tmp = tree_cons (NULL_TREE, long_long_integer_type_node, voidchain);
ftype = build_function_type (integer_type_node, tmp);
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, tmp);
tmp = tree_cons (NULL_TREE, pvoid_type_node, tmp);
ftype = build_function_type (void_type_node, tmp);
gfc_define_builtin ("__builtin_init_trampoline", ftype,
BUILT_IN_INIT_TRAMPOLINE, "init_trampoline", false);
! tmp = tree_cons (NULL_TREE, pvoid_type_node, voidchain);
ftype = build_function_type (pvoid_type_node, tmp);
gfc_define_builtin ("__builtin_adjust_trampoline", ftype,
BUILT_IN_ADJUST_TRAMPOLINE, "adjust_trampoline", true);
! tmp = tree_cons (NULL_TREE, pvoid_type_node, voidchain);
! tmp = tree_cons (NULL_TREE, size_type_node, voidchain);
ftype = build_function_type (pvoid_type_node, tmp);
gfc_define_builtin ("__builtin_stack_alloc", ftype, BUILT_IN_STACK_ALLOC,
"stack_alloc", false);
/* The stack_save and stack_restore builtins aren't used directly. They
are inserted during gimplification to implement stack_alloc calls. */
! ftype = build_function_type (pvoid_type_node, voidchain);
gfc_define_builtin ("__builtin_stack_save", ftype, BUILT_IN_STACK_SAVE,
"stack_save", false);
! tmp = tree_cons (NULL_TREE, pvoid_type_node, voidchain);
ftype = build_function_type (void_type_node, tmp);
gfc_define_builtin ("__builtin_stack_restore", ftype, BUILT_IN_STACK_RESTORE,
"stack_restore", false);
--- 774,836 ----
gfc_define_builtin ("__builtin_roundf", mfunc_float[0],
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. */
! tmp = tree_cons (NULL_TREE, long_integer_type_node, void_list_node);
tmp = tree_cons (NULL_TREE, long_integer_type_node, tmp);
ftype = build_function_type (long_integer_type_node, tmp);
gfc_define_builtin ("__builtin_expect", ftype, BUILT_IN_EXPECT,
"__builtin_expect", true);
! 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);
ftype = build_function_type (pvoid_type_node, tmp);
gfc_define_builtin ("__builtin_memcpy", ftype, BUILT_IN_MEMCPY,
"memcpy", false);
! tmp = tree_cons (NULL_TREE, integer_type_node, void_list_node);
ftype = build_function_type (integer_type_node, tmp);
gfc_define_builtin ("__builtin_clz", ftype, BUILT_IN_CLZ, "clz", true);
! tmp = tree_cons (NULL_TREE, long_integer_type_node, void_list_node);
ftype = build_function_type (integer_type_node, tmp);
gfc_define_builtin ("__builtin_clzl", ftype, BUILT_IN_CLZL, "clzl", true);
! tmp = tree_cons (NULL_TREE, long_long_integer_type_node, void_list_node);
ftype = build_function_type (integer_type_node, tmp);
gfc_define_builtin ("__builtin_clzll", ftype, BUILT_IN_CLZLL, "clzll", true);
! 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);
ftype = build_function_type (void_type_node, tmp);
gfc_define_builtin ("__builtin_init_trampoline", ftype,
BUILT_IN_INIT_TRAMPOLINE, "init_trampoline", false);
! tmp = tree_cons (NULL_TREE, pvoid_type_node, void_list_node);
ftype = build_function_type (pvoid_type_node, tmp);
gfc_define_builtin ("__builtin_adjust_trampoline", ftype,
BUILT_IN_ADJUST_TRAMPOLINE, "adjust_trampoline", true);
! tmp = tree_cons (NULL_TREE, pvoid_type_node, void_list_node);
! tmp = tree_cons (NULL_TREE, size_type_node, void_list_node);
ftype = build_function_type (pvoid_type_node, tmp);
gfc_define_builtin ("__builtin_stack_alloc", ftype, BUILT_IN_STACK_ALLOC,
"stack_alloc", false);
/* The stack_save and stack_restore builtins aren't used directly. They
are inserted during gimplification to implement stack_alloc calls. */
! ftype = build_function_type (pvoid_type_node, void_list_node);
gfc_define_builtin ("__builtin_stack_save", ftype, BUILT_IN_STACK_SAVE,
"stack_save", false);
! tmp = tree_cons (NULL_TREE, pvoid_type_node, void_list_node);
ftype = build_function_type (void_type_node, tmp);
gfc_define_builtin ("__builtin_stack_restore", ftype, BUILT_IN_STACK_RESTORE,
"stack_restore", false);
Index: gcc/fortran/gfortran.h
===================================================================
RCS file: /var/cvsroot/gcc-cvs/gcc/gcc/fortran/gfortran.h,v
retrieving revision 1.5
diff -c -p -r1.5 gfortran.h
*** a/gcc/fortran/gfortran.h 18 May 2004 00:48:04 -0000 1.5
--- b/gcc/fortran/gfortran.h 18 May 2004 22:24:37 -0000
*************** char *alloca ();
*** 82,87 ****
--- 82,88 ----
ugly to look at and a pain to type when you add the prefix by hand,
so we hide it behind a macro. */
#define PREFIX(x) "_gfortran_" x
+ #define PREFIX_LEN 10
/* Macro to initialize an mstring structure. */
#define minit(s, t) { s, NULL, t }
Index: gcc/fortran/trans-decl.c
===================================================================
RCS file: /var/cvsroot/gcc-cvs/gcc/gcc/fortran/trans-decl.c,v
retrieving revision 1.6
diff -c -p -r1.6 trans-decl.c
*** a/gcc/fortran/trans-decl.c 15 May 2004 17:31:32 -0000 1.6
--- b/gcc/fortran/trans-decl.c 18 May 2004 23:46:01 -0000
*************** tree gfor_fndecl_associated;
*** 93,100 ****
/* Math functions. Many other math functions are handled in
trans-intrinsic.c. */
! tree gfor_fndecl_math_powf;
! tree gfor_fndecl_math_pow;
tree gfor_fndecl_math_cpowf;
tree gfor_fndecl_math_cpow;
tree gfor_fndecl_math_cabsf;
--- 93,99 ----
/* Math functions. Many other math functions are handled in
trans-intrinsic.c. */
! gfc_powdecl_list gfor_fndecl_math_powi[3][2];
tree gfor_fndecl_math_cpowf;
tree gfor_fndecl_math_cpow;
tree gfor_fndecl_math_cabsf;
*************** gfc_build_intrinsic_function_decls (void
*** 1398,1411 ****
/* Power functions. */
! gfor_fndecl_math_powf =
! gfc_build_library_function_decl (get_identifier ("powf"),
! gfc_real4_type_node,
! 1, gfc_real4_type_node);
! gfor_fndecl_math_pow =
! gfc_build_library_function_decl (get_identifier ("pow"),
! gfc_real8_type_node,
! 1, gfc_real8_type_node);
gfor_fndecl_math_cpowf =
gfc_build_library_function_decl (get_identifier ("cpowf"),
gfc_complex4_type_node,
--- 1397,1436 ----
/* Power functions. */
! {
! tree type;
! tree itype;
! int kind;
! int ikind;
! static int kinds[2] = {4, 8};
! char name[PREFIX_LEN + 10]; /* _gfortran_pow_?n_?n */
!
! 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 =
gfc_build_library_function_decl (get_identifier ("cpowf"),
gfc_complex4_type_node,
Index: gcc/fortran/trans-expr.c
===================================================================
RCS file: /var/cvsroot/gcc-cvs/gcc/gcc/fortran/trans-expr.c,v
retrieving revision 1.5
diff -c -p -r1.5 trans-expr.c
*** a/gcc/fortran/trans-expr.c 14 May 2004 13:00:04 -0000 1.5
--- b/gcc/fortran/trans-expr.c 18 May 2004 22:24:37 -0000
*************** gfc_conv_unary_op (enum tree_code code,
*** 382,570 ****
}
! /* For power op (lhs ** rhs) We generate:
! m = lhs
! if (rhs > 0)
! count = rhs
! else if (rhs == 0)
! {
! count = 0
! m = 1
! }
! else // (rhs < 0)
! {
! count = -rhs
! m = 1 / m;
! }
! // for constant rhs we do the above at compile time
! val = m;
! for (n = 1; n < count; n++)
! val = val * m;
! */
! static void
! gfc_conv_integer_power (gfc_se * se, tree lhs, tree rhs)
{
! tree count;
! tree result;
! tree cond;
! tree neg_stmt;
! tree pos_stmt;
tree tmp;
! tree var;
! tree type;
! stmtblock_t block;
! tree exit_label;
! type = TREE_TYPE (lhs);
!
! if (INTEGER_CST_P (rhs))
{
! if (integer_zerop (rhs))
! {
! se->expr = gfc_build_const (type, integer_one_node);
! return;
! }
! /* Special cases for constant values. */
! if (TREE_INT_CST_HIGH (rhs) == -1)
! {
! /* 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. */
! assert (TREE_INT_CST_HIGH (rhs) == 0);
! }
!
! if (integer_onep (rhs))
! {
! se->expr = lhs;
! 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);
! se->expr = fold (build (MULT_EXPR, type, tmp, lhs));
! return;
! }
! /* Create the loop count variable. */
! count = gfc_create_var (TREE_TYPE (rhs), "count");
! gfc_add_modify_expr (&se->pre, count, rhs);
}
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. */
! gfc_start_block (&block);
! if (TREE_CODE (TREE_TYPE (lhs)) == INTEGER_TYPE)
! {
! 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 = build (RDIV_EXPR, type, tmp, lhs);
! 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);
! 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. */
static void
gfc_conv_power_op (gfc_se * se, gfc_expr * expr)
{
int kind;
gfc_se lse;
gfc_se rse;
tree fndecl;
tree tmp;
- tree type;
gfc_init_se (&lse, se);
gfc_conv_expr_val (&lse, expr->op1);
--- 382,553 ----
}
+ /* 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;
! if (n < POWI_TABLE_SIZE)
{
! if (tmpvar[n])
! return tmpvar[n];
! op0 = gfc_conv_powi (se, n - powi_table[n], tmpvar);
! op1 = gfc_conv_powi (se, powi_table[n], tmpvar);
! }
! 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
{
! op0 = gfc_conv_powi (se, n >> 1, tmpvar);
! op1 = op0;
! }
! tmp = fold (build (MULT_EXPR, TREE_TYPE (op0), op0, op1));
! 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 cond;
! tree tmp;
! tree type;
! tree vartmp[POWI_TABLE_SIZE];
! int n;
! int sgn;
! type = TREE_TYPE (lhs);
! n = abs (TREE_INT_CST_LOW (rhs));
! sgn = tree_int_cst_sgn (rhs);
! if ((!flag_unsafe_math_optimizations || optimize_size) && (n > 2 || n < -1))
! return 0;
! /* rhs == 0 */
! if (sgn == 0)
! {
! se->expr = gfc_build_const (type, integer_one_node);
! return 1;
}
+ /* If rhs < 0 and lhs is an integer, the result is -1, 0 or 1. */
+ if ((sgn == -1) && (TREE_CODE (type) == INTEGER_TYPE))
+ {
+ tmp = build (EQ_EXPR, boolean_type_node, lhs,
+ integer_minus_one_node);
+ cond = build (EQ_EXPR, boolean_type_node, lhs,
+ integer_one_node);
! /* If rhs is an even,
! result = (lhs == 1 || lhs == -1) ? 1 : 0. */
! if ((n & 1) == 0)
! {
! tmp = build (TRUTH_OR_EXPR, boolean_type_node, tmp, cond);
! se->expr = build (COND_EXPR, type, tmp, integer_one_node,
! integer_zero_node);
! return 1;
! }
! /* If rhs is an odd,
! result = (lhs == 1) ? 1 : (lhs == -1) ? -1 : 0. */
! tmp = build (COND_EXPR, type, tmp, integer_minus_one_node,
! integer_zero_node);
! se->expr = build (COND_EXPR, type, cond, integer_one_node,
! tmp);
! return 1;
! }
! memset (vartmp, 0, sizeof (vartmp));
! vartmp[1] = lhs;
! se->expr = gfc_conv_powi (se, n, vartmp);
! if (sgn == -1)
! {
! tmp = gfc_build_const (type, integer_one_node);
! se->expr = build (RDIV_EXPR, type, tmp, se->expr);
! }
! return 1;
}
! /* Power op (**). Constant integer exponent has special handling. */
static void
gfc_conv_power_op (gfc_se * se, gfc_expr * expr)
{
int kind;
+ int ikind;
gfc_se lse;
gfc_se rse;
tree fndecl;
tree tmp;
gfc_init_se (&lse, se);
gfc_conv_expr_val (&lse, expr->op1);
*************** gfc_conv_power_op (gfc_se * se, gfc_expr
*** 574,597 ****
gfc_conv_expr_val (&rse, expr->op2);
gfc_add_block_to_block (&se->pre, &rse.pre);
! type = TREE_TYPE (lse.expr);
kind = expr->op1->ts.kind;
switch (expr->op2->ts.type)
{
case BT_INTEGER:
! /* Integer powers are expanded inline as multiplications. */
! gfc_conv_integer_power (se, lse.expr, rse.expr);
! return;
case BT_REAL:
switch (kind)
{
case 4:
! fndecl = gfor_fndecl_math_powf;
break;
case 8:
! fndecl = gfor_fndecl_math_pow;
break;
default:
abort ();
--- 557,639 ----
gfc_conv_expr_val (&rse, expr->op2);
gfc_add_block_to_block (&se->pre, &rse.pre);
! 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;
switch (expr->op2->ts.type)
{
case BT_INTEGER:
! ikind = expr->op2->ts.kind;
! switch (ikind)
! {
! 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:
switch (kind)
{
case 4:
! fndecl = built_in_decls[BUILT_IN_POWF];
break;
case 8:
! fndecl = built_in_decls[BUILT_IN_POW];
break;
default:
abort ();
*************** gfc_conv_power_op (gfc_se * se, gfc_expr
*** 619,625 ****
tmp = gfc_chainon_list (NULL_TREE, lse.expr);
tmp = gfc_chainon_list (tmp, rse.expr);
! se->expr = gfc_build_function_call (fndecl, tmp);
}
--- 661,667 ----
tmp = gfc_chainon_list (NULL_TREE, lse.expr);
tmp = gfc_chainon_list (tmp, rse.expr);
! se->expr = fold (gfc_build_function_call (fndecl, tmp));
}
Index: gcc/fortran/trans.h
===================================================================
RCS file: /var/cvsroot/gcc-cvs/gcc/gcc/fortran/trans.h,v
retrieving revision 1.3
diff -c -p -r1.3 trans.h
*** a/gcc/fortran/trans.h 14 May 2004 13:00:04 -0000 1.3
--- b/gcc/fortran/trans.h 18 May 2004 22:24:37 -0000
*************** extern GTY(()) tree gfor_fndecl_associat
*** 428,435 ****
/* Math functions. Many other math functions are handled in
trans-intrinsic.c. */
! extern GTY(()) tree gfor_fndecl_math_powf;
! extern GTY(()) tree gfor_fndecl_math_pow;
extern GTY(()) tree gfor_fndecl_math_cpowf;
extern GTY(()) tree gfor_fndecl_math_cpow;
extern GTY(()) tree gfor_fndecl_math_cabsf;
--- 428,443 ----
/* Math functions. Many other math functions are handled in
trans-intrinsic.c. */
!
! 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_cpow;
extern GTY(()) tree gfor_fndecl_math_cabsf;
Index: gcc/testsuite/gfortran.fortran-torture/execute/power.f90
===================================================================
RCS file: /var/cvsroot/gcc-cvs/gcc/gcc/testsuite/gfortran.fortran-torture/execute/power.f90,v
retrieving revision 1.2
diff -c -p -r1.2 power.f90
*** a/gcc/testsuite/gfortran.fortran-torture/execute/power.f90 13 May 2004 06:40:53 -0000 1.2
--- b/gcc/testsuite/gfortran.fortran-torture/execute/power.f90 18 May 2004 23:52:40 -0000
*************** program testpow
*** 3,11 ****
implicit none
real(kind=4) r, s, two
real(kind=8) :: q
! complex(kind=4) :: c
real, parameter :: del = 0.0001
! integer i
two = 2.0
--- 3,43 ----
implicit none
real(kind=4) r, s, two
real(kind=8) :: q
! complex(kind=4) :: c, z
real, parameter :: del = 0.0001
! 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
Index: libgfortran/Makefile.am
===================================================================
RCS file: /var/cvsroot/gcc-cvs/gcc/libgfortran/Makefile.am,v
retrieving revision 1.3
diff -c -p -r1.3 Makefile.am
*** a/libgfortran/Makefile.am 18 May 2004 19:03:21 -0000 1.3
--- b/libgfortran/Makefile.am 18 May 2004 23:57:06 -0000
*************** i_set_exponent_c = \
*** 222,227 ****
--- 222,241 ----
generated/set_exponent_r4.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/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_files= m4/iparm.m4 m4/ifunction.m4 m4
*** 229,242 ****
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/transpose.m4 m4/eoshift1.m4 m4/eoshift3.m4 m4/exponent.m4 \
! m4/fraction.m4 m4/nearest.m4 m4/set_exponent.m4
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_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_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)
# We only use these if libm doesn't contain complex math functions.
--- 243,257 ----
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/transpose.m4 m4/eoshift1.m4 m4/eoshift3.m4 m4/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) \
$(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_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_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.
*************** $(i_nearest_c): m4/nearest.m4 m4/mtype.m
*** 443,448 ****
--- 458,466 ----
$(i_set_exponent_c): m4/set_exponent.m4 m4/mtype.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
m4 -Dfile=$@ -I$(srcdir)/m4 ctrig.m4 > $@
Index: libgfortran/Makefile.in
===================================================================
RCS file: /var/cvsroot/gcc-cvs/gcc/libgfortran/Makefile.in,v
retrieving revision 1.3
diff -c -p -r1.3 Makefile.in
*** a/libgfortran/Makefile.in 18 May 2004 19:03:21 -0000 1.3
--- b/libgfortran/Makefile.in 18 May 2004 23:57:12 -0000
*************** am__objects_26 = exponent_r4.lo exponent
*** 101,107 ****
am__objects_27 = fraction_r4.lo fraction_r8.lo
am__objects_28 = nearest_r4.lo nearest_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_5) $(am__objects_6) $(am__objects_7) \
$(am__objects_8) $(am__objects_9) $(am__objects_10) \
$(am__objects_11) $(am__objects_12) $(am__objects_13) \
--- 101,110 ----
am__objects_27 = fraction_r4.lo fraction_r8.lo
am__objects_28 = nearest_r4.lo nearest_r8.lo
am__objects_29 = set_exponent_r4.lo set_exponent_r8.lo
! 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_8) $(am__objects_9) $(am__objects_10) \
$(am__objects_11) $(am__objects_12) $(am__objects_13) \
*************** am__objects_30 = $(am__objects_2) $(am__
*** 110,127 ****
$(am__objects_20) $(am__objects_21) $(am__objects_22) \
$(am__objects_23) $(am__objects_24) $(am__objects_25) \
$(am__objects_26) $(am__objects_27) $(am__objects_28) \
! $(am__objects_29)
! am__objects_31 = backspace.lo close.lo endfile.lo format.lo inquire.lo \
list_read.lo lock.lo open.lo read.lo rewind.lo transfer.lo \
unit.lo unix.lo write.lo
! am__objects_32 = associated.lo abort.lo cpu_time.lo cshift0.lo \
eoshift0.lo eoshift2.lo ishftc.lo pack_generic.lo size.lo \
spread_generic.lo string_intrinsics.lo random.lo \
reshape_generic.lo reshape_packed.lo selected_kind.lo \
transpose_generic.lo unpack_generic.lo in_pack_generic.lo \
in_unpack_generic.lo
! am__objects_33 =
! am__objects_34 = _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 \
_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 \
--- 113,130 ----
$(am__objects_20) $(am__objects_21) $(am__objects_22) \
$(am__objects_23) $(am__objects_24) $(am__objects_25) \
$(am__objects_26) $(am__objects_27) $(am__objects_28) \
! $(am__objects_29) $(am__objects_30)
! 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 \
unit.lo unix.lo write.lo
! am__objects_33 = associated.lo abort.lo cpu_time.lo cshift0.lo \
eoshift0.lo eoshift2.lo ishftc.lo pack_generic.lo size.lo \
spread_generic.lo string_intrinsics.lo random.lo \
reshape_generic.lo reshape_packed.lo selected_kind.lo \
transpose_generic.lo unpack_generic.lo in_pack_generic.lo \
in_unpack_generic.lo
! am__objects_34 =
! 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 \
_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 \
*************** am__objects_34 = _abs_c4.lo _abs_c8.lo _
*** 131,143 ****
_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 \
_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 \
_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
! am__objects_36 = $(am__objects_34) $(am__objects_35) dprod_r8.lo
! am_libgfortran_la_OBJECTS = $(am__objects_1) $(am__objects_30) \
! $(am__objects_31) $(am__objects_32) $(am__objects_33) \
! $(am__objects_36)
libgfortran_la_OBJECTS = $(am_libgfortran_la_OBJECTS)
libgfortranbegin_la_LIBADD =
am_libgfortranbegin_la_OBJECTS = fmain.lo
--- 134,146 ----
_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 \
_aint_r4.lo _aint_r8.lo _anint_r4.lo _anint_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 \
_atan2_r8.lo _mod_i4.lo _mod_i8.lo _mod_r4.lo _mod_r8.lo
! am__objects_37 = $(am__objects_35) $(am__objects_36) dprod_r8.lo
! am_libgfortran_la_OBJECTS = $(am__objects_1) $(am__objects_31) \
! $(am__objects_32) $(am__objects_33) $(am__objects_34) \
! $(am__objects_37)
libgfortran_la_OBJECTS = $(am_libgfortran_la_OBJECTS)
libgfortranbegin_la_LIBADD =
am_libgfortranbegin_la_OBJECTS = fmain.lo
*************** am__depfiles_maybe = depfiles
*** 235,240 ****
--- 238,255 ----
@AMDEP_TRUE@ ./$(DEPDIR)/nearest_r4.Plo \
@AMDEP_TRUE@ ./$(DEPDIR)/nearest_r8.Plo ./$(DEPDIR)/open.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_c8.Plo \
@AMDEP_TRUE@ ./$(DEPDIR)/product_i4.Plo \
*************** i_set_exponent_c = \
*** 600,605 ****
--- 615,634 ----
generated/set_exponent_r4.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/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_files = m4/iparm.m4 m4/ifunction.m4 m
*** 607,620 ****
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/transpose.m4 m4/eoshift1.m4 m4/eoshift3.m4 m4/exponent.m4 \
! m4/fraction.m4 m4/nearest.m4 m4/set_exponent.m4
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_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_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)
# We only use these if libm doesn't contain complex math functions.
--- 636,650 ----
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/transpose.m4 m4/eoshift1.m4 m4/eoshift3.m4 m4/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) \
$(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_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_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.
*************** distclean-compile:
*** 938,943 ****
--- 968,985 ----
@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)/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_c8.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/product_i4.Plo@am__quote@
*************** set_exponent_r8.lo: generated/set_expone
*** 3594,3599 ****
--- 3636,3929 ----
@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
+ 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
@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
*************** uninstall-am: uninstall-info-am uninstal
*** 5464,5469 ****
--- 5794,5802 ----
@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@$(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@ m4 -Dfile=$@ -I$(srcdir)/m4 ctrig.m4 > $@
Index: libgfortran/generated/pow_c4_i4.c
===================================================================
RCS file: libgfortran/generated/pow_c4_i4.c
diff -N libgfortran/generated/pow_c4_i4.c
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- b/libgfortran/generated/pow_c4_i4.c 18 May 2004 23:57:28 -0000
***************
*** 0 ****
--- 1,60 ----
+ /* 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;
+ }
Index: libgfortran/generated/pow_c4_i8.c
===================================================================
RCS file: libgfortran/generated/pow_c4_i8.c
diff -N libgfortran/generated/pow_c4_i8.c
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- b/libgfortran/generated/pow_c4_i8.c 18 May 2004 23:57:28 -0000
***************
*** 0 ****
--- 1,60 ----
+ /* 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;
+ }
Index: libgfortran/generated/pow_c8_i4.c
===================================================================
RCS file: libgfortran/generated/pow_c8_i4.c
diff -N libgfortran/generated/pow_c8_i4.c
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- b/libgfortran/generated/pow_c8_i4.c 18 May 2004 23:57:28 -0000
***************
*** 0 ****
--- 1,60 ----
+ /* 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;
+ }
Index: libgfortran/generated/pow_c8_i8.c
===================================================================
RCS file: libgfortran/generated/pow_c8_i8.c
diff -N libgfortran/generated/pow_c8_i8.c
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- b/libgfortran/generated/pow_c8_i8.c 18 May 2004 23:57:28 -0000
***************
*** 0 ****
--- 1,60 ----
+ /* 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;
+ }
Index: libgfortran/generated/pow_i4_i4.c
===================================================================
RCS file: libgfortran/generated/pow_i4_i4.c
diff -N libgfortran/generated/pow_i4_i4.c
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- b/libgfortran/generated/pow_i4_i4.c 18 May 2004 23:57:28 -0000
***************
*** 0 ****
--- 1,62 ----
+ /* 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;
+ }
Index: libgfortran/generated/pow_i4_i8.c
===================================================================
RCS file: libgfortran/generated/pow_i4_i8.c
diff -N libgfortran/generated/pow_i4_i8.c
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- b/libgfortran/generated/pow_i4_i8.c 18 May 2004 23:57:28 -0000
***************
*** 0 ****
--- 1,62 ----
+ /* 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;
+ }
Index: libgfortran/generated/pow_i8_i4.c
===================================================================
RCS file: libgfortran/generated/pow_i8_i4.c
diff -N libgfortran/generated/pow_i8_i4.c
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- b/libgfortran/generated/pow_i8_i4.c 18 May 2004 23:57:28 -0000
***************
*** 0 ****
--- 1,62 ----
+ /* 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;
+ }
Index: libgfortran/generated/pow_i8_i8.c
===================================================================
RCS file: libgfortran/generated/pow_i8_i8.c
diff -N libgfortran/generated/pow_i8_i8.c
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- b/libgfortran/generated/pow_i8_i8.c 18 May 2004 23:57:28 -0000
***************
*** 0 ****
--- 1,62 ----
+ /* 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;
+ }
Index: libgfortran/generated/pow_r4_i4.c
===================================================================
RCS file: libgfortran/generated/pow_r4_i4.c
diff -N libgfortran/generated/pow_r4_i4.c
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- b/libgfortran/generated/pow_r4_i4.c 18 May 2004 23:57:28 -0000
***************
*** 0 ****
--- 1,60 ----
+ /* 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;
+ }
Index: libgfortran/generated/pow_r4_i8.c
===================================================================
RCS file: libgfortran/generated/pow_r4_i8.c
diff -N libgfortran/generated/pow_r4_i8.c
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- b/libgfortran/generated/pow_r4_i8.c 18 May 2004 23:57:28 -0000
***************
*** 0 ****
--- 1,60 ----
+ /* 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;
+ }
Index: libgfortran/generated/pow_r8_i4.c
===================================================================
RCS file: libgfortran/generated/pow_r8_i4.c
diff -N libgfortran/generated/pow_r8_i4.c
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- b/libgfortran/generated/pow_r8_i4.c 18 May 2004 23:57:28 -0000
***************
*** 0 ****
--- 1,60 ----
+ /* 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;
+ }
Index: libgfortran/generated/pow_r8_i8.c
===================================================================
RCS file: libgfortran/generated/pow_r8_i8.c
diff -N libgfortran/generated/pow_r8_i8.c
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- b/libgfortran/generated/pow_r8_i8.c 18 May 2004 23:57:28 -0000
***************
*** 0 ****
--- 1,60 ----
+ /* 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;
+ }
Index: libgfortran/m4/pow.m4
===================================================================
RCS file: libgfortran/m4/pow.m4
diff -N libgfortran/m4/pow.m4
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- b/libgfortran/m4/pow.m4 18 May 2004 21:51:12 -0000
***************
*** 0 ****
--- 1,68 ----
+ `/* 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;
+ }