This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [fortran, patch] Expand powi to optimal multiplications


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;
+ }

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]