diff options
author | Thomas Koenig <tkoenig@gcc.gnu.org> | 2025-01-27 18:43:44 +0100 |
---|---|---|
committer | Thomas Koenig <tkoenig@gcc.gnu.org> | 2025-02-04 08:56:19 +0100 |
commit | c2a0ee58865c5abad40acc59549dd98f40a8f7aa (patch) | |
tree | d594d7fd671d8aabe183ba3786dd600cafa023d8 | |
parent | 5b46c01c50662a1c730e6658ea4307d4f80da578 (diff) | |
download | gcc-c2a0ee58865c5abad40acc59549dd98f40a8f7aa.zip gcc-c2a0ee58865c5abad40acc59549dd98f40a8f7aa.tar.gz gcc-c2a0ee58865c5abad40acc59549dd98f40a8f7aa.tar.bz2 |
Add modular exponentiation for UNSIGNED.
gcc/fortran/ChangeLog:
* arith.cc (arith_power): Handle modular arithmetic for
BT_UNSIGNED.
(eval_intrinsic): Error for unsigned exponentiation with
-pedantic.
* expr.cc (gfc_type_convert_binary): Use type of first
argument for unsigned exponentiation.
* gfortran.texi: Mention arithmetic exponentiation.
* resolve.cc (resolve_operator): Allow unsigned exponentiation.
* trans-decl.cc (gfc_build_intrinsic_function_decls): Build
declarations for unsigned exponentiation.
* trans-expr.cc (gfc_conv_cst_uint_power): New function.
(gfc_conv_power_op): Call it. Handle unsigned exponentiation.
* trans.h (gfor_fndecl_unsigned_pow_list): Add declaration.
libgfortran/ChangeLog:
* Makefile.am: Add files for unsigned exponentiation.
* Makefile.in: Regenerate.
* gfortran.map: Add functions for unsigned exponentiation.
* generated/pow_m16_m1.c: New file.
* generated/pow_m16_m16.c: New file.
* generated/pow_m16_m2.c: New file.
* generated/pow_m16_m4.c: New file.
* generated/pow_m16_m8.c: New file.
* generated/pow_m1_m1.c: New file.
* generated/pow_m1_m16.c: New file.
* generated/pow_m1_m2.c: New file.
* generated/pow_m1_m4.c: New file.
* generated/pow_m1_m8.c: New file.
* generated/pow_m2_m1.c: New file.
* generated/pow_m2_m16.c: New file.
* generated/pow_m2_m2.c: New file.
* generated/pow_m2_m4.c: New file.
* generated/pow_m2_m8.c: New file.
* generated/pow_m4_m1.c: New file.
* generated/pow_m4_m16.c: New file.
* generated/pow_m4_m2.c: New file.
* generated/pow_m4_m4.c: New file.
* generated/pow_m4_m8.c: New file.
* generated/pow_m8_m1.c: New file.
* generated/pow_m8_m16.c: New file.
* generated/pow_m8_m2.c: New file.
* generated/pow_m8_m4.c: New file.
* generated/pow_m8_m8.c: New file.
* m4/powu.m4: New file.
gcc/testsuite/ChangeLog:
* gfortran.dg/unsigned_15.f90: Adjust error messages.
* gfortran.dg/unsigned_43.f90: New test.
* gfortran.dg/unsigned_44.f90: New test.
39 files changed, 22762 insertions, 46 deletions
diff --git a/gcc/fortran/arith.cc b/gcc/fortran/arith.cc index 5fc9142..82a8b6f 100644 --- a/gcc/fortran/arith.cc +++ b/gcc/fortran/arith.cc @@ -1143,6 +1143,20 @@ arith_power (gfc_expr *op1, gfc_expr *op2, gfc_expr **resultp) op2->value.complex, GFC_MPC_RND_MODE); } break; + case BT_UNSIGNED: + { + int k; + mpz_t x; + gcc_assert (op1->ts.type == BT_UNSIGNED); + k = gfc_validate_kind (BT_UNSIGNED, op1->ts.kind, false); + /* Exponentiation is performed modulo x = 2**n. */ + mpz_init (x); + mpz_add_ui (x, gfc_unsigned_kinds[k].huge, 1); + mpz_powm (result->value.integer, op1->value.integer, + op2->value.integer, x); + mpz_clear (x); + } + break; default: gfc_internal_error ("arith_power(): unknown type"); } @@ -1827,10 +1841,11 @@ eval_intrinsic (gfc_intrinsic_op op, gcc_fallthrough (); /* Numeric binary */ case INTRINSIC_POWER: - if (flag_unsigned && op == INTRINSIC_POWER) + if (pedantic && (op1->ts.type == BT_UNSIGNED || op2->ts.type == BT_UNSIGNED)) { - if (op1->ts.type == BT_UNSIGNED || op2->ts.type == BT_UNSIGNED) - goto runtime; + gfc_error ("Unsigned exponentiation not permitted with -pedantic " + "at %L", &op1->where); + goto runtime; } gcc_fallthrough (); @@ -1940,7 +1955,6 @@ runtime: /* Create a run-time expression. */ result = gfc_get_operator_expr (&op1->where, op, op1, op2); result->ts = temp.ts; - return result; } diff --git a/gcc/fortran/expr.cc b/gcc/fortran/expr.cc index 7f3f6c5..e4ab3ba 100644 --- a/gcc/fortran/expr.cc +++ b/gcc/fortran/expr.cc @@ -981,6 +981,14 @@ gfc_type_convert_binary (gfc_expr *e, int wconversion) goto done; } + /* Unsigned exponentiation is special, we need the type of the first + argument here because of modulo arithmetic. */ + if (op1->ts.type == BT_UNSIGNED && e->value.op.op == INTRINSIC_POWER) + { + e->ts = op1->ts; + goto done; + } + if (op1->ts.kind > op2->ts.kind) gfc_convert_type_warn (op2, &op1->ts, 2, wconversion); else diff --git a/gcc/fortran/gfortran.texi b/gcc/fortran/gfortran.texi index d3fe093..ab8a4cb 100644 --- a/gcc/fortran/gfortran.texi +++ b/gcc/fortran/gfortran.texi @@ -2772,9 +2772,10 @@ end program main @noindent which outputs the number 18446744073709551583. -Arithmetic operations work on unsigned integers, except for exponentiation, -which is prohibited. Unary minus is not permitted when @code{-pedantic} -is in force; this prohibition is part of J3/24-116.txt. +Arithmetic operations work on unsigned integers, also for +exponentiation. As an extension to J3/24-116.txt, unary minus +and exponentiation of unsigned integers are permitted unless +@code{-pedantic} is in force. In intrinsic procedures, unsigned arguments are typically permitted for arguments for the data to be processed, analogous to the diff --git a/gcc/fortran/resolve.cc b/gcc/fortran/resolve.cc index f2eef12..c9736db 100644 --- a/gcc/fortran/resolve.cc +++ b/gcc/fortran/resolve.cc @@ -4310,19 +4310,6 @@ resolve_operator (gfc_expr *e) return false; case INTRINSIC_POWER: - - if (flag_unsigned) - { - if (op1->ts.type == BT_UNSIGNED || op2->ts.type == BT_UNSIGNED) - { - CHECK_INTERFACES - gfc_error ("Exponentiation not valid at %L for %s and %s", - &e->where, gfc_typename (op1), gfc_typename (op2)); - return false; - } - } - gcc_fallthrough (); - case INTRINSIC_PLUS: case INTRINSIC_MINUS: case INTRINSIC_TIMES: diff --git a/gcc/fortran/trans-decl.cc b/gcc/fortran/trans-decl.cc index f6a65cf..017f184 100644 --- a/gcc/fortran/trans-decl.cc +++ b/gcc/fortran/trans-decl.cc @@ -189,6 +189,8 @@ tree gfor_fndecl_caf_random_init; trans-intrinsic.cc. */ gfc_powdecl_list gfor_fndecl_math_powi[4][3]; +tree gfor_fndecl_unsigned_pow_list[5][5]; + tree gfor_fndecl_math_ishftc4; tree gfor_fndecl_math_ishftc8; tree gfor_fndecl_math_ishftc16; @@ -3746,8 +3748,10 @@ gfc_build_intrinsic_function_decls (void) int rkind, ikind, jkind; #define NIKINDS 3 #define NRKINDS 4 - static int ikinds[NIKINDS] = {4, 8, 16}; - static int rkinds[NRKINDS] = {4, 8, 10, 16}; +#define NUKINDS 5 + static const int ikinds[NIKINDS] = {4, 8, 16}; + static const int rkinds[NRKINDS] = {4, 8, 10, 16}; + static const int ukinds[NUKINDS] = {1, 2, 4, 8, 16}; char name[PREFIX_LEN + 12]; /* _gfortran_pow_?n_?n */ for (ikind=0; ikind < NIKINDS; ikind++) @@ -3797,9 +3801,29 @@ gfc_build_intrinsic_function_decls (void) TREE_NOTHROW (gfor_fndecl_math_powi[rkind][ikind].cmplx) = 1; } } + /* For unsigned types, we have every power for every type. */ + for (int base = 0; base < NUKINDS; base++) + { + tree base_type = gfc_get_unsigned_type (ukinds[base]); + for (int expon = 0; expon < NUKINDS; expon++) + { + tree expon_type = gfc_get_unsigned_type (ukinds[base]); + if (base_type && expon_type) + { + sprintf (name, PREFIX("pow_m%d_m%d"), ukinds[base], + ukinds[expon]); + gfor_fndecl_unsigned_pow_list [base][expon] = + gfc_build_library_function_decl (get_identifier (name), + base_type, 2, base_type, expon_type); + TREE_READONLY (gfor_fndecl_unsigned_pow_list[base][expon]) = 1; + TREE_NOTHROW (gfor_fndecl_unsigned_pow_list[base][expon]) = 1; + } + } + } } #undef NIKINDS #undef NRKINDS +#undef NUKINDS } gfor_fndecl_math_ishftc4 = gfc_build_library_function_decl ( diff --git a/gcc/fortran/trans-expr.cc b/gcc/fortran/trans-expr.cc index 24b1d19..f923aeb 100644 --- a/gcc/fortran/trans-expr.cc +++ b/gcc/fortran/trans-expr.cc @@ -3595,8 +3595,93 @@ gfc_conv_cst_int_power (gfc_se * se, tree lhs, tree rhs) return 1; } +/* Convert lhs**rhs, for constant rhs, when both are unsigned. + Method: + if (rhs == 0) ! Checked here. + return 1; + if (lhs & 1 == 1) ! odd_cnd + { + if (bit_size(rhs) < bit_size(lhs)) ! Checked here. + return lhs ** rhs; + + mask = (1 < bit_size(a) - 1) / 2; + return lhs ** (n & rhs); + } + if (rhs > bit_size(lhs)) ! Checked here. + return 0; + + return lhs ** rhs; +*/ + +static int +gfc_conv_cst_uint_power (gfc_se * se, tree lhs, tree rhs) +{ + tree type = TREE_TYPE (lhs); + tree tmp, is_odd, odd_branch, even_branch; + unsigned HOST_WIDE_INT lhs_prec, rhs_prec; + wi::tree_to_wide_ref wrhs = wi::to_wide (rhs); + unsigned HOST_WIDE_INT n, n_odd; + tree vartmp_odd[POWI_TABLE_SIZE], vartmp_even[POWI_TABLE_SIZE]; + + /* Anything ** 0 is one. */ + if (tree_int_cst_sgn (rhs) == 0) + { + se->expr = build_int_cst (type, 1); + return 1; + } + + if (!wi::fits_shwi_p (wrhs)) + return 0; + + n = wrhs.to_uhwi (); + + /* tmp = a & 1; . */ + tmp = fold_build2_loc (input_location, BIT_AND_EXPR, type, + lhs, build_int_cst (type, 1)); + is_odd = fold_build2_loc (input_location, EQ_EXPR, logical_type_node, + tmp, build_int_cst (type, 1)); + + lhs_prec = TYPE_PRECISION (type); + rhs_prec = TYPE_PRECISION (TREE_TYPE(rhs)); + + if (rhs_prec >= lhs_prec) + { + unsigned HOST_WIDE_INT mask; + mask = (((unsigned HOST_WIDE_INT) 1) << (lhs_prec - 1)) - 1; + n_odd = n & mask; + } + else + n_odd = n; + + memset (vartmp_odd, 0, sizeof (vartmp_odd)); + vartmp_odd[0] = build_int_cst(type, 1); + vartmp_odd[1] = lhs; + odd_branch = gfc_conv_powi (se, n_odd, vartmp_odd); + even_branch = NULL_TREE; + + if (n > lhs_prec) + even_branch = build_int_cst (type, 0); + else + { + if (n_odd != n) + { + memset (vartmp_even, 0, sizeof (vartmp_even)); + vartmp_even[0] = build_int_cst(type, 1); + vartmp_even[1] = lhs; + even_branch = gfc_conv_powi (se, n, vartmp_even); + } + } + if (even_branch != NULL_TREE) + se->expr = fold_build3_loc (input_location, COND_EXPR, type, is_odd, + odd_branch, even_branch); + else + se->expr = odd_branch; + + return 1; +} -/* Power op (**). Constant integer exponent has special handling. */ +/* Power op (**). Constant integer exponent and powers of 2 have special + handling. */ static void gfc_conv_power_op (gfc_se * se, gfc_expr * expr) @@ -3618,13 +3703,29 @@ gfc_conv_power_op (gfc_se * se, gfc_expr * expr) gfc_conv_expr_val (&rse, expr->value.op.op2); gfc_add_block_to_block (&se->pre, &rse.pre); - if (expr->value.op.op2->ts.type == BT_INTEGER + if (expr->value.op.op2->expr_type == EXPR_CONSTANT) + { + if (expr->value.op.op2->ts.type == BT_INTEGER) + { + if (gfc_conv_cst_int_power (se, lse.expr, rse.expr)) + return; + } + else if (expr->value.op.op2->ts.type == BT_UNSIGNED) + { + if (gfc_conv_cst_uint_power (se, lse.expr, rse.expr)) + return; + } + } + + if ((expr->value.op.op2->ts.type == BT_INTEGER + || expr->value.op.op2->ts.type == BT_UNSIGNED) && expr->value.op.op2->expr_type == EXPR_CONSTANT) if (gfc_conv_cst_int_power (se, lse.expr, rse.expr)) return; if (INTEGER_CST_P (lse.expr) - && TREE_CODE (TREE_TYPE (rse.expr)) == INTEGER_TYPE) + && TREE_CODE (TREE_TYPE (rse.expr)) == INTEGER_TYPE + && expr->value.op.op2->ts.type == BT_INTEGER) { wi::tree_to_wide_ref wlhs = wi::to_wide (lse.expr); HOST_WIDE_INT v; @@ -3724,6 +3825,49 @@ gfc_conv_power_op (gfc_se * se, gfc_expr * expr) return; } } + /* Handle unsigned separate from signed above, things would be too + complicated otherwise. */ + + if (INTEGER_CST_P (lse.expr) && expr->value.op.op1->ts.type == BT_UNSIGNED) + { + gfc_expr * op1 = expr->value.op.op1; + tree type; + + type = TREE_TYPE (lse.expr); + + if (mpz_cmp_ui (op1->value.integer, 1) == 0) + { + /* 1**something is always 1. */ + se->expr = build_int_cst (type, 1); + return; + } + + /* Simplify 2u**x to a shift, with the value set to zero if it falls + outside the range. */ + if (mpz_popcount (op1->value.integer) == 1) + { + tree prec_m1, lim, shift, lshift, cond, tmp; + tree rtype = TREE_TYPE (rse.expr); + int e = mpz_scan1 (op1->value.integer, 0); + + shift = fold_build2_loc (input_location, MULT_EXPR, + rtype, build_int_cst (rtype, e), + rse.expr); + lshift = fold_build2_loc (input_location, LSHIFT_EXPR, type, + build_int_cst (type, 1), shift); + prec_m1 = fold_build2_loc (input_location, MINUS_EXPR, rtype, + build_int_cst (rtype, TYPE_PRECISION (type)), + build_int_cst (rtype, 1)); + lim = fold_build2_loc (input_location, TRUNC_DIV_EXPR, rtype, + prec_m1, build_int_cst (rtype, e)); + cond = fold_build2_loc (input_location, GT_EXPR, logical_type_node, + rse.expr, lim); + tmp = fold_build3_loc (input_location, COND_EXPR, type, cond, + build_int_cst (type, 0), lshift); + se->expr = tmp; + return; + } + } gfc_int4_type_node = gfc_get_int_type (4); @@ -3856,6 +4000,16 @@ gfc_conv_power_op (gfc_se * se, gfc_expr * expr) fndecl = gfc_builtin_decl_for_float_kind (BUILT_IN_CPOW, kind); break; + case BT_UNSIGNED: + { + /* Valid kinds for unsigned are 1, 2, 4, 8, 16. Instead of using a + large switch statement, let's just use __builtin_ctz. */ + int base = __builtin_ctz (expr->value.op.op1->ts.kind); + int expon = __builtin_ctz (expr->value.op.op2->ts.kind); + fndecl = gfor_fndecl_unsigned_pow_list[base][expon]; + } + break; + default: gcc_unreachable (); break; diff --git a/gcc/fortran/trans.h b/gcc/fortran/trans.h index 449d2b3..915f175 100644 --- a/gcc/fortran/trans.h +++ b/gcc/fortran/trans.h @@ -942,6 +942,8 @@ typedef struct GTY(()) gfc_powdecl_list { gfc_powdecl_list; extern GTY(()) gfc_powdecl_list gfor_fndecl_math_powi[4][3]; +extern GTY(()) tree gfor_fndecl_unsigned_pow_list[5][5]; + extern GTY(()) tree gfor_fndecl_math_ishftc4; extern GTY(()) tree gfor_fndecl_math_ishftc8; extern GTY(()) tree gfor_fndecl_math_ishftc16; diff --git a/gcc/testsuite/gfortran.dg/unsigned_15.f90 b/gcc/testsuite/gfortran.dg/unsigned_15.f90 index da4ccd2..80a7a54 100644 --- a/gcc/testsuite/gfortran.dg/unsigned_15.f90 +++ b/gcc/testsuite/gfortran.dg/unsigned_15.f90 @@ -6,8 +6,8 @@ program main unsigned :: u print *,1 + 2u ! { dg-error "Operands of binary numeric operator" } print *,2u + 1 ! { dg-error "Operands of binary numeric operator" } - print *,2u ** 1 ! { dg-error "Exponentiation not valid" } - print *,2u ** 1u ! { dg-error "Exponentiation not valid" } + print *,2u ** 1 ! { dg-error "Operands of binary numeric operator" } + print *,2u ** 1u print *,1u < 2 ! { dg-error "Inconsistent types" } print *,int(1u) < 2 end program main diff --git a/gcc/testsuite/gfortran.dg/unsigned_43.f90 b/gcc/testsuite/gfortran.dg/unsigned_43.f90 new file mode 100644 index 0000000..fe1cd46 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/unsigned_43.f90 @@ -0,0 +1,11862 @@ +! { dg-do run } +! { dg-options -funsigned } +program memain + implicit none + call tst_1_1 + call tst_1_2 + call tst_1_4 + call tst_1_8 + call tst_2_1 + call tst_2_2 + call tst_2_4 + call tst_2_8 + call tst_4_1 + call tst_4_2 + call tst_4_4 + call tst_4_8 + call tst_8_1 + call tst_8_2 + call tst_8_4 + call tst_8_8 +contains + subroutine tst_1_1 + unsigned(kind=1) :: x, r1, r2, r3, r4 + unsigned(kind=1) :: n + x = 0u_1 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 0u_1 ** n + r4 = 0u_1 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_1 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 0u_1 ** n + r4 = 0u_1 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_1 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 0u_1 ** n + r4 = 0u_1 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_1 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 0u_1 ** n + r4 = 0u_1 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_1 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 0u_1 ** n + r4 = 0u_1 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_1 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 0u_1 ** n + r4 = 0u_1 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_1 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 0u_1 ** n + r4 = 0u_1 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_1 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 1u_1 ** n + r4 = 1u_1 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_1 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 1u_1 ** n + r4 = 1u_1 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_1 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 1u_1 ** n + r4 = 1u_1 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_1 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 1u_1 ** n + r4 = 1u_1 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_1 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 1u_1 ** n + r4 = 1u_1 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_1 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 1u_1 ** n + r4 = 1u_1 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_1 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 1u_1 ** n + r4 = 1u_1 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_1 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 2u_1 ** n + r4 = 2u_1 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_1 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 2u_1 ** n + r4 = 2u_1 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_1 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 2u_1 ** n + r4 = 2u_1 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_1 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 2u_1 ** n + r4 = 2u_1 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_1 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 2u_1 ** n + r4 = 2u_1 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_1 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 2u_1 ** n + r4 = 2u_1 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_1 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 2u_1 ** n + r4 = 2u_1 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_1 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 3u_1 ** n + r4 = 3u_1 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_1 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 3u_1 ** n + r4 = 3u_1 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_1 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 3u_1 ** n + r4 = 3u_1 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_1 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 3u_1 ** n + r4 = 3u_1 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_1 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 3u_1 ** n + r4 = 3u_1 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_1 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 3u_1 ** n + r4 = 3u_1 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_1 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 3u_1 ** n + r4 = 3u_1 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_1 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 7u_1 ** n + r4 = 7u_1 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_1 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 7u_1 ** n + r4 = 7u_1 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_1 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 7u_1 ** n + r4 = 7u_1 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_1 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 7u_1 ** n + r4 = 7u_1 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_1 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 7u_1 ** n + r4 = 7u_1 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_1 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 7u_1 ** n + r4 = 7u_1 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_1 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 7u_1 ** n + r4 = 7u_1 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_1 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 8u_1 ** n + r4 = 8u_1 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_1 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 8u_1 ** n + r4 = 8u_1 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_1 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 8u_1 ** n + r4 = 8u_1 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_1 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 8u_1 ** n + r4 = 8u_1 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_1 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 8u_1 ** n + r4 = 8u_1 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_1 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 8u_1 ** n + r4 = 8u_1 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_1 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 8u_1 ** n + r4 = 8u_1 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_1 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 9u_1 ** n + r4 = 9u_1 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_1 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 9u_1 ** n + r4 = 9u_1 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_1 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 9u_1 ** n + r4 = 9u_1 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_1 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 9u_1 ** n + r4 = 9u_1 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_1 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 9u_1 ** n + r4 = 9u_1 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_1 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 9u_1 ** n + r4 = 9u_1 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_1 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 9u_1 ** n + r4 = 9u_1 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_1 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 14u_1 ** n + r4 = 14u_1 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_1 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 14u_1 ** n + r4 = 14u_1 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_1 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 14u_1 ** n + r4 = 14u_1 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_1 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 14u_1 ** n + r4 = 14u_1 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_1 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 14u_1 ** n + r4 = 14u_1 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_1 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 14u_1 ** n + r4 = 14u_1 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_1 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 14u_1 ** n + r4 = 14u_1 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_1 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 17u_1 ** n + r4 = 17u_1 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_1 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 17u_1 ** n + r4 = 17u_1 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_1 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 17u_1 ** n + r4 = 17u_1 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_1 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 17u_1 ** n + r4 = 17u_1 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_1 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 17u_1 ** n + r4 = 17u_1 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_1 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 17u_1 ** n + r4 = 17u_1 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_1 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 17u_1 ** n + r4 = 17u_1 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_1 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 254u_1 ** n + r4 = 254u_1 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_1 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 254u_1 ** n + r4 = 254u_1 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_1 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 254u_1 ** n + r4 = 254u_1 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_1 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 254u_1 ** n + r4 = 254u_1 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_1 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 254u_1 ** n + r4 = 254u_1 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_1 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 254u_1 ** n + r4 = 254u_1 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_1 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 254u_1 ** n + r4 = 254u_1 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + end subroutine tst_1_1 + subroutine tst_1_2 + unsigned(kind=1) :: x, r1, r2, r3, r4 + unsigned(kind=2) :: n + x = 0u_1 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 0u_1 ** n + r4 = 0u_1 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_1 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 0u_1 ** n + r4 = 0u_1 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_1 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 0u_1 ** n + r4 = 0u_1 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_1 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 0u_1 ** n + r4 = 0u_1 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_1 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 0u_1 ** n + r4 = 0u_1 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_1 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 0u_1 ** n + r4 = 0u_1 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_1 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 0u_1 ** n + r4 = 0u_1 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_1 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 0u_1 ** n + r4 = 0u_1 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_1 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 1u_1 ** n + r4 = 1u_1 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_1 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 1u_1 ** n + r4 = 1u_1 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_1 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 1u_1 ** n + r4 = 1u_1 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_1 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 1u_1 ** n + r4 = 1u_1 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_1 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 1u_1 ** n + r4 = 1u_1 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_1 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 1u_1 ** n + r4 = 1u_1 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_1 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 1u_1 ** n + r4 = 1u_1 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_1 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 1u_1 ** n + r4 = 1u_1 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_1 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 2u_1 ** n + r4 = 2u_1 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_1 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 2u_1 ** n + r4 = 2u_1 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_1 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 2u_1 ** n + r4 = 2u_1 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_1 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 2u_1 ** n + r4 = 2u_1 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_1 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 2u_1 ** n + r4 = 2u_1 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_1 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 2u_1 ** n + r4 = 2u_1 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_1 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 2u_1 ** n + r4 = 2u_1 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_1 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 2u_1 ** n + r4 = 2u_1 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_1 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 3u_1 ** n + r4 = 3u_1 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_1 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 3u_1 ** n + r4 = 3u_1 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_1 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 3u_1 ** n + r4 = 3u_1 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_1 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 3u_1 ** n + r4 = 3u_1 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_1 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 3u_1 ** n + r4 = 3u_1 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_1 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 3u_1 ** n + r4 = 3u_1 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_1 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 3u_1 ** n + r4 = 3u_1 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_1 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 3u_1 ** n + r4 = 3u_1 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_1 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 7u_1 ** n + r4 = 7u_1 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_1 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 7u_1 ** n + r4 = 7u_1 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_1 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 7u_1 ** n + r4 = 7u_1 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_1 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 7u_1 ** n + r4 = 7u_1 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_1 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 7u_1 ** n + r4 = 7u_1 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_1 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 7u_1 ** n + r4 = 7u_1 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_1 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 7u_1 ** n + r4 = 7u_1 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_1 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 7u_1 ** n + r4 = 7u_1 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_1 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 8u_1 ** n + r4 = 8u_1 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_1 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 8u_1 ** n + r4 = 8u_1 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_1 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 8u_1 ** n + r4 = 8u_1 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_1 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 8u_1 ** n + r4 = 8u_1 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_1 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 8u_1 ** n + r4 = 8u_1 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_1 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 8u_1 ** n + r4 = 8u_1 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_1 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 8u_1 ** n + r4 = 8u_1 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_1 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 8u_1 ** n + r4 = 8u_1 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_1 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 9u_1 ** n + r4 = 9u_1 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_1 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 9u_1 ** n + r4 = 9u_1 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_1 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 9u_1 ** n + r4 = 9u_1 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_1 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 9u_1 ** n + r4 = 9u_1 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_1 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 9u_1 ** n + r4 = 9u_1 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_1 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 9u_1 ** n + r4 = 9u_1 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_1 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 9u_1 ** n + r4 = 9u_1 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_1 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 9u_1 ** n + r4 = 9u_1 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_1 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 14u_1 ** n + r4 = 14u_1 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_1 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 14u_1 ** n + r4 = 14u_1 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_1 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 14u_1 ** n + r4 = 14u_1 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_1 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 14u_1 ** n + r4 = 14u_1 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_1 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 14u_1 ** n + r4 = 14u_1 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_1 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 14u_1 ** n + r4 = 14u_1 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_1 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 14u_1 ** n + r4 = 14u_1 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_1 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 14u_1 ** n + r4 = 14u_1 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_1 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 17u_1 ** n + r4 = 17u_1 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_1 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 17u_1 ** n + r4 = 17u_1 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_1 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 17u_1 ** n + r4 = 17u_1 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_1 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 17u_1 ** n + r4 = 17u_1 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_1 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 17u_1 ** n + r4 = 17u_1 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_1 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 17u_1 ** n + r4 = 17u_1 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_1 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 17u_1 ** n + r4 = 17u_1 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_1 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 17u_1 ** n + r4 = 17u_1 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_1 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 254u_1 ** n + r4 = 254u_1 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_1 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 254u_1 ** n + r4 = 254u_1 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_1 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 254u_1 ** n + r4 = 254u_1 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_1 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 254u_1 ** n + r4 = 254u_1 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_1 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 254u_1 ** n + r4 = 254u_1 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_1 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 254u_1 ** n + r4 = 254u_1 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_1 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 254u_1 ** n + r4 = 254u_1 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_1 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 254u_1 ** n + r4 = 254u_1 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + end subroutine tst_1_2 + subroutine tst_1_4 + unsigned(kind=1) :: x, r1, r2, r3, r4 + unsigned(kind=4) :: n + x = 0u_1 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 0u_1 ** n + r4 = 0u_1 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_1 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 0u_1 ** n + r4 = 0u_1 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_1 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 0u_1 ** n + r4 = 0u_1 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_1 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 0u_1 ** n + r4 = 0u_1 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_1 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 0u_1 ** n + r4 = 0u_1 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_1 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 0u_1 ** n + r4 = 0u_1 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_1 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 0u_1 ** n + r4 = 0u_1 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_1 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 0u_1 ** n + r4 = 0u_1 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_1 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 1u_1 ** n + r4 = 1u_1 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_1 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 1u_1 ** n + r4 = 1u_1 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_1 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 1u_1 ** n + r4 = 1u_1 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_1 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 1u_1 ** n + r4 = 1u_1 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_1 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 1u_1 ** n + r4 = 1u_1 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_1 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 1u_1 ** n + r4 = 1u_1 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_1 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 1u_1 ** n + r4 = 1u_1 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_1 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 1u_1 ** n + r4 = 1u_1 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_1 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 2u_1 ** n + r4 = 2u_1 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_1 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 2u_1 ** n + r4 = 2u_1 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_1 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 2u_1 ** n + r4 = 2u_1 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_1 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 2u_1 ** n + r4 = 2u_1 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_1 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 2u_1 ** n + r4 = 2u_1 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_1 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 2u_1 ** n + r4 = 2u_1 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_1 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 2u_1 ** n + r4 = 2u_1 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_1 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 2u_1 ** n + r4 = 2u_1 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_1 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 3u_1 ** n + r4 = 3u_1 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_1 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 3u_1 ** n + r4 = 3u_1 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_1 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 3u_1 ** n + r4 = 3u_1 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_1 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 3u_1 ** n + r4 = 3u_1 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_1 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 3u_1 ** n + r4 = 3u_1 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_1 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 3u_1 ** n + r4 = 3u_1 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_1 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 3u_1 ** n + r4 = 3u_1 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_1 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 3u_1 ** n + r4 = 3u_1 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_1 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 7u_1 ** n + r4 = 7u_1 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_1 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 7u_1 ** n + r4 = 7u_1 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_1 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 7u_1 ** n + r4 = 7u_1 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_1 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 7u_1 ** n + r4 = 7u_1 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_1 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 7u_1 ** n + r4 = 7u_1 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_1 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 7u_1 ** n + r4 = 7u_1 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_1 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 7u_1 ** n + r4 = 7u_1 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_1 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 7u_1 ** n + r4 = 7u_1 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_1 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 8u_1 ** n + r4 = 8u_1 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_1 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 8u_1 ** n + r4 = 8u_1 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_1 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 8u_1 ** n + r4 = 8u_1 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_1 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 8u_1 ** n + r4 = 8u_1 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_1 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 8u_1 ** n + r4 = 8u_1 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_1 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 8u_1 ** n + r4 = 8u_1 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_1 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 8u_1 ** n + r4 = 8u_1 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_1 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 8u_1 ** n + r4 = 8u_1 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_1 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 9u_1 ** n + r4 = 9u_1 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_1 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 9u_1 ** n + r4 = 9u_1 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_1 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 9u_1 ** n + r4 = 9u_1 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_1 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 9u_1 ** n + r4 = 9u_1 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_1 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 9u_1 ** n + r4 = 9u_1 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_1 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 9u_1 ** n + r4 = 9u_1 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_1 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 9u_1 ** n + r4 = 9u_1 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_1 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 9u_1 ** n + r4 = 9u_1 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_1 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 14u_1 ** n + r4 = 14u_1 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_1 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 14u_1 ** n + r4 = 14u_1 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_1 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 14u_1 ** n + r4 = 14u_1 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_1 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 14u_1 ** n + r4 = 14u_1 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_1 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 14u_1 ** n + r4 = 14u_1 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_1 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 14u_1 ** n + r4 = 14u_1 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_1 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 14u_1 ** n + r4 = 14u_1 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_1 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 14u_1 ** n + r4 = 14u_1 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_1 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 17u_1 ** n + r4 = 17u_1 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_1 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 17u_1 ** n + r4 = 17u_1 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_1 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 17u_1 ** n + r4 = 17u_1 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_1 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 17u_1 ** n + r4 = 17u_1 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_1 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 17u_1 ** n + r4 = 17u_1 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_1 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 17u_1 ** n + r4 = 17u_1 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_1 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 17u_1 ** n + r4 = 17u_1 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_1 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 17u_1 ** n + r4 = 17u_1 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_1 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 254u_1 ** n + r4 = 254u_1 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_1 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 254u_1 ** n + r4 = 254u_1 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_1 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 254u_1 ** n + r4 = 254u_1 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_1 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 254u_1 ** n + r4 = 254u_1 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_1 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 254u_1 ** n + r4 = 254u_1 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_1 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 254u_1 ** n + r4 = 254u_1 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_1 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 254u_1 ** n + r4 = 254u_1 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_1 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 254u_1 ** n + r4 = 254u_1 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + end subroutine tst_1_4 + subroutine tst_1_8 + unsigned(kind=1) :: x, r1, r2, r3, r4 + unsigned(kind=8) :: n + x = 0u_1 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 0u_1 ** n + r4 = 0u_1 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_1 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 0u_1 ** n + r4 = 0u_1 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_1 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 0u_1 ** n + r4 = 0u_1 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_1 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 0u_1 ** n + r4 = 0u_1 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_1 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 0u_1 ** n + r4 = 0u_1 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_1 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 0u_1 ** n + r4 = 0u_1 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_1 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 0u_1 ** n + r4 = 0u_1 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_1 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 0u_1 ** n + r4 = 0u_1 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_1 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 0u_1 ** n + r4 = 0u_1 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_1 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 1u_1 ** n + r4 = 1u_1 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_1 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 1u_1 ** n + r4 = 1u_1 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_1 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 1u_1 ** n + r4 = 1u_1 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_1 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 1u_1 ** n + r4 = 1u_1 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_1 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 1u_1 ** n + r4 = 1u_1 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_1 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 1u_1 ** n + r4 = 1u_1 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_1 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 1u_1 ** n + r4 = 1u_1 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_1 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 1u_1 ** n + r4 = 1u_1 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_1 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 1u_1 ** n + r4 = 1u_1 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_1 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 2u_1 ** n + r4 = 2u_1 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_1 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 2u_1 ** n + r4 = 2u_1 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_1 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 2u_1 ** n + r4 = 2u_1 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_1 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 2u_1 ** n + r4 = 2u_1 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_1 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 2u_1 ** n + r4 = 2u_1 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_1 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 2u_1 ** n + r4 = 2u_1 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_1 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 2u_1 ** n + r4 = 2u_1 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_1 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 2u_1 ** n + r4 = 2u_1 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_1 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 2u_1 ** n + r4 = 2u_1 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_1 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 3u_1 ** n + r4 = 3u_1 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_1 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 3u_1 ** n + r4 = 3u_1 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_1 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 3u_1 ** n + r4 = 3u_1 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_1 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 3u_1 ** n + r4 = 3u_1 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_1 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 3u_1 ** n + r4 = 3u_1 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_1 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 3u_1 ** n + r4 = 3u_1 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_1 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 3u_1 ** n + r4 = 3u_1 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_1 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 3u_1 ** n + r4 = 3u_1 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_1 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 3u_1 ** n + r4 = 3u_1 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_1 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 7u_1 ** n + r4 = 7u_1 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_1 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 7u_1 ** n + r4 = 7u_1 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_1 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 7u_1 ** n + r4 = 7u_1 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_1 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 7u_1 ** n + r4 = 7u_1 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_1 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 7u_1 ** n + r4 = 7u_1 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_1 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 7u_1 ** n + r4 = 7u_1 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_1 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 7u_1 ** n + r4 = 7u_1 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_1 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 7u_1 ** n + r4 = 7u_1 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_1 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 7u_1 ** n + r4 = 7u_1 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_1 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 8u_1 ** n + r4 = 8u_1 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_1 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 8u_1 ** n + r4 = 8u_1 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_1 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 8u_1 ** n + r4 = 8u_1 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_1 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 8u_1 ** n + r4 = 8u_1 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_1 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 8u_1 ** n + r4 = 8u_1 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_1 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 8u_1 ** n + r4 = 8u_1 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_1 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 8u_1 ** n + r4 = 8u_1 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_1 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 8u_1 ** n + r4 = 8u_1 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_1 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 8u_1 ** n + r4 = 8u_1 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_1 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 9u_1 ** n + r4 = 9u_1 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_1 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 9u_1 ** n + r4 = 9u_1 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_1 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 9u_1 ** n + r4 = 9u_1 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_1 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 9u_1 ** n + r4 = 9u_1 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_1 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 9u_1 ** n + r4 = 9u_1 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_1 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 9u_1 ** n + r4 = 9u_1 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_1 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 9u_1 ** n + r4 = 9u_1 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_1 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 9u_1 ** n + r4 = 9u_1 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_1 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 9u_1 ** n + r4 = 9u_1 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_1 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 14u_1 ** n + r4 = 14u_1 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_1 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 14u_1 ** n + r4 = 14u_1 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_1 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 14u_1 ** n + r4 = 14u_1 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_1 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 14u_1 ** n + r4 = 14u_1 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_1 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 14u_1 ** n + r4 = 14u_1 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_1 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 14u_1 ** n + r4 = 14u_1 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_1 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 14u_1 ** n + r4 = 14u_1 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_1 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 14u_1 ** n + r4 = 14u_1 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_1 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 14u_1 ** n + r4 = 14u_1 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_1 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 17u_1 ** n + r4 = 17u_1 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_1 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 17u_1 ** n + r4 = 17u_1 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_1 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 17u_1 ** n + r4 = 17u_1 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_1 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 17u_1 ** n + r4 = 17u_1 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_1 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 17u_1 ** n + r4 = 17u_1 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_1 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 17u_1 ** n + r4 = 17u_1 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_1 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 17u_1 ** n + r4 = 17u_1 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_1 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 17u_1 ** n + r4 = 17u_1 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_1 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 17u_1 ** n + r4 = 17u_1 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_1 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 254u_1 ** n + r4 = 254u_1 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_1 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 254u_1 ** n + r4 = 254u_1 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_1 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 254u_1 ** n + r4 = 254u_1 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_1 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 254u_1 ** n + r4 = 254u_1 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_1 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 254u_1 ** n + r4 = 254u_1 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_1 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 254u_1 ** n + r4 = 254u_1 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_1 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 254u_1 ** n + r4 = 254u_1 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_1 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 254u_1 ** n + r4 = 254u_1 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_1 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 254u_1 ** n + r4 = 254u_1 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + end subroutine tst_1_8 + subroutine tst_2_1 + unsigned(kind=2) :: x, r1, r2, r3, r4 + unsigned(kind=1) :: n + x = 0u_2 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 0u_2 ** n + r4 = 0u_2 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_2 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 0u_2 ** n + r4 = 0u_2 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_2 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 0u_2 ** n + r4 = 0u_2 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_2 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 0u_2 ** n + r4 = 0u_2 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_2 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 0u_2 ** n + r4 = 0u_2 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_2 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 0u_2 ** n + r4 = 0u_2 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_2 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 0u_2 ** n + r4 = 0u_2 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_2 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 1u_2 ** n + r4 = 1u_2 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_2 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 1u_2 ** n + r4 = 1u_2 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_2 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 1u_2 ** n + r4 = 1u_2 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_2 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 1u_2 ** n + r4 = 1u_2 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_2 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 1u_2 ** n + r4 = 1u_2 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_2 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 1u_2 ** n + r4 = 1u_2 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_2 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 1u_2 ** n + r4 = 1u_2 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_2 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 2u_2 ** n + r4 = 2u_2 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_2 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 2u_2 ** n + r4 = 2u_2 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_2 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 2u_2 ** n + r4 = 2u_2 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_2 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 2u_2 ** n + r4 = 2u_2 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_2 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 2u_2 ** n + r4 = 2u_2 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_2 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 2u_2 ** n + r4 = 2u_2 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_2 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 2u_2 ** n + r4 = 2u_2 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_2 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 3u_2 ** n + r4 = 3u_2 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_2 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 3u_2 ** n + r4 = 3u_2 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_2 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 3u_2 ** n + r4 = 3u_2 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_2 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 3u_2 ** n + r4 = 3u_2 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_2 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 3u_2 ** n + r4 = 3u_2 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_2 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 3u_2 ** n + r4 = 3u_2 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_2 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 3u_2 ** n + r4 = 3u_2 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_2 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 7u_2 ** n + r4 = 7u_2 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_2 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 7u_2 ** n + r4 = 7u_2 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_2 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 7u_2 ** n + r4 = 7u_2 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_2 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 7u_2 ** n + r4 = 7u_2 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_2 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 7u_2 ** n + r4 = 7u_2 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_2 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 7u_2 ** n + r4 = 7u_2 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_2 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 7u_2 ** n + r4 = 7u_2 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_2 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 8u_2 ** n + r4 = 8u_2 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_2 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 8u_2 ** n + r4 = 8u_2 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_2 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 8u_2 ** n + r4 = 8u_2 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_2 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 8u_2 ** n + r4 = 8u_2 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_2 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 8u_2 ** n + r4 = 8u_2 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_2 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 8u_2 ** n + r4 = 8u_2 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_2 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 8u_2 ** n + r4 = 8u_2 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_2 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 9u_2 ** n + r4 = 9u_2 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_2 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 9u_2 ** n + r4 = 9u_2 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_2 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 9u_2 ** n + r4 = 9u_2 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_2 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 9u_2 ** n + r4 = 9u_2 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_2 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 9u_2 ** n + r4 = 9u_2 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_2 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 9u_2 ** n + r4 = 9u_2 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_2 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 9u_2 ** n + r4 = 9u_2 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_2 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 14u_2 ** n + r4 = 14u_2 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_2 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 14u_2 ** n + r4 = 14u_2 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_2 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 14u_2 ** n + r4 = 14u_2 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_2 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 14u_2 ** n + r4 = 14u_2 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_2 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 14u_2 ** n + r4 = 14u_2 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_2 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 14u_2 ** n + r4 = 14u_2 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_2 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 14u_2 ** n + r4 = 14u_2 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_2 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 17u_2 ** n + r4 = 17u_2 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_2 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 17u_2 ** n + r4 = 17u_2 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_2 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 17u_2 ** n + r4 = 17u_2 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_2 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 17u_2 ** n + r4 = 17u_2 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_2 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 17u_2 ** n + r4 = 17u_2 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_2 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 17u_2 ** n + r4 = 17u_2 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_2 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 17u_2 ** n + r4 = 17u_2 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_2 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 254u_2 ** n + r4 = 254u_2 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_2 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 254u_2 ** n + r4 = 254u_2 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_2 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 254u_2 ** n + r4 = 254u_2 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_2 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 254u_2 ** n + r4 = 254u_2 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_2 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 254u_2 ** n + r4 = 254u_2 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_2 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 254u_2 ** n + r4 = 254u_2 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_2 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 254u_2 ** n + r4 = 254u_2 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_2 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 65535u_2 ** n + r4 = 65535u_2 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_2 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 65535u_2 ** n + r4 = 65535u_2 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_2 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 65535u_2 ** n + r4 = 65535u_2 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_2 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 65535u_2 ** n + r4 = 65535u_2 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_2 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 65535u_2 ** n + r4 = 65535u_2 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_2 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 65535u_2 ** n + r4 = 65535u_2 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_2 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 65535u_2 ** n + r4 = 65535u_2 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + end subroutine tst_2_1 + subroutine tst_2_2 + unsigned(kind=2) :: x, r1, r2, r3, r4 + unsigned(kind=2) :: n + x = 0u_2 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 0u_2 ** n + r4 = 0u_2 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_2 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 0u_2 ** n + r4 = 0u_2 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_2 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 0u_2 ** n + r4 = 0u_2 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_2 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 0u_2 ** n + r4 = 0u_2 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_2 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 0u_2 ** n + r4 = 0u_2 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_2 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 0u_2 ** n + r4 = 0u_2 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_2 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 0u_2 ** n + r4 = 0u_2 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_2 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 0u_2 ** n + r4 = 0u_2 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_2 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 1u_2 ** n + r4 = 1u_2 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_2 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 1u_2 ** n + r4 = 1u_2 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_2 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 1u_2 ** n + r4 = 1u_2 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_2 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 1u_2 ** n + r4 = 1u_2 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_2 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 1u_2 ** n + r4 = 1u_2 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_2 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 1u_2 ** n + r4 = 1u_2 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_2 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 1u_2 ** n + r4 = 1u_2 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_2 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 1u_2 ** n + r4 = 1u_2 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_2 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 2u_2 ** n + r4 = 2u_2 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_2 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 2u_2 ** n + r4 = 2u_2 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_2 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 2u_2 ** n + r4 = 2u_2 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_2 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 2u_2 ** n + r4 = 2u_2 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_2 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 2u_2 ** n + r4 = 2u_2 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_2 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 2u_2 ** n + r4 = 2u_2 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_2 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 2u_2 ** n + r4 = 2u_2 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_2 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 2u_2 ** n + r4 = 2u_2 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_2 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 3u_2 ** n + r4 = 3u_2 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_2 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 3u_2 ** n + r4 = 3u_2 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_2 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 3u_2 ** n + r4 = 3u_2 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_2 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 3u_2 ** n + r4 = 3u_2 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_2 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 3u_2 ** n + r4 = 3u_2 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_2 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 3u_2 ** n + r4 = 3u_2 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_2 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 3u_2 ** n + r4 = 3u_2 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_2 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 3u_2 ** n + r4 = 3u_2 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_2 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 7u_2 ** n + r4 = 7u_2 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_2 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 7u_2 ** n + r4 = 7u_2 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_2 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 7u_2 ** n + r4 = 7u_2 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_2 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 7u_2 ** n + r4 = 7u_2 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_2 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 7u_2 ** n + r4 = 7u_2 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_2 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 7u_2 ** n + r4 = 7u_2 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_2 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 7u_2 ** n + r4 = 7u_2 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_2 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 7u_2 ** n + r4 = 7u_2 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_2 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 8u_2 ** n + r4 = 8u_2 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_2 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 8u_2 ** n + r4 = 8u_2 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_2 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 8u_2 ** n + r4 = 8u_2 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_2 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 8u_2 ** n + r4 = 8u_2 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_2 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 8u_2 ** n + r4 = 8u_2 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_2 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 8u_2 ** n + r4 = 8u_2 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_2 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 8u_2 ** n + r4 = 8u_2 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_2 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 8u_2 ** n + r4 = 8u_2 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_2 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 9u_2 ** n + r4 = 9u_2 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_2 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 9u_2 ** n + r4 = 9u_2 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_2 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 9u_2 ** n + r4 = 9u_2 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_2 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 9u_2 ** n + r4 = 9u_2 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_2 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 9u_2 ** n + r4 = 9u_2 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_2 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 9u_2 ** n + r4 = 9u_2 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_2 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 9u_2 ** n + r4 = 9u_2 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_2 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 9u_2 ** n + r4 = 9u_2 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_2 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 14u_2 ** n + r4 = 14u_2 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_2 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 14u_2 ** n + r4 = 14u_2 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_2 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 14u_2 ** n + r4 = 14u_2 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_2 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 14u_2 ** n + r4 = 14u_2 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_2 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 14u_2 ** n + r4 = 14u_2 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_2 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 14u_2 ** n + r4 = 14u_2 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_2 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 14u_2 ** n + r4 = 14u_2 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_2 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 14u_2 ** n + r4 = 14u_2 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_2 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 17u_2 ** n + r4 = 17u_2 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_2 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 17u_2 ** n + r4 = 17u_2 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_2 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 17u_2 ** n + r4 = 17u_2 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_2 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 17u_2 ** n + r4 = 17u_2 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_2 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 17u_2 ** n + r4 = 17u_2 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_2 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 17u_2 ** n + r4 = 17u_2 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_2 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 17u_2 ** n + r4 = 17u_2 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_2 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 17u_2 ** n + r4 = 17u_2 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_2 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 254u_2 ** n + r4 = 254u_2 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_2 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 254u_2 ** n + r4 = 254u_2 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_2 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 254u_2 ** n + r4 = 254u_2 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_2 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 254u_2 ** n + r4 = 254u_2 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_2 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 254u_2 ** n + r4 = 254u_2 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_2 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 254u_2 ** n + r4 = 254u_2 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_2 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 254u_2 ** n + r4 = 254u_2 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_2 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 254u_2 ** n + r4 = 254u_2 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_2 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 65535u_2 ** n + r4 = 65535u_2 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_2 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 65535u_2 ** n + r4 = 65535u_2 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_2 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 65535u_2 ** n + r4 = 65535u_2 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_2 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 65535u_2 ** n + r4 = 65535u_2 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_2 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 65535u_2 ** n + r4 = 65535u_2 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_2 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 65535u_2 ** n + r4 = 65535u_2 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_2 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 65535u_2 ** n + r4 = 65535u_2 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_2 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 65535u_2 ** n + r4 = 65535u_2 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + end subroutine tst_2_2 + subroutine tst_2_4 + unsigned(kind=2) :: x, r1, r2, r3, r4 + unsigned(kind=4) :: n + x = 0u_2 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 0u_2 ** n + r4 = 0u_2 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_2 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 0u_2 ** n + r4 = 0u_2 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_2 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 0u_2 ** n + r4 = 0u_2 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_2 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 0u_2 ** n + r4 = 0u_2 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_2 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 0u_2 ** n + r4 = 0u_2 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_2 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 0u_2 ** n + r4 = 0u_2 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_2 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 0u_2 ** n + r4 = 0u_2 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_2 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 0u_2 ** n + r4 = 0u_2 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_2 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 1u_2 ** n + r4 = 1u_2 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_2 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 1u_2 ** n + r4 = 1u_2 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_2 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 1u_2 ** n + r4 = 1u_2 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_2 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 1u_2 ** n + r4 = 1u_2 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_2 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 1u_2 ** n + r4 = 1u_2 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_2 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 1u_2 ** n + r4 = 1u_2 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_2 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 1u_2 ** n + r4 = 1u_2 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_2 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 1u_2 ** n + r4 = 1u_2 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_2 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 2u_2 ** n + r4 = 2u_2 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_2 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 2u_2 ** n + r4 = 2u_2 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_2 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 2u_2 ** n + r4 = 2u_2 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_2 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 2u_2 ** n + r4 = 2u_2 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_2 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 2u_2 ** n + r4 = 2u_2 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_2 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 2u_2 ** n + r4 = 2u_2 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_2 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 2u_2 ** n + r4 = 2u_2 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_2 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 2u_2 ** n + r4 = 2u_2 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_2 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 3u_2 ** n + r4 = 3u_2 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_2 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 3u_2 ** n + r4 = 3u_2 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_2 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 3u_2 ** n + r4 = 3u_2 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_2 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 3u_2 ** n + r4 = 3u_2 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_2 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 3u_2 ** n + r4 = 3u_2 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_2 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 3u_2 ** n + r4 = 3u_2 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_2 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 3u_2 ** n + r4 = 3u_2 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_2 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 3u_2 ** n + r4 = 3u_2 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_2 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 7u_2 ** n + r4 = 7u_2 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_2 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 7u_2 ** n + r4 = 7u_2 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_2 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 7u_2 ** n + r4 = 7u_2 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_2 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 7u_2 ** n + r4 = 7u_2 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_2 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 7u_2 ** n + r4 = 7u_2 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_2 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 7u_2 ** n + r4 = 7u_2 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_2 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 7u_2 ** n + r4 = 7u_2 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_2 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 7u_2 ** n + r4 = 7u_2 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_2 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 8u_2 ** n + r4 = 8u_2 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_2 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 8u_2 ** n + r4 = 8u_2 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_2 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 8u_2 ** n + r4 = 8u_2 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_2 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 8u_2 ** n + r4 = 8u_2 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_2 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 8u_2 ** n + r4 = 8u_2 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_2 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 8u_2 ** n + r4 = 8u_2 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_2 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 8u_2 ** n + r4 = 8u_2 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_2 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 8u_2 ** n + r4 = 8u_2 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_2 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 9u_2 ** n + r4 = 9u_2 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_2 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 9u_2 ** n + r4 = 9u_2 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_2 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 9u_2 ** n + r4 = 9u_2 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_2 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 9u_2 ** n + r4 = 9u_2 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_2 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 9u_2 ** n + r4 = 9u_2 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_2 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 9u_2 ** n + r4 = 9u_2 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_2 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 9u_2 ** n + r4 = 9u_2 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_2 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 9u_2 ** n + r4 = 9u_2 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_2 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 14u_2 ** n + r4 = 14u_2 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_2 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 14u_2 ** n + r4 = 14u_2 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_2 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 14u_2 ** n + r4 = 14u_2 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_2 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 14u_2 ** n + r4 = 14u_2 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_2 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 14u_2 ** n + r4 = 14u_2 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_2 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 14u_2 ** n + r4 = 14u_2 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_2 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 14u_2 ** n + r4 = 14u_2 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_2 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 14u_2 ** n + r4 = 14u_2 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_2 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 17u_2 ** n + r4 = 17u_2 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_2 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 17u_2 ** n + r4 = 17u_2 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_2 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 17u_2 ** n + r4 = 17u_2 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_2 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 17u_2 ** n + r4 = 17u_2 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_2 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 17u_2 ** n + r4 = 17u_2 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_2 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 17u_2 ** n + r4 = 17u_2 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_2 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 17u_2 ** n + r4 = 17u_2 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_2 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 17u_2 ** n + r4 = 17u_2 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_2 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 254u_2 ** n + r4 = 254u_2 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_2 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 254u_2 ** n + r4 = 254u_2 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_2 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 254u_2 ** n + r4 = 254u_2 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_2 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 254u_2 ** n + r4 = 254u_2 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_2 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 254u_2 ** n + r4 = 254u_2 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_2 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 254u_2 ** n + r4 = 254u_2 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_2 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 254u_2 ** n + r4 = 254u_2 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_2 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 254u_2 ** n + r4 = 254u_2 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_2 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 65535u_2 ** n + r4 = 65535u_2 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_2 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 65535u_2 ** n + r4 = 65535u_2 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_2 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 65535u_2 ** n + r4 = 65535u_2 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_2 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 65535u_2 ** n + r4 = 65535u_2 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_2 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 65535u_2 ** n + r4 = 65535u_2 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_2 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 65535u_2 ** n + r4 = 65535u_2 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_2 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 65535u_2 ** n + r4 = 65535u_2 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_2 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 65535u_2 ** n + r4 = 65535u_2 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + end subroutine tst_2_4 + subroutine tst_2_8 + unsigned(kind=2) :: x, r1, r2, r3, r4 + unsigned(kind=8) :: n + x = 0u_2 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 0u_2 ** n + r4 = 0u_2 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_2 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 0u_2 ** n + r4 = 0u_2 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_2 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 0u_2 ** n + r4 = 0u_2 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_2 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 0u_2 ** n + r4 = 0u_2 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_2 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 0u_2 ** n + r4 = 0u_2 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_2 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 0u_2 ** n + r4 = 0u_2 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_2 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 0u_2 ** n + r4 = 0u_2 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_2 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 0u_2 ** n + r4 = 0u_2 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_2 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 0u_2 ** n + r4 = 0u_2 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_2 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 1u_2 ** n + r4 = 1u_2 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_2 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 1u_2 ** n + r4 = 1u_2 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_2 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 1u_2 ** n + r4 = 1u_2 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_2 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 1u_2 ** n + r4 = 1u_2 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_2 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 1u_2 ** n + r4 = 1u_2 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_2 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 1u_2 ** n + r4 = 1u_2 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_2 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 1u_2 ** n + r4 = 1u_2 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_2 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 1u_2 ** n + r4 = 1u_2 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_2 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 1u_2 ** n + r4 = 1u_2 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_2 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 2u_2 ** n + r4 = 2u_2 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_2 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 2u_2 ** n + r4 = 2u_2 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_2 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 2u_2 ** n + r4 = 2u_2 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_2 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 2u_2 ** n + r4 = 2u_2 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_2 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 2u_2 ** n + r4 = 2u_2 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_2 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 2u_2 ** n + r4 = 2u_2 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_2 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 2u_2 ** n + r4 = 2u_2 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_2 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 2u_2 ** n + r4 = 2u_2 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_2 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 2u_2 ** n + r4 = 2u_2 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_2 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 3u_2 ** n + r4 = 3u_2 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_2 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 3u_2 ** n + r4 = 3u_2 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_2 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 3u_2 ** n + r4 = 3u_2 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_2 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 3u_2 ** n + r4 = 3u_2 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_2 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 3u_2 ** n + r4 = 3u_2 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_2 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 3u_2 ** n + r4 = 3u_2 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_2 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 3u_2 ** n + r4 = 3u_2 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_2 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 3u_2 ** n + r4 = 3u_2 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_2 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 3u_2 ** n + r4 = 3u_2 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_2 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 7u_2 ** n + r4 = 7u_2 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_2 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 7u_2 ** n + r4 = 7u_2 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_2 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 7u_2 ** n + r4 = 7u_2 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_2 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 7u_2 ** n + r4 = 7u_2 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_2 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 7u_2 ** n + r4 = 7u_2 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_2 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 7u_2 ** n + r4 = 7u_2 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_2 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 7u_2 ** n + r4 = 7u_2 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_2 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 7u_2 ** n + r4 = 7u_2 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_2 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 7u_2 ** n + r4 = 7u_2 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_2 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 8u_2 ** n + r4 = 8u_2 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_2 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 8u_2 ** n + r4 = 8u_2 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_2 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 8u_2 ** n + r4 = 8u_2 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_2 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 8u_2 ** n + r4 = 8u_2 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_2 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 8u_2 ** n + r4 = 8u_2 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_2 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 8u_2 ** n + r4 = 8u_2 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_2 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 8u_2 ** n + r4 = 8u_2 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_2 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 8u_2 ** n + r4 = 8u_2 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_2 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 8u_2 ** n + r4 = 8u_2 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_2 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 9u_2 ** n + r4 = 9u_2 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_2 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 9u_2 ** n + r4 = 9u_2 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_2 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 9u_2 ** n + r4 = 9u_2 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_2 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 9u_2 ** n + r4 = 9u_2 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_2 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 9u_2 ** n + r4 = 9u_2 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_2 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 9u_2 ** n + r4 = 9u_2 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_2 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 9u_2 ** n + r4 = 9u_2 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_2 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 9u_2 ** n + r4 = 9u_2 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_2 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 9u_2 ** n + r4 = 9u_2 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_2 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 14u_2 ** n + r4 = 14u_2 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_2 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 14u_2 ** n + r4 = 14u_2 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_2 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 14u_2 ** n + r4 = 14u_2 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_2 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 14u_2 ** n + r4 = 14u_2 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_2 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 14u_2 ** n + r4 = 14u_2 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_2 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 14u_2 ** n + r4 = 14u_2 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_2 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 14u_2 ** n + r4 = 14u_2 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_2 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 14u_2 ** n + r4 = 14u_2 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_2 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 14u_2 ** n + r4 = 14u_2 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_2 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 17u_2 ** n + r4 = 17u_2 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_2 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 17u_2 ** n + r4 = 17u_2 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_2 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 17u_2 ** n + r4 = 17u_2 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_2 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 17u_2 ** n + r4 = 17u_2 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_2 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 17u_2 ** n + r4 = 17u_2 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_2 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 17u_2 ** n + r4 = 17u_2 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_2 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 17u_2 ** n + r4 = 17u_2 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_2 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 17u_2 ** n + r4 = 17u_2 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_2 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 17u_2 ** n + r4 = 17u_2 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_2 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 254u_2 ** n + r4 = 254u_2 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_2 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 254u_2 ** n + r4 = 254u_2 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_2 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 254u_2 ** n + r4 = 254u_2 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_2 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 254u_2 ** n + r4 = 254u_2 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_2 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 254u_2 ** n + r4 = 254u_2 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_2 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 254u_2 ** n + r4 = 254u_2 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_2 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 254u_2 ** n + r4 = 254u_2 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_2 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 254u_2 ** n + r4 = 254u_2 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_2 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 254u_2 ** n + r4 = 254u_2 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_2 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 65535u_2 ** n + r4 = 65535u_2 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_2 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 65535u_2 ** n + r4 = 65535u_2 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_2 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 65535u_2 ** n + r4 = 65535u_2 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_2 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 65535u_2 ** n + r4 = 65535u_2 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_2 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 65535u_2 ** n + r4 = 65535u_2 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_2 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 65535u_2 ** n + r4 = 65535u_2 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_2 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 65535u_2 ** n + r4 = 65535u_2 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_2 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 65535u_2 ** n + r4 = 65535u_2 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_2 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 65535u_2 ** n + r4 = 65535u_2 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + end subroutine tst_2_8 + subroutine tst_4_1 + unsigned(kind=4) :: x, r1, r2, r3, r4 + unsigned(kind=1) :: n + x = 0u_4 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 0u_4 ** n + r4 = 0u_4 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_4 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 0u_4 ** n + r4 = 0u_4 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_4 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 0u_4 ** n + r4 = 0u_4 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_4 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 0u_4 ** n + r4 = 0u_4 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_4 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 0u_4 ** n + r4 = 0u_4 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_4 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 0u_4 ** n + r4 = 0u_4 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_4 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 0u_4 ** n + r4 = 0u_4 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_4 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 1u_4 ** n + r4 = 1u_4 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_4 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 1u_4 ** n + r4 = 1u_4 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_4 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 1u_4 ** n + r4 = 1u_4 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_4 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 1u_4 ** n + r4 = 1u_4 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_4 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 1u_4 ** n + r4 = 1u_4 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_4 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 1u_4 ** n + r4 = 1u_4 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_4 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 1u_4 ** n + r4 = 1u_4 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_4 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 2u_4 ** n + r4 = 2u_4 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_4 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 2u_4 ** n + r4 = 2u_4 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_4 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 2u_4 ** n + r4 = 2u_4 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_4 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 2u_4 ** n + r4 = 2u_4 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_4 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 2u_4 ** n + r4 = 2u_4 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_4 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 2u_4 ** n + r4 = 2u_4 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_4 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 2u_4 ** n + r4 = 2u_4 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_4 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 3u_4 ** n + r4 = 3u_4 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_4 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 3u_4 ** n + r4 = 3u_4 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_4 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 3u_4 ** n + r4 = 3u_4 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_4 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 3u_4 ** n + r4 = 3u_4 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_4 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 3u_4 ** n + r4 = 3u_4 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_4 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 3u_4 ** n + r4 = 3u_4 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_4 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 3u_4 ** n + r4 = 3u_4 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_4 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 7u_4 ** n + r4 = 7u_4 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_4 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 7u_4 ** n + r4 = 7u_4 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_4 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 7u_4 ** n + r4 = 7u_4 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_4 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 7u_4 ** n + r4 = 7u_4 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_4 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 7u_4 ** n + r4 = 7u_4 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_4 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 7u_4 ** n + r4 = 7u_4 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_4 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 7u_4 ** n + r4 = 7u_4 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_4 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 8u_4 ** n + r4 = 8u_4 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_4 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 8u_4 ** n + r4 = 8u_4 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_4 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 8u_4 ** n + r4 = 8u_4 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_4 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 8u_4 ** n + r4 = 8u_4 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_4 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 8u_4 ** n + r4 = 8u_4 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_4 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 8u_4 ** n + r4 = 8u_4 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_4 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 8u_4 ** n + r4 = 8u_4 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_4 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 9u_4 ** n + r4 = 9u_4 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_4 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 9u_4 ** n + r4 = 9u_4 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_4 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 9u_4 ** n + r4 = 9u_4 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_4 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 9u_4 ** n + r4 = 9u_4 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_4 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 9u_4 ** n + r4 = 9u_4 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_4 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 9u_4 ** n + r4 = 9u_4 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_4 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 9u_4 ** n + r4 = 9u_4 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_4 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 14u_4 ** n + r4 = 14u_4 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_4 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 14u_4 ** n + r4 = 14u_4 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_4 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 14u_4 ** n + r4 = 14u_4 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_4 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 14u_4 ** n + r4 = 14u_4 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_4 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 14u_4 ** n + r4 = 14u_4 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_4 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 14u_4 ** n + r4 = 14u_4 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_4 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 14u_4 ** n + r4 = 14u_4 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_4 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 17u_4 ** n + r4 = 17u_4 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_4 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 17u_4 ** n + r4 = 17u_4 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_4 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 17u_4 ** n + r4 = 17u_4 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_4 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 17u_4 ** n + r4 = 17u_4 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_4 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 17u_4 ** n + r4 = 17u_4 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_4 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 17u_4 ** n + r4 = 17u_4 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_4 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 17u_4 ** n + r4 = 17u_4 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_4 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 254u_4 ** n + r4 = 254u_4 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_4 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 254u_4 ** n + r4 = 254u_4 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_4 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 254u_4 ** n + r4 = 254u_4 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_4 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 254u_4 ** n + r4 = 254u_4 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_4 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 254u_4 ** n + r4 = 254u_4 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_4 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 254u_4 ** n + r4 = 254u_4 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_4 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 254u_4 ** n + r4 = 254u_4 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_4 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 65535u_4 ** n + r4 = 65535u_4 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_4 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 65535u_4 ** n + r4 = 65535u_4 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_4 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 65535u_4 ** n + r4 = 65535u_4 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_4 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 65535u_4 ** n + r4 = 65535u_4 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_4 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 65535u_4 ** n + r4 = 65535u_4 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_4 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 65535u_4 ** n + r4 = 65535u_4 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_4 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 65535u_4 ** n + r4 = 65535u_4 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_4 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 4294967295u_4 ** n + r4 = 4294967295u_4 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_4 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 4294967295u_4 ** n + r4 = 4294967295u_4 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_4 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 4294967295u_4 ** n + r4 = 4294967295u_4 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_4 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 4294967295u_4 ** n + r4 = 4294967295u_4 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_4 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 4294967295u_4 ** n + r4 = 4294967295u_4 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_4 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 4294967295u_4 ** n + r4 = 4294967295u_4 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_4 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 4294967295u_4 ** n + r4 = 4294967295u_4 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + end subroutine tst_4_1 + subroutine tst_4_2 + unsigned(kind=4) :: x, r1, r2, r3, r4 + unsigned(kind=2) :: n + x = 0u_4 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 0u_4 ** n + r4 = 0u_4 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_4 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 0u_4 ** n + r4 = 0u_4 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_4 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 0u_4 ** n + r4 = 0u_4 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_4 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 0u_4 ** n + r4 = 0u_4 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_4 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 0u_4 ** n + r4 = 0u_4 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_4 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 0u_4 ** n + r4 = 0u_4 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_4 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 0u_4 ** n + r4 = 0u_4 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_4 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 0u_4 ** n + r4 = 0u_4 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_4 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 1u_4 ** n + r4 = 1u_4 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_4 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 1u_4 ** n + r4 = 1u_4 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_4 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 1u_4 ** n + r4 = 1u_4 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_4 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 1u_4 ** n + r4 = 1u_4 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_4 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 1u_4 ** n + r4 = 1u_4 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_4 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 1u_4 ** n + r4 = 1u_4 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_4 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 1u_4 ** n + r4 = 1u_4 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_4 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 1u_4 ** n + r4 = 1u_4 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_4 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 2u_4 ** n + r4 = 2u_4 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_4 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 2u_4 ** n + r4 = 2u_4 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_4 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 2u_4 ** n + r4 = 2u_4 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_4 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 2u_4 ** n + r4 = 2u_4 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_4 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 2u_4 ** n + r4 = 2u_4 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_4 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 2u_4 ** n + r4 = 2u_4 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_4 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 2u_4 ** n + r4 = 2u_4 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_4 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 2u_4 ** n + r4 = 2u_4 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_4 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 3u_4 ** n + r4 = 3u_4 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_4 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 3u_4 ** n + r4 = 3u_4 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_4 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 3u_4 ** n + r4 = 3u_4 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_4 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 3u_4 ** n + r4 = 3u_4 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_4 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 3u_4 ** n + r4 = 3u_4 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_4 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 3u_4 ** n + r4 = 3u_4 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_4 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 3u_4 ** n + r4 = 3u_4 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_4 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 3u_4 ** n + r4 = 3u_4 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_4 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 7u_4 ** n + r4 = 7u_4 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_4 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 7u_4 ** n + r4 = 7u_4 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_4 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 7u_4 ** n + r4 = 7u_4 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_4 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 7u_4 ** n + r4 = 7u_4 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_4 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 7u_4 ** n + r4 = 7u_4 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_4 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 7u_4 ** n + r4 = 7u_4 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_4 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 7u_4 ** n + r4 = 7u_4 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_4 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 7u_4 ** n + r4 = 7u_4 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_4 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 8u_4 ** n + r4 = 8u_4 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_4 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 8u_4 ** n + r4 = 8u_4 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_4 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 8u_4 ** n + r4 = 8u_4 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_4 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 8u_4 ** n + r4 = 8u_4 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_4 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 8u_4 ** n + r4 = 8u_4 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_4 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 8u_4 ** n + r4 = 8u_4 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_4 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 8u_4 ** n + r4 = 8u_4 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_4 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 8u_4 ** n + r4 = 8u_4 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_4 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 9u_4 ** n + r4 = 9u_4 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_4 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 9u_4 ** n + r4 = 9u_4 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_4 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 9u_4 ** n + r4 = 9u_4 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_4 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 9u_4 ** n + r4 = 9u_4 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_4 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 9u_4 ** n + r4 = 9u_4 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_4 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 9u_4 ** n + r4 = 9u_4 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_4 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 9u_4 ** n + r4 = 9u_4 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_4 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 9u_4 ** n + r4 = 9u_4 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_4 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 14u_4 ** n + r4 = 14u_4 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_4 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 14u_4 ** n + r4 = 14u_4 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_4 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 14u_4 ** n + r4 = 14u_4 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_4 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 14u_4 ** n + r4 = 14u_4 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_4 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 14u_4 ** n + r4 = 14u_4 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_4 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 14u_4 ** n + r4 = 14u_4 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_4 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 14u_4 ** n + r4 = 14u_4 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_4 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 14u_4 ** n + r4 = 14u_4 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_4 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 17u_4 ** n + r4 = 17u_4 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_4 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 17u_4 ** n + r4 = 17u_4 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_4 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 17u_4 ** n + r4 = 17u_4 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_4 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 17u_4 ** n + r4 = 17u_4 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_4 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 17u_4 ** n + r4 = 17u_4 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_4 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 17u_4 ** n + r4 = 17u_4 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_4 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 17u_4 ** n + r4 = 17u_4 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_4 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 17u_4 ** n + r4 = 17u_4 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_4 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 254u_4 ** n + r4 = 254u_4 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_4 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 254u_4 ** n + r4 = 254u_4 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_4 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 254u_4 ** n + r4 = 254u_4 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_4 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 254u_4 ** n + r4 = 254u_4 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_4 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 254u_4 ** n + r4 = 254u_4 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_4 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 254u_4 ** n + r4 = 254u_4 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_4 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 254u_4 ** n + r4 = 254u_4 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_4 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 254u_4 ** n + r4 = 254u_4 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_4 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 65535u_4 ** n + r4 = 65535u_4 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_4 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 65535u_4 ** n + r4 = 65535u_4 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_4 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 65535u_4 ** n + r4 = 65535u_4 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_4 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 65535u_4 ** n + r4 = 65535u_4 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_4 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 65535u_4 ** n + r4 = 65535u_4 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_4 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 65535u_4 ** n + r4 = 65535u_4 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_4 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 65535u_4 ** n + r4 = 65535u_4 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_4 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 65535u_4 ** n + r4 = 65535u_4 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_4 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 4294967295u_4 ** n + r4 = 4294967295u_4 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_4 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 4294967295u_4 ** n + r4 = 4294967295u_4 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_4 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 4294967295u_4 ** n + r4 = 4294967295u_4 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_4 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 4294967295u_4 ** n + r4 = 4294967295u_4 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_4 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 4294967295u_4 ** n + r4 = 4294967295u_4 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_4 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 4294967295u_4 ** n + r4 = 4294967295u_4 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_4 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 4294967295u_4 ** n + r4 = 4294967295u_4 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_4 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 4294967295u_4 ** n + r4 = 4294967295u_4 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + end subroutine tst_4_2 + subroutine tst_4_4 + unsigned(kind=4) :: x, r1, r2, r3, r4 + unsigned(kind=4) :: n + x = 0u_4 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 0u_4 ** n + r4 = 0u_4 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_4 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 0u_4 ** n + r4 = 0u_4 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_4 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 0u_4 ** n + r4 = 0u_4 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_4 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 0u_4 ** n + r4 = 0u_4 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_4 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 0u_4 ** n + r4 = 0u_4 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_4 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 0u_4 ** n + r4 = 0u_4 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_4 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 0u_4 ** n + r4 = 0u_4 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_4 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 0u_4 ** n + r4 = 0u_4 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_4 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 1u_4 ** n + r4 = 1u_4 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_4 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 1u_4 ** n + r4 = 1u_4 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_4 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 1u_4 ** n + r4 = 1u_4 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_4 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 1u_4 ** n + r4 = 1u_4 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_4 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 1u_4 ** n + r4 = 1u_4 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_4 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 1u_4 ** n + r4 = 1u_4 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_4 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 1u_4 ** n + r4 = 1u_4 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_4 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 1u_4 ** n + r4 = 1u_4 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_4 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 2u_4 ** n + r4 = 2u_4 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_4 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 2u_4 ** n + r4 = 2u_4 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_4 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 2u_4 ** n + r4 = 2u_4 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_4 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 2u_4 ** n + r4 = 2u_4 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_4 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 2u_4 ** n + r4 = 2u_4 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_4 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 2u_4 ** n + r4 = 2u_4 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_4 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 2u_4 ** n + r4 = 2u_4 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_4 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 2u_4 ** n + r4 = 2u_4 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_4 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 3u_4 ** n + r4 = 3u_4 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_4 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 3u_4 ** n + r4 = 3u_4 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_4 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 3u_4 ** n + r4 = 3u_4 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_4 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 3u_4 ** n + r4 = 3u_4 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_4 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 3u_4 ** n + r4 = 3u_4 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_4 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 3u_4 ** n + r4 = 3u_4 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_4 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 3u_4 ** n + r4 = 3u_4 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_4 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 3u_4 ** n + r4 = 3u_4 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_4 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 7u_4 ** n + r4 = 7u_4 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_4 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 7u_4 ** n + r4 = 7u_4 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_4 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 7u_4 ** n + r4 = 7u_4 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_4 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 7u_4 ** n + r4 = 7u_4 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_4 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 7u_4 ** n + r4 = 7u_4 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_4 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 7u_4 ** n + r4 = 7u_4 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_4 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 7u_4 ** n + r4 = 7u_4 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_4 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 7u_4 ** n + r4 = 7u_4 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_4 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 8u_4 ** n + r4 = 8u_4 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_4 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 8u_4 ** n + r4 = 8u_4 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_4 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 8u_4 ** n + r4 = 8u_4 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_4 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 8u_4 ** n + r4 = 8u_4 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_4 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 8u_4 ** n + r4 = 8u_4 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_4 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 8u_4 ** n + r4 = 8u_4 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_4 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 8u_4 ** n + r4 = 8u_4 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_4 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 8u_4 ** n + r4 = 8u_4 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_4 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 9u_4 ** n + r4 = 9u_4 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_4 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 9u_4 ** n + r4 = 9u_4 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_4 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 9u_4 ** n + r4 = 9u_4 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_4 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 9u_4 ** n + r4 = 9u_4 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_4 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 9u_4 ** n + r4 = 9u_4 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_4 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 9u_4 ** n + r4 = 9u_4 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_4 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 9u_4 ** n + r4 = 9u_4 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_4 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 9u_4 ** n + r4 = 9u_4 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_4 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 14u_4 ** n + r4 = 14u_4 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_4 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 14u_4 ** n + r4 = 14u_4 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_4 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 14u_4 ** n + r4 = 14u_4 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_4 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 14u_4 ** n + r4 = 14u_4 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_4 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 14u_4 ** n + r4 = 14u_4 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_4 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 14u_4 ** n + r4 = 14u_4 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_4 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 14u_4 ** n + r4 = 14u_4 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_4 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 14u_4 ** n + r4 = 14u_4 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_4 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 17u_4 ** n + r4 = 17u_4 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_4 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 17u_4 ** n + r4 = 17u_4 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_4 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 17u_4 ** n + r4 = 17u_4 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_4 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 17u_4 ** n + r4 = 17u_4 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_4 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 17u_4 ** n + r4 = 17u_4 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_4 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 17u_4 ** n + r4 = 17u_4 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_4 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 17u_4 ** n + r4 = 17u_4 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_4 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 17u_4 ** n + r4 = 17u_4 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_4 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 254u_4 ** n + r4 = 254u_4 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_4 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 254u_4 ** n + r4 = 254u_4 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_4 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 254u_4 ** n + r4 = 254u_4 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_4 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 254u_4 ** n + r4 = 254u_4 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_4 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 254u_4 ** n + r4 = 254u_4 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_4 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 254u_4 ** n + r4 = 254u_4 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_4 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 254u_4 ** n + r4 = 254u_4 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_4 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 254u_4 ** n + r4 = 254u_4 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_4 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 65535u_4 ** n + r4 = 65535u_4 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_4 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 65535u_4 ** n + r4 = 65535u_4 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_4 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 65535u_4 ** n + r4 = 65535u_4 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_4 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 65535u_4 ** n + r4 = 65535u_4 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_4 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 65535u_4 ** n + r4 = 65535u_4 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_4 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 65535u_4 ** n + r4 = 65535u_4 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_4 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 65535u_4 ** n + r4 = 65535u_4 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_4 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 65535u_4 ** n + r4 = 65535u_4 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_4 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 4294967295u_4 ** n + r4 = 4294967295u_4 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_4 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 4294967295u_4 ** n + r4 = 4294967295u_4 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_4 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 4294967295u_4 ** n + r4 = 4294967295u_4 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_4 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 4294967295u_4 ** n + r4 = 4294967295u_4 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_4 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 4294967295u_4 ** n + r4 = 4294967295u_4 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_4 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 4294967295u_4 ** n + r4 = 4294967295u_4 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_4 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 4294967295u_4 ** n + r4 = 4294967295u_4 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_4 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 4294967295u_4 ** n + r4 = 4294967295u_4 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + end subroutine tst_4_4 + subroutine tst_4_8 + unsigned(kind=4) :: x, r1, r2, r3, r4 + unsigned(kind=8) :: n + x = 0u_4 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 0u_4 ** n + r4 = 0u_4 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_4 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 0u_4 ** n + r4 = 0u_4 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_4 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 0u_4 ** n + r4 = 0u_4 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_4 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 0u_4 ** n + r4 = 0u_4 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_4 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 0u_4 ** n + r4 = 0u_4 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_4 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 0u_4 ** n + r4 = 0u_4 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_4 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 0u_4 ** n + r4 = 0u_4 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_4 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 0u_4 ** n + r4 = 0u_4 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_4 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 0u_4 ** n + r4 = 0u_4 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_4 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 1u_4 ** n + r4 = 1u_4 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_4 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 1u_4 ** n + r4 = 1u_4 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_4 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 1u_4 ** n + r4 = 1u_4 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_4 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 1u_4 ** n + r4 = 1u_4 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_4 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 1u_4 ** n + r4 = 1u_4 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_4 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 1u_4 ** n + r4 = 1u_4 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_4 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 1u_4 ** n + r4 = 1u_4 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_4 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 1u_4 ** n + r4 = 1u_4 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_4 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 1u_4 ** n + r4 = 1u_4 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_4 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 2u_4 ** n + r4 = 2u_4 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_4 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 2u_4 ** n + r4 = 2u_4 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_4 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 2u_4 ** n + r4 = 2u_4 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_4 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 2u_4 ** n + r4 = 2u_4 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_4 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 2u_4 ** n + r4 = 2u_4 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_4 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 2u_4 ** n + r4 = 2u_4 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_4 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 2u_4 ** n + r4 = 2u_4 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_4 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 2u_4 ** n + r4 = 2u_4 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_4 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 2u_4 ** n + r4 = 2u_4 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_4 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 3u_4 ** n + r4 = 3u_4 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_4 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 3u_4 ** n + r4 = 3u_4 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_4 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 3u_4 ** n + r4 = 3u_4 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_4 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 3u_4 ** n + r4 = 3u_4 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_4 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 3u_4 ** n + r4 = 3u_4 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_4 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 3u_4 ** n + r4 = 3u_4 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_4 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 3u_4 ** n + r4 = 3u_4 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_4 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 3u_4 ** n + r4 = 3u_4 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_4 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 3u_4 ** n + r4 = 3u_4 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_4 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 7u_4 ** n + r4 = 7u_4 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_4 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 7u_4 ** n + r4 = 7u_4 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_4 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 7u_4 ** n + r4 = 7u_4 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_4 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 7u_4 ** n + r4 = 7u_4 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_4 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 7u_4 ** n + r4 = 7u_4 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_4 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 7u_4 ** n + r4 = 7u_4 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_4 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 7u_4 ** n + r4 = 7u_4 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_4 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 7u_4 ** n + r4 = 7u_4 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_4 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 7u_4 ** n + r4 = 7u_4 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_4 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 8u_4 ** n + r4 = 8u_4 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_4 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 8u_4 ** n + r4 = 8u_4 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_4 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 8u_4 ** n + r4 = 8u_4 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_4 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 8u_4 ** n + r4 = 8u_4 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_4 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 8u_4 ** n + r4 = 8u_4 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_4 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 8u_4 ** n + r4 = 8u_4 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_4 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 8u_4 ** n + r4 = 8u_4 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_4 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 8u_4 ** n + r4 = 8u_4 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_4 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 8u_4 ** n + r4 = 8u_4 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_4 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 9u_4 ** n + r4 = 9u_4 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_4 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 9u_4 ** n + r4 = 9u_4 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_4 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 9u_4 ** n + r4 = 9u_4 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_4 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 9u_4 ** n + r4 = 9u_4 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_4 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 9u_4 ** n + r4 = 9u_4 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_4 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 9u_4 ** n + r4 = 9u_4 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_4 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 9u_4 ** n + r4 = 9u_4 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_4 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 9u_4 ** n + r4 = 9u_4 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_4 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 9u_4 ** n + r4 = 9u_4 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_4 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 14u_4 ** n + r4 = 14u_4 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_4 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 14u_4 ** n + r4 = 14u_4 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_4 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 14u_4 ** n + r4 = 14u_4 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_4 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 14u_4 ** n + r4 = 14u_4 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_4 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 14u_4 ** n + r4 = 14u_4 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_4 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 14u_4 ** n + r4 = 14u_4 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_4 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 14u_4 ** n + r4 = 14u_4 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_4 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 14u_4 ** n + r4 = 14u_4 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_4 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 14u_4 ** n + r4 = 14u_4 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_4 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 17u_4 ** n + r4 = 17u_4 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_4 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 17u_4 ** n + r4 = 17u_4 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_4 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 17u_4 ** n + r4 = 17u_4 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_4 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 17u_4 ** n + r4 = 17u_4 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_4 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 17u_4 ** n + r4 = 17u_4 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_4 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 17u_4 ** n + r4 = 17u_4 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_4 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 17u_4 ** n + r4 = 17u_4 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_4 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 17u_4 ** n + r4 = 17u_4 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_4 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 17u_4 ** n + r4 = 17u_4 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_4 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 254u_4 ** n + r4 = 254u_4 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_4 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 254u_4 ** n + r4 = 254u_4 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_4 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 254u_4 ** n + r4 = 254u_4 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_4 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 254u_4 ** n + r4 = 254u_4 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_4 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 254u_4 ** n + r4 = 254u_4 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_4 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 254u_4 ** n + r4 = 254u_4 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_4 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 254u_4 ** n + r4 = 254u_4 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_4 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 254u_4 ** n + r4 = 254u_4 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_4 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 254u_4 ** n + r4 = 254u_4 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_4 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 65535u_4 ** n + r4 = 65535u_4 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_4 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 65535u_4 ** n + r4 = 65535u_4 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_4 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 65535u_4 ** n + r4 = 65535u_4 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_4 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 65535u_4 ** n + r4 = 65535u_4 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_4 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 65535u_4 ** n + r4 = 65535u_4 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_4 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 65535u_4 ** n + r4 = 65535u_4 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_4 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 65535u_4 ** n + r4 = 65535u_4 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_4 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 65535u_4 ** n + r4 = 65535u_4 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_4 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 65535u_4 ** n + r4 = 65535u_4 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_4 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 4294967295u_4 ** n + r4 = 4294967295u_4 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_4 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 4294967295u_4 ** n + r4 = 4294967295u_4 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_4 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 4294967295u_4 ** n + r4 = 4294967295u_4 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_4 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 4294967295u_4 ** n + r4 = 4294967295u_4 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_4 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 4294967295u_4 ** n + r4 = 4294967295u_4 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_4 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 4294967295u_4 ** n + r4 = 4294967295u_4 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_4 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 4294967295u_4 ** n + r4 = 4294967295u_4 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_4 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 4294967295u_4 ** n + r4 = 4294967295u_4 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_4 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 4294967295u_4 ** n + r4 = 4294967295u_4 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + end subroutine tst_4_8 + subroutine tst_8_1 + unsigned(kind=8) :: x, r1, r2, r3, r4 + unsigned(kind=1) :: n + x = 0u_8 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 0u_8 ** n + r4 = 0u_8 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_8 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 0u_8 ** n + r4 = 0u_8 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_8 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 0u_8 ** n + r4 = 0u_8 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_8 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 0u_8 ** n + r4 = 0u_8 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_8 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 0u_8 ** n + r4 = 0u_8 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_8 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 0u_8 ** n + r4 = 0u_8 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_8 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 0u_8 ** n + r4 = 0u_8 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_8 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 1u_8 ** n + r4 = 1u_8 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_8 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 1u_8 ** n + r4 = 1u_8 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_8 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 1u_8 ** n + r4 = 1u_8 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_8 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 1u_8 ** n + r4 = 1u_8 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_8 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 1u_8 ** n + r4 = 1u_8 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_8 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 1u_8 ** n + r4 = 1u_8 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_8 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 1u_8 ** n + r4 = 1u_8 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_8 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 2u_8 ** n + r4 = 2u_8 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_8 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 2u_8 ** n + r4 = 2u_8 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_8 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 2u_8 ** n + r4 = 2u_8 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_8 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 2u_8 ** n + r4 = 2u_8 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_8 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 2u_8 ** n + r4 = 2u_8 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_8 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 2u_8 ** n + r4 = 2u_8 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_8 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 2u_8 ** n + r4 = 2u_8 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_8 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 3u_8 ** n + r4 = 3u_8 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_8 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 3u_8 ** n + r4 = 3u_8 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_8 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 3u_8 ** n + r4 = 3u_8 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_8 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 3u_8 ** n + r4 = 3u_8 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_8 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 3u_8 ** n + r4 = 3u_8 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_8 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 3u_8 ** n + r4 = 3u_8 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_8 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 3u_8 ** n + r4 = 3u_8 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_8 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 7u_8 ** n + r4 = 7u_8 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_8 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 7u_8 ** n + r4 = 7u_8 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_8 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 7u_8 ** n + r4 = 7u_8 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_8 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 7u_8 ** n + r4 = 7u_8 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_8 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 7u_8 ** n + r4 = 7u_8 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_8 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 7u_8 ** n + r4 = 7u_8 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_8 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 7u_8 ** n + r4 = 7u_8 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_8 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 8u_8 ** n + r4 = 8u_8 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_8 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 8u_8 ** n + r4 = 8u_8 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_8 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 8u_8 ** n + r4 = 8u_8 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_8 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 8u_8 ** n + r4 = 8u_8 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_8 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 8u_8 ** n + r4 = 8u_8 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_8 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 8u_8 ** n + r4 = 8u_8 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_8 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 8u_8 ** n + r4 = 8u_8 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_8 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 9u_8 ** n + r4 = 9u_8 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_8 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 9u_8 ** n + r4 = 9u_8 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_8 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 9u_8 ** n + r4 = 9u_8 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_8 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 9u_8 ** n + r4 = 9u_8 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_8 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 9u_8 ** n + r4 = 9u_8 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_8 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 9u_8 ** n + r4 = 9u_8 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_8 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 9u_8 ** n + r4 = 9u_8 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_8 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 14u_8 ** n + r4 = 14u_8 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_8 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 14u_8 ** n + r4 = 14u_8 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_8 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 14u_8 ** n + r4 = 14u_8 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_8 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 14u_8 ** n + r4 = 14u_8 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_8 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 14u_8 ** n + r4 = 14u_8 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_8 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 14u_8 ** n + r4 = 14u_8 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_8 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 14u_8 ** n + r4 = 14u_8 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_8 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 17u_8 ** n + r4 = 17u_8 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_8 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 17u_8 ** n + r4 = 17u_8 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_8 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 17u_8 ** n + r4 = 17u_8 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_8 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 17u_8 ** n + r4 = 17u_8 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_8 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 17u_8 ** n + r4 = 17u_8 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_8 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 17u_8 ** n + r4 = 17u_8 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_8 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 17u_8 ** n + r4 = 17u_8 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_8 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 254u_8 ** n + r4 = 254u_8 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_8 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 254u_8 ** n + r4 = 254u_8 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_8 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 254u_8 ** n + r4 = 254u_8 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_8 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 254u_8 ** n + r4 = 254u_8 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_8 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 254u_8 ** n + r4 = 254u_8 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_8 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 254u_8 ** n + r4 = 254u_8 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_8 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 254u_8 ** n + r4 = 254u_8 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_8 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 65535u_8 ** n + r4 = 65535u_8 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_8 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 65535u_8 ** n + r4 = 65535u_8 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_8 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 65535u_8 ** n + r4 = 65535u_8 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_8 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 65535u_8 ** n + r4 = 65535u_8 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_8 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 65535u_8 ** n + r4 = 65535u_8 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_8 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 65535u_8 ** n + r4 = 65535u_8 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_8 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 65535u_8 ** n + r4 = 65535u_8 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_8 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 4294967295u_8 ** n + r4 = 4294967295u_8 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_8 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 4294967295u_8 ** n + r4 = 4294967295u_8 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_8 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 4294967295u_8 ** n + r4 = 4294967295u_8 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_8 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 4294967295u_8 ** n + r4 = 4294967295u_8 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_8 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 4294967295u_8 ** n + r4 = 4294967295u_8 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_8 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 4294967295u_8 ** n + r4 = 4294967295u_8 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_8 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 4294967295u_8 ** n + r4 = 4294967295u_8 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_8 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 18446744073709551615u_8 ** n + r4 = 18446744073709551615u_8 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_8 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 18446744073709551615u_8 ** n + r4 = 18446744073709551615u_8 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_8 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 18446744073709551615u_8 ** n + r4 = 18446744073709551615u_8 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_8 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 18446744073709551615u_8 ** n + r4 = 18446744073709551615u_8 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_8 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 18446744073709551615u_8 ** n + r4 = 18446744073709551615u_8 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_8 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 18446744073709551615u_8 ** n + r4 = 18446744073709551615u_8 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_8 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 18446744073709551615u_8 ** n + r4 = 18446744073709551615u_8 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + end subroutine tst_8_1 + subroutine tst_8_2 + unsigned(kind=8) :: x, r1, r2, r3, r4 + unsigned(kind=2) :: n + x = 0u_8 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 0u_8 ** n + r4 = 0u_8 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_8 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 0u_8 ** n + r4 = 0u_8 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_8 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 0u_8 ** n + r4 = 0u_8 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_8 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 0u_8 ** n + r4 = 0u_8 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_8 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 0u_8 ** n + r4 = 0u_8 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_8 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 0u_8 ** n + r4 = 0u_8 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_8 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 0u_8 ** n + r4 = 0u_8 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_8 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 0u_8 ** n + r4 = 0u_8 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_8 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 1u_8 ** n + r4 = 1u_8 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_8 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 1u_8 ** n + r4 = 1u_8 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_8 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 1u_8 ** n + r4 = 1u_8 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_8 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 1u_8 ** n + r4 = 1u_8 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_8 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 1u_8 ** n + r4 = 1u_8 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_8 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 1u_8 ** n + r4 = 1u_8 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_8 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 1u_8 ** n + r4 = 1u_8 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_8 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 1u_8 ** n + r4 = 1u_8 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_8 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 2u_8 ** n + r4 = 2u_8 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_8 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 2u_8 ** n + r4 = 2u_8 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_8 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 2u_8 ** n + r4 = 2u_8 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_8 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 2u_8 ** n + r4 = 2u_8 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_8 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 2u_8 ** n + r4 = 2u_8 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_8 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 2u_8 ** n + r4 = 2u_8 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_8 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 2u_8 ** n + r4 = 2u_8 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_8 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 2u_8 ** n + r4 = 2u_8 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_8 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 3u_8 ** n + r4 = 3u_8 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_8 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 3u_8 ** n + r4 = 3u_8 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_8 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 3u_8 ** n + r4 = 3u_8 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_8 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 3u_8 ** n + r4 = 3u_8 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_8 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 3u_8 ** n + r4 = 3u_8 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_8 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 3u_8 ** n + r4 = 3u_8 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_8 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 3u_8 ** n + r4 = 3u_8 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_8 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 3u_8 ** n + r4 = 3u_8 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_8 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 7u_8 ** n + r4 = 7u_8 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_8 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 7u_8 ** n + r4 = 7u_8 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_8 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 7u_8 ** n + r4 = 7u_8 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_8 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 7u_8 ** n + r4 = 7u_8 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_8 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 7u_8 ** n + r4 = 7u_8 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_8 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 7u_8 ** n + r4 = 7u_8 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_8 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 7u_8 ** n + r4 = 7u_8 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_8 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 7u_8 ** n + r4 = 7u_8 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_8 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 8u_8 ** n + r4 = 8u_8 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_8 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 8u_8 ** n + r4 = 8u_8 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_8 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 8u_8 ** n + r4 = 8u_8 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_8 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 8u_8 ** n + r4 = 8u_8 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_8 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 8u_8 ** n + r4 = 8u_8 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_8 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 8u_8 ** n + r4 = 8u_8 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_8 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 8u_8 ** n + r4 = 8u_8 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_8 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 8u_8 ** n + r4 = 8u_8 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_8 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 9u_8 ** n + r4 = 9u_8 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_8 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 9u_8 ** n + r4 = 9u_8 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_8 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 9u_8 ** n + r4 = 9u_8 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_8 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 9u_8 ** n + r4 = 9u_8 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_8 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 9u_8 ** n + r4 = 9u_8 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_8 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 9u_8 ** n + r4 = 9u_8 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_8 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 9u_8 ** n + r4 = 9u_8 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_8 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 9u_8 ** n + r4 = 9u_8 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_8 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 14u_8 ** n + r4 = 14u_8 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_8 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 14u_8 ** n + r4 = 14u_8 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_8 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 14u_8 ** n + r4 = 14u_8 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_8 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 14u_8 ** n + r4 = 14u_8 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_8 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 14u_8 ** n + r4 = 14u_8 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_8 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 14u_8 ** n + r4 = 14u_8 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_8 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 14u_8 ** n + r4 = 14u_8 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_8 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 14u_8 ** n + r4 = 14u_8 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_8 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 17u_8 ** n + r4 = 17u_8 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_8 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 17u_8 ** n + r4 = 17u_8 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_8 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 17u_8 ** n + r4 = 17u_8 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_8 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 17u_8 ** n + r4 = 17u_8 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_8 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 17u_8 ** n + r4 = 17u_8 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_8 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 17u_8 ** n + r4 = 17u_8 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_8 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 17u_8 ** n + r4 = 17u_8 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_8 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 17u_8 ** n + r4 = 17u_8 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_8 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 254u_8 ** n + r4 = 254u_8 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_8 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 254u_8 ** n + r4 = 254u_8 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_8 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 254u_8 ** n + r4 = 254u_8 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_8 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 254u_8 ** n + r4 = 254u_8 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_8 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 254u_8 ** n + r4 = 254u_8 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_8 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 254u_8 ** n + r4 = 254u_8 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_8 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 254u_8 ** n + r4 = 254u_8 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_8 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 254u_8 ** n + r4 = 254u_8 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_8 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 65535u_8 ** n + r4 = 65535u_8 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_8 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 65535u_8 ** n + r4 = 65535u_8 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_8 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 65535u_8 ** n + r4 = 65535u_8 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_8 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 65535u_8 ** n + r4 = 65535u_8 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_8 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 65535u_8 ** n + r4 = 65535u_8 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_8 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 65535u_8 ** n + r4 = 65535u_8 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_8 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 65535u_8 ** n + r4 = 65535u_8 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_8 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 65535u_8 ** n + r4 = 65535u_8 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_8 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 4294967295u_8 ** n + r4 = 4294967295u_8 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_8 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 4294967295u_8 ** n + r4 = 4294967295u_8 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_8 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 4294967295u_8 ** n + r4 = 4294967295u_8 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_8 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 4294967295u_8 ** n + r4 = 4294967295u_8 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_8 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 4294967295u_8 ** n + r4 = 4294967295u_8 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_8 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 4294967295u_8 ** n + r4 = 4294967295u_8 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_8 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 4294967295u_8 ** n + r4 = 4294967295u_8 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_8 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 4294967295u_8 ** n + r4 = 4294967295u_8 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_8 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 18446744073709551615u_8 ** n + r4 = 18446744073709551615u_8 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_8 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 18446744073709551615u_8 ** n + r4 = 18446744073709551615u_8 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_8 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 18446744073709551615u_8 ** n + r4 = 18446744073709551615u_8 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_8 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 18446744073709551615u_8 ** n + r4 = 18446744073709551615u_8 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_8 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 18446744073709551615u_8 ** n + r4 = 18446744073709551615u_8 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_8 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 18446744073709551615u_8 ** n + r4 = 18446744073709551615u_8 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_8 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 18446744073709551615u_8 ** n + r4 = 18446744073709551615u_8 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_8 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 18446744073709551615u_8 ** n + r4 = 18446744073709551615u_8 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + end subroutine tst_8_2 + subroutine tst_8_4 + unsigned(kind=8) :: x, r1, r2, r3, r4 + unsigned(kind=4) :: n + x = 0u_8 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 0u_8 ** n + r4 = 0u_8 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_8 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 0u_8 ** n + r4 = 0u_8 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_8 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 0u_8 ** n + r4 = 0u_8 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_8 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 0u_8 ** n + r4 = 0u_8 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_8 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 0u_8 ** n + r4 = 0u_8 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_8 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 0u_8 ** n + r4 = 0u_8 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_8 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 0u_8 ** n + r4 = 0u_8 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_8 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 0u_8 ** n + r4 = 0u_8 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_8 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 1u_8 ** n + r4 = 1u_8 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_8 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 1u_8 ** n + r4 = 1u_8 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_8 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 1u_8 ** n + r4 = 1u_8 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_8 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 1u_8 ** n + r4 = 1u_8 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_8 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 1u_8 ** n + r4 = 1u_8 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_8 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 1u_8 ** n + r4 = 1u_8 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_8 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 1u_8 ** n + r4 = 1u_8 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_8 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 1u_8 ** n + r4 = 1u_8 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_8 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 2u_8 ** n + r4 = 2u_8 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_8 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 2u_8 ** n + r4 = 2u_8 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_8 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 2u_8 ** n + r4 = 2u_8 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_8 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 2u_8 ** n + r4 = 2u_8 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_8 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 2u_8 ** n + r4 = 2u_8 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_8 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 2u_8 ** n + r4 = 2u_8 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_8 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 2u_8 ** n + r4 = 2u_8 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_8 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 2u_8 ** n + r4 = 2u_8 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_8 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 3u_8 ** n + r4 = 3u_8 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_8 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 3u_8 ** n + r4 = 3u_8 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_8 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 3u_8 ** n + r4 = 3u_8 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_8 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 3u_8 ** n + r4 = 3u_8 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_8 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 3u_8 ** n + r4 = 3u_8 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_8 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 3u_8 ** n + r4 = 3u_8 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_8 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 3u_8 ** n + r4 = 3u_8 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_8 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 3u_8 ** n + r4 = 3u_8 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_8 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 7u_8 ** n + r4 = 7u_8 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_8 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 7u_8 ** n + r4 = 7u_8 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_8 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 7u_8 ** n + r4 = 7u_8 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_8 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 7u_8 ** n + r4 = 7u_8 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_8 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 7u_8 ** n + r4 = 7u_8 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_8 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 7u_8 ** n + r4 = 7u_8 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_8 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 7u_8 ** n + r4 = 7u_8 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_8 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 7u_8 ** n + r4 = 7u_8 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_8 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 8u_8 ** n + r4 = 8u_8 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_8 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 8u_8 ** n + r4 = 8u_8 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_8 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 8u_8 ** n + r4 = 8u_8 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_8 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 8u_8 ** n + r4 = 8u_8 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_8 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 8u_8 ** n + r4 = 8u_8 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_8 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 8u_8 ** n + r4 = 8u_8 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_8 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 8u_8 ** n + r4 = 8u_8 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_8 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 8u_8 ** n + r4 = 8u_8 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_8 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 9u_8 ** n + r4 = 9u_8 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_8 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 9u_8 ** n + r4 = 9u_8 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_8 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 9u_8 ** n + r4 = 9u_8 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_8 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 9u_8 ** n + r4 = 9u_8 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_8 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 9u_8 ** n + r4 = 9u_8 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_8 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 9u_8 ** n + r4 = 9u_8 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_8 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 9u_8 ** n + r4 = 9u_8 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_8 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 9u_8 ** n + r4 = 9u_8 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_8 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 14u_8 ** n + r4 = 14u_8 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_8 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 14u_8 ** n + r4 = 14u_8 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_8 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 14u_8 ** n + r4 = 14u_8 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_8 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 14u_8 ** n + r4 = 14u_8 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_8 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 14u_8 ** n + r4 = 14u_8 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_8 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 14u_8 ** n + r4 = 14u_8 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_8 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 14u_8 ** n + r4 = 14u_8 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_8 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 14u_8 ** n + r4 = 14u_8 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_8 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 17u_8 ** n + r4 = 17u_8 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_8 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 17u_8 ** n + r4 = 17u_8 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_8 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 17u_8 ** n + r4 = 17u_8 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_8 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 17u_8 ** n + r4 = 17u_8 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_8 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 17u_8 ** n + r4 = 17u_8 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_8 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 17u_8 ** n + r4 = 17u_8 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_8 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 17u_8 ** n + r4 = 17u_8 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_8 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 17u_8 ** n + r4 = 17u_8 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_8 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 254u_8 ** n + r4 = 254u_8 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_8 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 254u_8 ** n + r4 = 254u_8 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_8 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 254u_8 ** n + r4 = 254u_8 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_8 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 254u_8 ** n + r4 = 254u_8 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_8 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 254u_8 ** n + r4 = 254u_8 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_8 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 254u_8 ** n + r4 = 254u_8 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_8 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 254u_8 ** n + r4 = 254u_8 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_8 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 254u_8 ** n + r4 = 254u_8 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_8 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 65535u_8 ** n + r4 = 65535u_8 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_8 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 65535u_8 ** n + r4 = 65535u_8 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_8 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 65535u_8 ** n + r4 = 65535u_8 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_8 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 65535u_8 ** n + r4 = 65535u_8 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_8 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 65535u_8 ** n + r4 = 65535u_8 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_8 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 65535u_8 ** n + r4 = 65535u_8 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_8 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 65535u_8 ** n + r4 = 65535u_8 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_8 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 65535u_8 ** n + r4 = 65535u_8 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_8 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 4294967295u_8 ** n + r4 = 4294967295u_8 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_8 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 4294967295u_8 ** n + r4 = 4294967295u_8 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_8 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 4294967295u_8 ** n + r4 = 4294967295u_8 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_8 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 4294967295u_8 ** n + r4 = 4294967295u_8 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_8 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 4294967295u_8 ** n + r4 = 4294967295u_8 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_8 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 4294967295u_8 ** n + r4 = 4294967295u_8 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_8 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 4294967295u_8 ** n + r4 = 4294967295u_8 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_8 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 4294967295u_8 ** n + r4 = 4294967295u_8 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_8 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 18446744073709551615u_8 ** n + r4 = 18446744073709551615u_8 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_8 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 18446744073709551615u_8 ** n + r4 = 18446744073709551615u_8 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_8 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 18446744073709551615u_8 ** n + r4 = 18446744073709551615u_8 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_8 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 18446744073709551615u_8 ** n + r4 = 18446744073709551615u_8 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_8 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 18446744073709551615u_8 ** n + r4 = 18446744073709551615u_8 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_8 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 18446744073709551615u_8 ** n + r4 = 18446744073709551615u_8 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_8 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 18446744073709551615u_8 ** n + r4 = 18446744073709551615u_8 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_8 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 18446744073709551615u_8 ** n + r4 = 18446744073709551615u_8 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + end subroutine tst_8_4 + subroutine tst_8_8 + unsigned(kind=8) :: x, r1, r2, r3, r4 + unsigned(kind=8) :: n + x = 0u_8 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 0u_8 ** n + r4 = 0u_8 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_8 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 0u_8 ** n + r4 = 0u_8 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_8 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 0u_8 ** n + r4 = 0u_8 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_8 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 0u_8 ** n + r4 = 0u_8 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_8 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 0u_8 ** n + r4 = 0u_8 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_8 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 0u_8 ** n + r4 = 0u_8 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_8 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 0u_8 ** n + r4 = 0u_8 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_8 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 0u_8 ** n + r4 = 0u_8 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_8 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 0u_8 ** n + r4 = 0u_8 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_8 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 1u_8 ** n + r4 = 1u_8 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_8 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 1u_8 ** n + r4 = 1u_8 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_8 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 1u_8 ** n + r4 = 1u_8 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_8 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 1u_8 ** n + r4 = 1u_8 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_8 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 1u_8 ** n + r4 = 1u_8 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_8 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 1u_8 ** n + r4 = 1u_8 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_8 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 1u_8 ** n + r4 = 1u_8 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_8 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 1u_8 ** n + r4 = 1u_8 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_8 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 1u_8 ** n + r4 = 1u_8 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_8 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 2u_8 ** n + r4 = 2u_8 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_8 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 2u_8 ** n + r4 = 2u_8 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_8 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 2u_8 ** n + r4 = 2u_8 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_8 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 2u_8 ** n + r4 = 2u_8 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_8 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 2u_8 ** n + r4 = 2u_8 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_8 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 2u_8 ** n + r4 = 2u_8 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_8 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 2u_8 ** n + r4 = 2u_8 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_8 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 2u_8 ** n + r4 = 2u_8 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_8 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 2u_8 ** n + r4 = 2u_8 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_8 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 3u_8 ** n + r4 = 3u_8 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_8 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 3u_8 ** n + r4 = 3u_8 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_8 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 3u_8 ** n + r4 = 3u_8 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_8 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 3u_8 ** n + r4 = 3u_8 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_8 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 3u_8 ** n + r4 = 3u_8 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_8 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 3u_8 ** n + r4 = 3u_8 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_8 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 3u_8 ** n + r4 = 3u_8 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_8 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 3u_8 ** n + r4 = 3u_8 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_8 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 3u_8 ** n + r4 = 3u_8 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_8 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 7u_8 ** n + r4 = 7u_8 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_8 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 7u_8 ** n + r4 = 7u_8 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_8 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 7u_8 ** n + r4 = 7u_8 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_8 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 7u_8 ** n + r4 = 7u_8 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_8 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 7u_8 ** n + r4 = 7u_8 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_8 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 7u_8 ** n + r4 = 7u_8 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_8 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 7u_8 ** n + r4 = 7u_8 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_8 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 7u_8 ** n + r4 = 7u_8 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_8 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 7u_8 ** n + r4 = 7u_8 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_8 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 8u_8 ** n + r4 = 8u_8 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_8 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 8u_8 ** n + r4 = 8u_8 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_8 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 8u_8 ** n + r4 = 8u_8 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_8 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 8u_8 ** n + r4 = 8u_8 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_8 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 8u_8 ** n + r4 = 8u_8 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_8 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 8u_8 ** n + r4 = 8u_8 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_8 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 8u_8 ** n + r4 = 8u_8 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_8 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 8u_8 ** n + r4 = 8u_8 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_8 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 8u_8 ** n + r4 = 8u_8 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_8 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 9u_8 ** n + r4 = 9u_8 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_8 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 9u_8 ** n + r4 = 9u_8 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_8 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 9u_8 ** n + r4 = 9u_8 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_8 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 9u_8 ** n + r4 = 9u_8 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_8 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 9u_8 ** n + r4 = 9u_8 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_8 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 9u_8 ** n + r4 = 9u_8 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_8 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 9u_8 ** n + r4 = 9u_8 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_8 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 9u_8 ** n + r4 = 9u_8 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_8 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 9u_8 ** n + r4 = 9u_8 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_8 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 14u_8 ** n + r4 = 14u_8 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_8 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 14u_8 ** n + r4 = 14u_8 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_8 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 14u_8 ** n + r4 = 14u_8 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_8 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 14u_8 ** n + r4 = 14u_8 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_8 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 14u_8 ** n + r4 = 14u_8 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_8 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 14u_8 ** n + r4 = 14u_8 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_8 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 14u_8 ** n + r4 = 14u_8 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_8 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 14u_8 ** n + r4 = 14u_8 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_8 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 14u_8 ** n + r4 = 14u_8 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_8 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 17u_8 ** n + r4 = 17u_8 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_8 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 17u_8 ** n + r4 = 17u_8 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_8 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 17u_8 ** n + r4 = 17u_8 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_8 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 17u_8 ** n + r4 = 17u_8 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_8 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 17u_8 ** n + r4 = 17u_8 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_8 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 17u_8 ** n + r4 = 17u_8 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_8 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 17u_8 ** n + r4 = 17u_8 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_8 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 17u_8 ** n + r4 = 17u_8 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_8 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 17u_8 ** n + r4 = 17u_8 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_8 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 254u_8 ** n + r4 = 254u_8 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_8 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 254u_8 ** n + r4 = 254u_8 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_8 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 254u_8 ** n + r4 = 254u_8 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_8 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 254u_8 ** n + r4 = 254u_8 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_8 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 254u_8 ** n + r4 = 254u_8 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_8 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 254u_8 ** n + r4 = 254u_8 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_8 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 254u_8 ** n + r4 = 254u_8 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_8 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 254u_8 ** n + r4 = 254u_8 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_8 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 254u_8 ** n + r4 = 254u_8 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_8 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 65535u_8 ** n + r4 = 65535u_8 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_8 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 65535u_8 ** n + r4 = 65535u_8 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_8 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 65535u_8 ** n + r4 = 65535u_8 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_8 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 65535u_8 ** n + r4 = 65535u_8 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_8 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 65535u_8 ** n + r4 = 65535u_8 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_8 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 65535u_8 ** n + r4 = 65535u_8 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_8 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 65535u_8 ** n + r4 = 65535u_8 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_8 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 65535u_8 ** n + r4 = 65535u_8 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_8 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 65535u_8 ** n + r4 = 65535u_8 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_8 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 4294967295u_8 ** n + r4 = 4294967295u_8 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_8 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 4294967295u_8 ** n + r4 = 4294967295u_8 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_8 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 4294967295u_8 ** n + r4 = 4294967295u_8 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_8 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 4294967295u_8 ** n + r4 = 4294967295u_8 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_8 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 4294967295u_8 ** n + r4 = 4294967295u_8 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_8 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 4294967295u_8 ** n + r4 = 4294967295u_8 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_8 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 4294967295u_8 ** n + r4 = 4294967295u_8 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_8 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 4294967295u_8 ** n + r4 = 4294967295u_8 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_8 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 4294967295u_8 ** n + r4 = 4294967295u_8 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_8 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 18446744073709551615u_8 ** n + r4 = 18446744073709551615u_8 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_8 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 18446744073709551615u_8 ** n + r4 = 18446744073709551615u_8 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_8 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 18446744073709551615u_8 ** n + r4 = 18446744073709551615u_8 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_8 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 18446744073709551615u_8 ** n + r4 = 18446744073709551615u_8 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_8 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 18446744073709551615u_8 ** n + r4 = 18446744073709551615u_8 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_8 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 18446744073709551615u_8 ** n + r4 = 18446744073709551615u_8 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_8 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 18446744073709551615u_8 ** n + r4 = 18446744073709551615u_8 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_8 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 18446744073709551615u_8 ** n + r4 = 18446744073709551615u_8 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_8 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 18446744073709551615u_8 ** n + r4 = 18446744073709551615u_8 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + end subroutine tst_8_8 +end program memain diff --git a/gcc/testsuite/gfortran.dg/unsigned_44.f90 b/gcc/testsuite/gfortran.dg/unsigned_44.f90 new file mode 100644 index 0000000..b25cbeb --- /dev/null +++ b/gcc/testsuite/gfortran.dg/unsigned_44.f90 @@ -0,0 +1,8436 @@ +! { dg-do run } +! { dg-options -funsigned } +! { dg-require-effective-target fortran_integer_16 } +program memain + implicit none + call tst_1_16 + call tst_2_16 + call tst_4_16 + call tst_8_16 + call tst_16_1 + call tst_16_2 + call tst_16_4 + call tst_16_8 + call tst_16_16 +contains + subroutine tst_1_16 + unsigned(kind=1) :: x, r1, r2, r3, r4 + unsigned(kind=16) :: n + x = 0u_1 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 0u_1 ** n + r4 = 0u_1 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_1 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 0u_1 ** n + r4 = 0u_1 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_1 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 0u_1 ** n + r4 = 0u_1 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_1 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 0u_1 ** n + r4 = 0u_1 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_1 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 0u_1 ** n + r4 = 0u_1 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_1 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 0u_1 ** n + r4 = 0u_1 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_1 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 0u_1 ** n + r4 = 0u_1 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_1 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 0u_1 ** n + r4 = 0u_1 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_1 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 0u_1 ** n + r4 = 0u_1 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_1 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 0u_1 ** n + r4 = 0u_1 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_1 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 1u_1 ** n + r4 = 1u_1 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_1 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 1u_1 ** n + r4 = 1u_1 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_1 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 1u_1 ** n + r4 = 1u_1 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_1 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 1u_1 ** n + r4 = 1u_1 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_1 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 1u_1 ** n + r4 = 1u_1 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_1 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 1u_1 ** n + r4 = 1u_1 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_1 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 1u_1 ** n + r4 = 1u_1 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_1 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 1u_1 ** n + r4 = 1u_1 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_1 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 1u_1 ** n + r4 = 1u_1 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_1 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 1u_1 ** n + r4 = 1u_1 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_1 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 2u_1 ** n + r4 = 2u_1 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_1 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 2u_1 ** n + r4 = 2u_1 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_1 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 2u_1 ** n + r4 = 2u_1 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_1 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 2u_1 ** n + r4 = 2u_1 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_1 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 2u_1 ** n + r4 = 2u_1 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_1 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 2u_1 ** n + r4 = 2u_1 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_1 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 2u_1 ** n + r4 = 2u_1 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_1 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 2u_1 ** n + r4 = 2u_1 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_1 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 2u_1 ** n + r4 = 2u_1 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_1 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 2u_1 ** n + r4 = 2u_1 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_1 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 3u_1 ** n + r4 = 3u_1 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_1 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 3u_1 ** n + r4 = 3u_1 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_1 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 3u_1 ** n + r4 = 3u_1 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_1 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 3u_1 ** n + r4 = 3u_1 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_1 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 3u_1 ** n + r4 = 3u_1 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_1 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 3u_1 ** n + r4 = 3u_1 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_1 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 3u_1 ** n + r4 = 3u_1 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_1 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 3u_1 ** n + r4 = 3u_1 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_1 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 3u_1 ** n + r4 = 3u_1 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_1 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 3u_1 ** n + r4 = 3u_1 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_1 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 7u_1 ** n + r4 = 7u_1 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_1 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 7u_1 ** n + r4 = 7u_1 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_1 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 7u_1 ** n + r4 = 7u_1 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_1 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 7u_1 ** n + r4 = 7u_1 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_1 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 7u_1 ** n + r4 = 7u_1 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_1 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 7u_1 ** n + r4 = 7u_1 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_1 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 7u_1 ** n + r4 = 7u_1 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_1 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 7u_1 ** n + r4 = 7u_1 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_1 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 7u_1 ** n + r4 = 7u_1 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_1 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 7u_1 ** n + r4 = 7u_1 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_1 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 8u_1 ** n + r4 = 8u_1 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_1 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 8u_1 ** n + r4 = 8u_1 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_1 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 8u_1 ** n + r4 = 8u_1 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_1 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 8u_1 ** n + r4 = 8u_1 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_1 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 8u_1 ** n + r4 = 8u_1 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_1 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 8u_1 ** n + r4 = 8u_1 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_1 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 8u_1 ** n + r4 = 8u_1 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_1 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 8u_1 ** n + r4 = 8u_1 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_1 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 8u_1 ** n + r4 = 8u_1 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_1 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 8u_1 ** n + r4 = 8u_1 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_1 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 9u_1 ** n + r4 = 9u_1 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_1 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 9u_1 ** n + r4 = 9u_1 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_1 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 9u_1 ** n + r4 = 9u_1 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_1 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 9u_1 ** n + r4 = 9u_1 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_1 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 9u_1 ** n + r4 = 9u_1 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_1 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 9u_1 ** n + r4 = 9u_1 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_1 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 9u_1 ** n + r4 = 9u_1 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_1 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 9u_1 ** n + r4 = 9u_1 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_1 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 9u_1 ** n + r4 = 9u_1 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_1 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 9u_1 ** n + r4 = 9u_1 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_1 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 14u_1 ** n + r4 = 14u_1 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_1 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 14u_1 ** n + r4 = 14u_1 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_1 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 14u_1 ** n + r4 = 14u_1 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_1 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 14u_1 ** n + r4 = 14u_1 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_1 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 14u_1 ** n + r4 = 14u_1 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_1 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 14u_1 ** n + r4 = 14u_1 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_1 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 14u_1 ** n + r4 = 14u_1 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_1 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 14u_1 ** n + r4 = 14u_1 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_1 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 14u_1 ** n + r4 = 14u_1 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_1 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 14u_1 ** n + r4 = 14u_1 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_1 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 17u_1 ** n + r4 = 17u_1 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_1 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 17u_1 ** n + r4 = 17u_1 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_1 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 17u_1 ** n + r4 = 17u_1 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_1 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 17u_1 ** n + r4 = 17u_1 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_1 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 17u_1 ** n + r4 = 17u_1 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_1 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 17u_1 ** n + r4 = 17u_1 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_1 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 17u_1 ** n + r4 = 17u_1 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_1 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 17u_1 ** n + r4 = 17u_1 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_1 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 17u_1 ** n + r4 = 17u_1 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_1 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 17u_1 ** n + r4 = 17u_1 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_1 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 254u_1 ** n + r4 = 254u_1 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_1 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 254u_1 ** n + r4 = 254u_1 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_1 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 254u_1 ** n + r4 = 254u_1 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_1 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 254u_1 ** n + r4 = 254u_1 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_1 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 254u_1 ** n + r4 = 254u_1 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_1 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 254u_1 ** n + r4 = 254u_1 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_1 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 254u_1 ** n + r4 = 254u_1 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_1 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 254u_1 ** n + r4 = 254u_1 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_1 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 254u_1 ** n + r4 = 254u_1 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_1 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 254u_1 ** n + r4 = 254u_1 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + end subroutine tst_1_16 + subroutine tst_2_16 + unsigned(kind=2) :: x, r1, r2, r3, r4 + unsigned(kind=16) :: n + x = 0u_2 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 0u_2 ** n + r4 = 0u_2 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_2 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 0u_2 ** n + r4 = 0u_2 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_2 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 0u_2 ** n + r4 = 0u_2 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_2 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 0u_2 ** n + r4 = 0u_2 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_2 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 0u_2 ** n + r4 = 0u_2 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_2 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 0u_2 ** n + r4 = 0u_2 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_2 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 0u_2 ** n + r4 = 0u_2 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_2 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 0u_2 ** n + r4 = 0u_2 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_2 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 0u_2 ** n + r4 = 0u_2 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_2 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 0u_2 ** n + r4 = 0u_2 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_2 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 1u_2 ** n + r4 = 1u_2 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_2 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 1u_2 ** n + r4 = 1u_2 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_2 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 1u_2 ** n + r4 = 1u_2 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_2 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 1u_2 ** n + r4 = 1u_2 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_2 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 1u_2 ** n + r4 = 1u_2 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_2 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 1u_2 ** n + r4 = 1u_2 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_2 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 1u_2 ** n + r4 = 1u_2 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_2 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 1u_2 ** n + r4 = 1u_2 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_2 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 1u_2 ** n + r4 = 1u_2 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_2 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 1u_2 ** n + r4 = 1u_2 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_2 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 2u_2 ** n + r4 = 2u_2 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_2 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 2u_2 ** n + r4 = 2u_2 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_2 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 2u_2 ** n + r4 = 2u_2 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_2 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 2u_2 ** n + r4 = 2u_2 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_2 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 2u_2 ** n + r4 = 2u_2 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_2 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 2u_2 ** n + r4 = 2u_2 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_2 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 2u_2 ** n + r4 = 2u_2 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_2 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 2u_2 ** n + r4 = 2u_2 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_2 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 2u_2 ** n + r4 = 2u_2 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_2 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 2u_2 ** n + r4 = 2u_2 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_2 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 3u_2 ** n + r4 = 3u_2 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_2 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 3u_2 ** n + r4 = 3u_2 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_2 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 3u_2 ** n + r4 = 3u_2 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_2 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 3u_2 ** n + r4 = 3u_2 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_2 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 3u_2 ** n + r4 = 3u_2 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_2 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 3u_2 ** n + r4 = 3u_2 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_2 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 3u_2 ** n + r4 = 3u_2 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_2 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 3u_2 ** n + r4 = 3u_2 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_2 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 3u_2 ** n + r4 = 3u_2 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_2 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 3u_2 ** n + r4 = 3u_2 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_2 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 7u_2 ** n + r4 = 7u_2 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_2 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 7u_2 ** n + r4 = 7u_2 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_2 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 7u_2 ** n + r4 = 7u_2 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_2 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 7u_2 ** n + r4 = 7u_2 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_2 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 7u_2 ** n + r4 = 7u_2 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_2 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 7u_2 ** n + r4 = 7u_2 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_2 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 7u_2 ** n + r4 = 7u_2 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_2 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 7u_2 ** n + r4 = 7u_2 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_2 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 7u_2 ** n + r4 = 7u_2 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_2 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 7u_2 ** n + r4 = 7u_2 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_2 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 8u_2 ** n + r4 = 8u_2 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_2 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 8u_2 ** n + r4 = 8u_2 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_2 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 8u_2 ** n + r4 = 8u_2 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_2 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 8u_2 ** n + r4 = 8u_2 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_2 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 8u_2 ** n + r4 = 8u_2 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_2 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 8u_2 ** n + r4 = 8u_2 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_2 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 8u_2 ** n + r4 = 8u_2 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_2 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 8u_2 ** n + r4 = 8u_2 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_2 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 8u_2 ** n + r4 = 8u_2 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_2 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 8u_2 ** n + r4 = 8u_2 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_2 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 9u_2 ** n + r4 = 9u_2 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_2 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 9u_2 ** n + r4 = 9u_2 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_2 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 9u_2 ** n + r4 = 9u_2 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_2 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 9u_2 ** n + r4 = 9u_2 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_2 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 9u_2 ** n + r4 = 9u_2 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_2 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 9u_2 ** n + r4 = 9u_2 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_2 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 9u_2 ** n + r4 = 9u_2 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_2 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 9u_2 ** n + r4 = 9u_2 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_2 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 9u_2 ** n + r4 = 9u_2 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_2 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 9u_2 ** n + r4 = 9u_2 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_2 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 14u_2 ** n + r4 = 14u_2 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_2 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 14u_2 ** n + r4 = 14u_2 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_2 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 14u_2 ** n + r4 = 14u_2 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_2 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 14u_2 ** n + r4 = 14u_2 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_2 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 14u_2 ** n + r4 = 14u_2 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_2 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 14u_2 ** n + r4 = 14u_2 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_2 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 14u_2 ** n + r4 = 14u_2 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_2 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 14u_2 ** n + r4 = 14u_2 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_2 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 14u_2 ** n + r4 = 14u_2 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_2 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 14u_2 ** n + r4 = 14u_2 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_2 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 17u_2 ** n + r4 = 17u_2 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_2 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 17u_2 ** n + r4 = 17u_2 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_2 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 17u_2 ** n + r4 = 17u_2 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_2 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 17u_2 ** n + r4 = 17u_2 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_2 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 17u_2 ** n + r4 = 17u_2 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_2 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 17u_2 ** n + r4 = 17u_2 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_2 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 17u_2 ** n + r4 = 17u_2 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_2 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 17u_2 ** n + r4 = 17u_2 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_2 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 17u_2 ** n + r4 = 17u_2 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_2 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 17u_2 ** n + r4 = 17u_2 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_2 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 254u_2 ** n + r4 = 254u_2 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_2 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 254u_2 ** n + r4 = 254u_2 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_2 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 254u_2 ** n + r4 = 254u_2 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_2 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 254u_2 ** n + r4 = 254u_2 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_2 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 254u_2 ** n + r4 = 254u_2 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_2 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 254u_2 ** n + r4 = 254u_2 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_2 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 254u_2 ** n + r4 = 254u_2 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_2 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 254u_2 ** n + r4 = 254u_2 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_2 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 254u_2 ** n + r4 = 254u_2 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_2 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 254u_2 ** n + r4 = 254u_2 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_2 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 65535u_2 ** n + r4 = 65535u_2 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_2 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 65535u_2 ** n + r4 = 65535u_2 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_2 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 65535u_2 ** n + r4 = 65535u_2 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_2 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 65535u_2 ** n + r4 = 65535u_2 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_2 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 65535u_2 ** n + r4 = 65535u_2 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_2 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 65535u_2 ** n + r4 = 65535u_2 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_2 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 65535u_2 ** n + r4 = 65535u_2 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_2 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 65535u_2 ** n + r4 = 65535u_2 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_2 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 65535u_2 ** n + r4 = 65535u_2 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_2 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 65535u_2 ** n + r4 = 65535u_2 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + end subroutine tst_2_16 + subroutine tst_4_16 + unsigned(kind=4) :: x, r1, r2, r3, r4 + unsigned(kind=16) :: n + x = 0u_4 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 0u_4 ** n + r4 = 0u_4 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_4 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 0u_4 ** n + r4 = 0u_4 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_4 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 0u_4 ** n + r4 = 0u_4 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_4 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 0u_4 ** n + r4 = 0u_4 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_4 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 0u_4 ** n + r4 = 0u_4 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_4 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 0u_4 ** n + r4 = 0u_4 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_4 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 0u_4 ** n + r4 = 0u_4 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_4 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 0u_4 ** n + r4 = 0u_4 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_4 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 0u_4 ** n + r4 = 0u_4 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_4 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 0u_4 ** n + r4 = 0u_4 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_4 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 1u_4 ** n + r4 = 1u_4 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_4 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 1u_4 ** n + r4 = 1u_4 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_4 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 1u_4 ** n + r4 = 1u_4 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_4 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 1u_4 ** n + r4 = 1u_4 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_4 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 1u_4 ** n + r4 = 1u_4 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_4 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 1u_4 ** n + r4 = 1u_4 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_4 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 1u_4 ** n + r4 = 1u_4 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_4 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 1u_4 ** n + r4 = 1u_4 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_4 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 1u_4 ** n + r4 = 1u_4 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_4 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 1u_4 ** n + r4 = 1u_4 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_4 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 2u_4 ** n + r4 = 2u_4 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_4 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 2u_4 ** n + r4 = 2u_4 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_4 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 2u_4 ** n + r4 = 2u_4 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_4 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 2u_4 ** n + r4 = 2u_4 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_4 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 2u_4 ** n + r4 = 2u_4 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_4 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 2u_4 ** n + r4 = 2u_4 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_4 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 2u_4 ** n + r4 = 2u_4 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_4 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 2u_4 ** n + r4 = 2u_4 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_4 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 2u_4 ** n + r4 = 2u_4 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_4 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 2u_4 ** n + r4 = 2u_4 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_4 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 3u_4 ** n + r4 = 3u_4 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_4 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 3u_4 ** n + r4 = 3u_4 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_4 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 3u_4 ** n + r4 = 3u_4 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_4 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 3u_4 ** n + r4 = 3u_4 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_4 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 3u_4 ** n + r4 = 3u_4 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_4 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 3u_4 ** n + r4 = 3u_4 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_4 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 3u_4 ** n + r4 = 3u_4 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_4 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 3u_4 ** n + r4 = 3u_4 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_4 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 3u_4 ** n + r4 = 3u_4 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_4 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 3u_4 ** n + r4 = 3u_4 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_4 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 7u_4 ** n + r4 = 7u_4 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_4 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 7u_4 ** n + r4 = 7u_4 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_4 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 7u_4 ** n + r4 = 7u_4 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_4 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 7u_4 ** n + r4 = 7u_4 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_4 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 7u_4 ** n + r4 = 7u_4 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_4 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 7u_4 ** n + r4 = 7u_4 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_4 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 7u_4 ** n + r4 = 7u_4 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_4 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 7u_4 ** n + r4 = 7u_4 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_4 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 7u_4 ** n + r4 = 7u_4 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_4 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 7u_4 ** n + r4 = 7u_4 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_4 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 8u_4 ** n + r4 = 8u_4 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_4 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 8u_4 ** n + r4 = 8u_4 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_4 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 8u_4 ** n + r4 = 8u_4 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_4 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 8u_4 ** n + r4 = 8u_4 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_4 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 8u_4 ** n + r4 = 8u_4 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_4 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 8u_4 ** n + r4 = 8u_4 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_4 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 8u_4 ** n + r4 = 8u_4 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_4 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 8u_4 ** n + r4 = 8u_4 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_4 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 8u_4 ** n + r4 = 8u_4 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_4 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 8u_4 ** n + r4 = 8u_4 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_4 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 9u_4 ** n + r4 = 9u_4 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_4 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 9u_4 ** n + r4 = 9u_4 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_4 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 9u_4 ** n + r4 = 9u_4 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_4 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 9u_4 ** n + r4 = 9u_4 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_4 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 9u_4 ** n + r4 = 9u_4 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_4 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 9u_4 ** n + r4 = 9u_4 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_4 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 9u_4 ** n + r4 = 9u_4 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_4 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 9u_4 ** n + r4 = 9u_4 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_4 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 9u_4 ** n + r4 = 9u_4 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_4 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 9u_4 ** n + r4 = 9u_4 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_4 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 14u_4 ** n + r4 = 14u_4 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_4 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 14u_4 ** n + r4 = 14u_4 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_4 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 14u_4 ** n + r4 = 14u_4 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_4 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 14u_4 ** n + r4 = 14u_4 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_4 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 14u_4 ** n + r4 = 14u_4 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_4 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 14u_4 ** n + r4 = 14u_4 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_4 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 14u_4 ** n + r4 = 14u_4 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_4 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 14u_4 ** n + r4 = 14u_4 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_4 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 14u_4 ** n + r4 = 14u_4 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_4 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 14u_4 ** n + r4 = 14u_4 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_4 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 17u_4 ** n + r4 = 17u_4 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_4 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 17u_4 ** n + r4 = 17u_4 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_4 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 17u_4 ** n + r4 = 17u_4 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_4 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 17u_4 ** n + r4 = 17u_4 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_4 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 17u_4 ** n + r4 = 17u_4 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_4 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 17u_4 ** n + r4 = 17u_4 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_4 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 17u_4 ** n + r4 = 17u_4 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_4 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 17u_4 ** n + r4 = 17u_4 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_4 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 17u_4 ** n + r4 = 17u_4 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_4 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 17u_4 ** n + r4 = 17u_4 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_4 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 254u_4 ** n + r4 = 254u_4 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_4 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 254u_4 ** n + r4 = 254u_4 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_4 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 254u_4 ** n + r4 = 254u_4 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_4 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 254u_4 ** n + r4 = 254u_4 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_4 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 254u_4 ** n + r4 = 254u_4 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_4 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 254u_4 ** n + r4 = 254u_4 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_4 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 254u_4 ** n + r4 = 254u_4 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_4 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 254u_4 ** n + r4 = 254u_4 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_4 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 254u_4 ** n + r4 = 254u_4 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_4 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 254u_4 ** n + r4 = 254u_4 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_4 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 65535u_4 ** n + r4 = 65535u_4 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_4 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 65535u_4 ** n + r4 = 65535u_4 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_4 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 65535u_4 ** n + r4 = 65535u_4 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_4 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 65535u_4 ** n + r4 = 65535u_4 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_4 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 65535u_4 ** n + r4 = 65535u_4 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_4 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 65535u_4 ** n + r4 = 65535u_4 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_4 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 65535u_4 ** n + r4 = 65535u_4 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_4 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 65535u_4 ** n + r4 = 65535u_4 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_4 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 65535u_4 ** n + r4 = 65535u_4 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_4 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 65535u_4 ** n + r4 = 65535u_4 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_4 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 4294967295u_4 ** n + r4 = 4294967295u_4 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_4 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 4294967295u_4 ** n + r4 = 4294967295u_4 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_4 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 4294967295u_4 ** n + r4 = 4294967295u_4 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_4 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 4294967295u_4 ** n + r4 = 4294967295u_4 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_4 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 4294967295u_4 ** n + r4 = 4294967295u_4 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_4 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 4294967295u_4 ** n + r4 = 4294967295u_4 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_4 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 4294967295u_4 ** n + r4 = 4294967295u_4 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_4 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 4294967295u_4 ** n + r4 = 4294967295u_4 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_4 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 4294967295u_4 ** n + r4 = 4294967295u_4 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_4 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 4294967295u_4 ** n + r4 = 4294967295u_4 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + end subroutine tst_4_16 + subroutine tst_8_16 + unsigned(kind=8) :: x, r1, r2, r3, r4 + unsigned(kind=16) :: n + x = 0u_8 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 0u_8 ** n + r4 = 0u_8 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_8 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 0u_8 ** n + r4 = 0u_8 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_8 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 0u_8 ** n + r4 = 0u_8 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_8 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 0u_8 ** n + r4 = 0u_8 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_8 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 0u_8 ** n + r4 = 0u_8 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_8 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 0u_8 ** n + r4 = 0u_8 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_8 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 0u_8 ** n + r4 = 0u_8 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_8 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 0u_8 ** n + r4 = 0u_8 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_8 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 0u_8 ** n + r4 = 0u_8 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_8 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 0u_8 ** n + r4 = 0u_8 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_8 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 1u_8 ** n + r4 = 1u_8 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_8 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 1u_8 ** n + r4 = 1u_8 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_8 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 1u_8 ** n + r4 = 1u_8 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_8 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 1u_8 ** n + r4 = 1u_8 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_8 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 1u_8 ** n + r4 = 1u_8 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_8 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 1u_8 ** n + r4 = 1u_8 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_8 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 1u_8 ** n + r4 = 1u_8 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_8 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 1u_8 ** n + r4 = 1u_8 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_8 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 1u_8 ** n + r4 = 1u_8 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_8 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 1u_8 ** n + r4 = 1u_8 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_8 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 2u_8 ** n + r4 = 2u_8 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_8 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 2u_8 ** n + r4 = 2u_8 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_8 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 2u_8 ** n + r4 = 2u_8 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_8 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 2u_8 ** n + r4 = 2u_8 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_8 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 2u_8 ** n + r4 = 2u_8 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_8 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 2u_8 ** n + r4 = 2u_8 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_8 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 2u_8 ** n + r4 = 2u_8 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_8 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 2u_8 ** n + r4 = 2u_8 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_8 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 2u_8 ** n + r4 = 2u_8 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_8 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 2u_8 ** n + r4 = 2u_8 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_8 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 3u_8 ** n + r4 = 3u_8 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_8 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 3u_8 ** n + r4 = 3u_8 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_8 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 3u_8 ** n + r4 = 3u_8 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_8 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 3u_8 ** n + r4 = 3u_8 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_8 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 3u_8 ** n + r4 = 3u_8 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_8 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 3u_8 ** n + r4 = 3u_8 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_8 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 3u_8 ** n + r4 = 3u_8 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_8 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 3u_8 ** n + r4 = 3u_8 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_8 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 3u_8 ** n + r4 = 3u_8 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_8 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 3u_8 ** n + r4 = 3u_8 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_8 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 7u_8 ** n + r4 = 7u_8 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_8 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 7u_8 ** n + r4 = 7u_8 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_8 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 7u_8 ** n + r4 = 7u_8 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_8 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 7u_8 ** n + r4 = 7u_8 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_8 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 7u_8 ** n + r4 = 7u_8 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_8 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 7u_8 ** n + r4 = 7u_8 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_8 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 7u_8 ** n + r4 = 7u_8 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_8 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 7u_8 ** n + r4 = 7u_8 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_8 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 7u_8 ** n + r4 = 7u_8 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_8 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 7u_8 ** n + r4 = 7u_8 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_8 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 8u_8 ** n + r4 = 8u_8 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_8 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 8u_8 ** n + r4 = 8u_8 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_8 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 8u_8 ** n + r4 = 8u_8 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_8 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 8u_8 ** n + r4 = 8u_8 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_8 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 8u_8 ** n + r4 = 8u_8 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_8 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 8u_8 ** n + r4 = 8u_8 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_8 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 8u_8 ** n + r4 = 8u_8 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_8 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 8u_8 ** n + r4 = 8u_8 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_8 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 8u_8 ** n + r4 = 8u_8 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_8 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 8u_8 ** n + r4 = 8u_8 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_8 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 9u_8 ** n + r4 = 9u_8 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_8 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 9u_8 ** n + r4 = 9u_8 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_8 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 9u_8 ** n + r4 = 9u_8 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_8 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 9u_8 ** n + r4 = 9u_8 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_8 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 9u_8 ** n + r4 = 9u_8 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_8 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 9u_8 ** n + r4 = 9u_8 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_8 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 9u_8 ** n + r4 = 9u_8 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_8 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 9u_8 ** n + r4 = 9u_8 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_8 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 9u_8 ** n + r4 = 9u_8 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_8 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 9u_8 ** n + r4 = 9u_8 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_8 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 14u_8 ** n + r4 = 14u_8 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_8 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 14u_8 ** n + r4 = 14u_8 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_8 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 14u_8 ** n + r4 = 14u_8 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_8 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 14u_8 ** n + r4 = 14u_8 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_8 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 14u_8 ** n + r4 = 14u_8 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_8 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 14u_8 ** n + r4 = 14u_8 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_8 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 14u_8 ** n + r4 = 14u_8 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_8 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 14u_8 ** n + r4 = 14u_8 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_8 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 14u_8 ** n + r4 = 14u_8 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_8 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 14u_8 ** n + r4 = 14u_8 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_8 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 17u_8 ** n + r4 = 17u_8 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_8 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 17u_8 ** n + r4 = 17u_8 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_8 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 17u_8 ** n + r4 = 17u_8 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_8 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 17u_8 ** n + r4 = 17u_8 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_8 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 17u_8 ** n + r4 = 17u_8 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_8 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 17u_8 ** n + r4 = 17u_8 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_8 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 17u_8 ** n + r4 = 17u_8 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_8 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 17u_8 ** n + r4 = 17u_8 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_8 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 17u_8 ** n + r4 = 17u_8 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_8 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 17u_8 ** n + r4 = 17u_8 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_8 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 254u_8 ** n + r4 = 254u_8 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_8 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 254u_8 ** n + r4 = 254u_8 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_8 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 254u_8 ** n + r4 = 254u_8 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_8 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 254u_8 ** n + r4 = 254u_8 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_8 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 254u_8 ** n + r4 = 254u_8 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_8 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 254u_8 ** n + r4 = 254u_8 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_8 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 254u_8 ** n + r4 = 254u_8 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_8 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 254u_8 ** n + r4 = 254u_8 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_8 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 254u_8 ** n + r4 = 254u_8 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_8 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 254u_8 ** n + r4 = 254u_8 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_8 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 65535u_8 ** n + r4 = 65535u_8 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_8 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 65535u_8 ** n + r4 = 65535u_8 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_8 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 65535u_8 ** n + r4 = 65535u_8 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_8 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 65535u_8 ** n + r4 = 65535u_8 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_8 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 65535u_8 ** n + r4 = 65535u_8 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_8 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 65535u_8 ** n + r4 = 65535u_8 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_8 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 65535u_8 ** n + r4 = 65535u_8 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_8 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 65535u_8 ** n + r4 = 65535u_8 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_8 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 65535u_8 ** n + r4 = 65535u_8 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_8 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 65535u_8 ** n + r4 = 65535u_8 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_8 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 4294967295u_8 ** n + r4 = 4294967295u_8 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_8 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 4294967295u_8 ** n + r4 = 4294967295u_8 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_8 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 4294967295u_8 ** n + r4 = 4294967295u_8 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_8 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 4294967295u_8 ** n + r4 = 4294967295u_8 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_8 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 4294967295u_8 ** n + r4 = 4294967295u_8 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_8 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 4294967295u_8 ** n + r4 = 4294967295u_8 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_8 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 4294967295u_8 ** n + r4 = 4294967295u_8 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_8 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 4294967295u_8 ** n + r4 = 4294967295u_8 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_8 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 4294967295u_8 ** n + r4 = 4294967295u_8 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_8 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 4294967295u_8 ** n + r4 = 4294967295u_8 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_8 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 18446744073709551615u_8 ** n + r4 = 18446744073709551615u_8 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_8 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 18446744073709551615u_8 ** n + r4 = 18446744073709551615u_8 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_8 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 18446744073709551615u_8 ** n + r4 = 18446744073709551615u_8 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_8 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 18446744073709551615u_8 ** n + r4 = 18446744073709551615u_8 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_8 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 18446744073709551615u_8 ** n + r4 = 18446744073709551615u_8 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_8 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 18446744073709551615u_8 ** n + r4 = 18446744073709551615u_8 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_8 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 18446744073709551615u_8 ** n + r4 = 18446744073709551615u_8 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_8 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 18446744073709551615u_8 ** n + r4 = 18446744073709551615u_8 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_8 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 18446744073709551615u_8 ** n + r4 = 18446744073709551615u_8 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_8 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 18446744073709551615u_8 ** n + r4 = 18446744073709551615u_8 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + end subroutine tst_8_16 + subroutine tst_16_1 + unsigned(kind=16) :: x, r1, r2, r3, r4 + unsigned(kind=1) :: n + x = 0u_16 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 0u_16 ** n + r4 = 0u_16 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_16 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 0u_16 ** n + r4 = 0u_16 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_16 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 0u_16 ** n + r4 = 0u_16 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_16 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 0u_16 ** n + r4 = 0u_16 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_16 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 0u_16 ** n + r4 = 0u_16 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_16 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 0u_16 ** n + r4 = 0u_16 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_16 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 0u_16 ** n + r4 = 0u_16 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_16 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 1u_16 ** n + r4 = 1u_16 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_16 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 1u_16 ** n + r4 = 1u_16 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_16 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 1u_16 ** n + r4 = 1u_16 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_16 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 1u_16 ** n + r4 = 1u_16 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_16 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 1u_16 ** n + r4 = 1u_16 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_16 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 1u_16 ** n + r4 = 1u_16 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_16 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 1u_16 ** n + r4 = 1u_16 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_16 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 2u_16 ** n + r4 = 2u_16 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_16 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 2u_16 ** n + r4 = 2u_16 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_16 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 2u_16 ** n + r4 = 2u_16 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_16 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 2u_16 ** n + r4 = 2u_16 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_16 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 2u_16 ** n + r4 = 2u_16 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_16 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 2u_16 ** n + r4 = 2u_16 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_16 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 2u_16 ** n + r4 = 2u_16 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_16 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 3u_16 ** n + r4 = 3u_16 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_16 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 3u_16 ** n + r4 = 3u_16 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_16 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 3u_16 ** n + r4 = 3u_16 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_16 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 3u_16 ** n + r4 = 3u_16 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_16 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 3u_16 ** n + r4 = 3u_16 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_16 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 3u_16 ** n + r4 = 3u_16 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_16 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 3u_16 ** n + r4 = 3u_16 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_16 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 7u_16 ** n + r4 = 7u_16 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_16 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 7u_16 ** n + r4 = 7u_16 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_16 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 7u_16 ** n + r4 = 7u_16 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_16 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 7u_16 ** n + r4 = 7u_16 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_16 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 7u_16 ** n + r4 = 7u_16 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_16 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 7u_16 ** n + r4 = 7u_16 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_16 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 7u_16 ** n + r4 = 7u_16 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_16 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 8u_16 ** n + r4 = 8u_16 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_16 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 8u_16 ** n + r4 = 8u_16 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_16 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 8u_16 ** n + r4 = 8u_16 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_16 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 8u_16 ** n + r4 = 8u_16 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_16 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 8u_16 ** n + r4 = 8u_16 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_16 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 8u_16 ** n + r4 = 8u_16 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_16 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 8u_16 ** n + r4 = 8u_16 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_16 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 9u_16 ** n + r4 = 9u_16 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_16 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 9u_16 ** n + r4 = 9u_16 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_16 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 9u_16 ** n + r4 = 9u_16 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_16 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 9u_16 ** n + r4 = 9u_16 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_16 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 9u_16 ** n + r4 = 9u_16 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_16 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 9u_16 ** n + r4 = 9u_16 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_16 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 9u_16 ** n + r4 = 9u_16 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_16 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 14u_16 ** n + r4 = 14u_16 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_16 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 14u_16 ** n + r4 = 14u_16 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_16 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 14u_16 ** n + r4 = 14u_16 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_16 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 14u_16 ** n + r4 = 14u_16 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_16 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 14u_16 ** n + r4 = 14u_16 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_16 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 14u_16 ** n + r4 = 14u_16 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_16 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 14u_16 ** n + r4 = 14u_16 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_16 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 17u_16 ** n + r4 = 17u_16 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_16 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 17u_16 ** n + r4 = 17u_16 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_16 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 17u_16 ** n + r4 = 17u_16 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_16 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 17u_16 ** n + r4 = 17u_16 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_16 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 17u_16 ** n + r4 = 17u_16 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_16 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 17u_16 ** n + r4 = 17u_16 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_16 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 17u_16 ** n + r4 = 17u_16 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_16 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 254u_16 ** n + r4 = 254u_16 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_16 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 254u_16 ** n + r4 = 254u_16 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_16 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 254u_16 ** n + r4 = 254u_16 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_16 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 254u_16 ** n + r4 = 254u_16 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_16 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 254u_16 ** n + r4 = 254u_16 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_16 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 254u_16 ** n + r4 = 254u_16 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_16 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 254u_16 ** n + r4 = 254u_16 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_16 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 65535u_16 ** n + r4 = 65535u_16 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_16 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 65535u_16 ** n + r4 = 65535u_16 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_16 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 65535u_16 ** n + r4 = 65535u_16 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_16 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 65535u_16 ** n + r4 = 65535u_16 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_16 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 65535u_16 ** n + r4 = 65535u_16 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_16 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 65535u_16 ** n + r4 = 65535u_16 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_16 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 65535u_16 ** n + r4 = 65535u_16 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_16 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 4294967295u_16 ** n + r4 = 4294967295u_16 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_16 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 4294967295u_16 ** n + r4 = 4294967295u_16 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_16 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 4294967295u_16 ** n + r4 = 4294967295u_16 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_16 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 4294967295u_16 ** n + r4 = 4294967295u_16 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_16 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 4294967295u_16 ** n + r4 = 4294967295u_16 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_16 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 4294967295u_16 ** n + r4 = 4294967295u_16 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_16 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 4294967295u_16 ** n + r4 = 4294967295u_16 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_16 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 18446744073709551615u_16 ** n + r4 = 18446744073709551615u_16 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_16 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 18446744073709551615u_16 ** n + r4 = 18446744073709551615u_16 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_16 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 18446744073709551615u_16 ** n + r4 = 18446744073709551615u_16 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_16 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 18446744073709551615u_16 ** n + r4 = 18446744073709551615u_16 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_16 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 18446744073709551615u_16 ** n + r4 = 18446744073709551615u_16 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_16 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 18446744073709551615u_16 ** n + r4 = 18446744073709551615u_16 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_16 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 18446744073709551615u_16 ** n + r4 = 18446744073709551615u_16 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1267650600228229401496703205375u_16 + n = 0u_1 + r1 = x ** n + r2 = x ** 0u_1 + r3 = 1267650600228229401496703205375u_16 ** n + r4 = 1267650600228229401496703205375u_16 ** 0u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1267650600228229401496703205375u_16 + n = 1u_1 + r1 = x ** n + r2 = x ** 1u_1 + r3 = 1267650600228229401496703205375u_16 ** n + r4 = 1267650600228229401496703205375u_16 ** 1u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1267650600228229401496703205375u_16 + n = 2u_1 + r1 = x ** n + r2 = x ** 2u_1 + r3 = 1267650600228229401496703205375u_16 ** n + r4 = 1267650600228229401496703205375u_16 ** 2u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1267650600228229401496703205375u_16 + n = 7u_1 + r1 = x ** n + r2 = x ** 7u_1 + r3 = 1267650600228229401496703205375u_16 ** n + r4 = 1267650600228229401496703205375u_16 ** 7u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1267650600228229401496703205375u_16 + n = 8u_1 + r1 = x ** n + r2 = x ** 8u_1 + r3 = 1267650600228229401496703205375u_16 ** n + r4 = 1267650600228229401496703205375u_16 ** 8u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1267650600228229401496703205375u_16 + n = 16u_1 + r1 = x ** n + r2 = x ** 16u_1 + r3 = 1267650600228229401496703205375u_16 ** n + r4 = 1267650600228229401496703205375u_16 ** 16u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1267650600228229401496703205375u_16 + n = 135u_1 + r1 = x ** n + r2 = x ** 135u_1 + r3 = 1267650600228229401496703205375u_16 ** n + r4 = 1267650600228229401496703205375u_16 ** 135u_1 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + end subroutine tst_16_1 + subroutine tst_16_2 + unsigned(kind=16) :: x, r1, r2, r3, r4 + unsigned(kind=2) :: n + x = 0u_16 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 0u_16 ** n + r4 = 0u_16 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_16 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 0u_16 ** n + r4 = 0u_16 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_16 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 0u_16 ** n + r4 = 0u_16 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_16 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 0u_16 ** n + r4 = 0u_16 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_16 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 0u_16 ** n + r4 = 0u_16 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_16 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 0u_16 ** n + r4 = 0u_16 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_16 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 0u_16 ** n + r4 = 0u_16 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_16 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 0u_16 ** n + r4 = 0u_16 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_16 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 1u_16 ** n + r4 = 1u_16 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_16 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 1u_16 ** n + r4 = 1u_16 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_16 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 1u_16 ** n + r4 = 1u_16 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_16 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 1u_16 ** n + r4 = 1u_16 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_16 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 1u_16 ** n + r4 = 1u_16 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_16 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 1u_16 ** n + r4 = 1u_16 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_16 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 1u_16 ** n + r4 = 1u_16 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_16 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 1u_16 ** n + r4 = 1u_16 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_16 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 2u_16 ** n + r4 = 2u_16 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_16 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 2u_16 ** n + r4 = 2u_16 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_16 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 2u_16 ** n + r4 = 2u_16 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_16 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 2u_16 ** n + r4 = 2u_16 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_16 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 2u_16 ** n + r4 = 2u_16 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_16 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 2u_16 ** n + r4 = 2u_16 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_16 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 2u_16 ** n + r4 = 2u_16 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_16 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 2u_16 ** n + r4 = 2u_16 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_16 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 3u_16 ** n + r4 = 3u_16 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_16 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 3u_16 ** n + r4 = 3u_16 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_16 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 3u_16 ** n + r4 = 3u_16 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_16 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 3u_16 ** n + r4 = 3u_16 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_16 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 3u_16 ** n + r4 = 3u_16 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_16 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 3u_16 ** n + r4 = 3u_16 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_16 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 3u_16 ** n + r4 = 3u_16 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_16 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 3u_16 ** n + r4 = 3u_16 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_16 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 7u_16 ** n + r4 = 7u_16 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_16 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 7u_16 ** n + r4 = 7u_16 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_16 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 7u_16 ** n + r4 = 7u_16 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_16 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 7u_16 ** n + r4 = 7u_16 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_16 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 7u_16 ** n + r4 = 7u_16 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_16 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 7u_16 ** n + r4 = 7u_16 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_16 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 7u_16 ** n + r4 = 7u_16 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_16 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 7u_16 ** n + r4 = 7u_16 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_16 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 8u_16 ** n + r4 = 8u_16 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_16 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 8u_16 ** n + r4 = 8u_16 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_16 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 8u_16 ** n + r4 = 8u_16 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_16 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 8u_16 ** n + r4 = 8u_16 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_16 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 8u_16 ** n + r4 = 8u_16 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_16 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 8u_16 ** n + r4 = 8u_16 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_16 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 8u_16 ** n + r4 = 8u_16 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_16 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 8u_16 ** n + r4 = 8u_16 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_16 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 9u_16 ** n + r4 = 9u_16 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_16 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 9u_16 ** n + r4 = 9u_16 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_16 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 9u_16 ** n + r4 = 9u_16 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_16 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 9u_16 ** n + r4 = 9u_16 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_16 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 9u_16 ** n + r4 = 9u_16 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_16 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 9u_16 ** n + r4 = 9u_16 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_16 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 9u_16 ** n + r4 = 9u_16 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_16 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 9u_16 ** n + r4 = 9u_16 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_16 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 14u_16 ** n + r4 = 14u_16 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_16 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 14u_16 ** n + r4 = 14u_16 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_16 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 14u_16 ** n + r4 = 14u_16 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_16 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 14u_16 ** n + r4 = 14u_16 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_16 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 14u_16 ** n + r4 = 14u_16 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_16 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 14u_16 ** n + r4 = 14u_16 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_16 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 14u_16 ** n + r4 = 14u_16 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_16 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 14u_16 ** n + r4 = 14u_16 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_16 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 17u_16 ** n + r4 = 17u_16 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_16 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 17u_16 ** n + r4 = 17u_16 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_16 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 17u_16 ** n + r4 = 17u_16 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_16 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 17u_16 ** n + r4 = 17u_16 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_16 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 17u_16 ** n + r4 = 17u_16 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_16 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 17u_16 ** n + r4 = 17u_16 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_16 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 17u_16 ** n + r4 = 17u_16 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_16 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 17u_16 ** n + r4 = 17u_16 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_16 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 254u_16 ** n + r4 = 254u_16 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_16 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 254u_16 ** n + r4 = 254u_16 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_16 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 254u_16 ** n + r4 = 254u_16 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_16 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 254u_16 ** n + r4 = 254u_16 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_16 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 254u_16 ** n + r4 = 254u_16 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_16 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 254u_16 ** n + r4 = 254u_16 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_16 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 254u_16 ** n + r4 = 254u_16 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_16 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 254u_16 ** n + r4 = 254u_16 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_16 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 65535u_16 ** n + r4 = 65535u_16 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_16 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 65535u_16 ** n + r4 = 65535u_16 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_16 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 65535u_16 ** n + r4 = 65535u_16 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_16 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 65535u_16 ** n + r4 = 65535u_16 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_16 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 65535u_16 ** n + r4 = 65535u_16 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_16 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 65535u_16 ** n + r4 = 65535u_16 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_16 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 65535u_16 ** n + r4 = 65535u_16 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_16 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 65535u_16 ** n + r4 = 65535u_16 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_16 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 4294967295u_16 ** n + r4 = 4294967295u_16 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_16 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 4294967295u_16 ** n + r4 = 4294967295u_16 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_16 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 4294967295u_16 ** n + r4 = 4294967295u_16 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_16 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 4294967295u_16 ** n + r4 = 4294967295u_16 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_16 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 4294967295u_16 ** n + r4 = 4294967295u_16 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_16 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 4294967295u_16 ** n + r4 = 4294967295u_16 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_16 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 4294967295u_16 ** n + r4 = 4294967295u_16 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_16 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 4294967295u_16 ** n + r4 = 4294967295u_16 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_16 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 18446744073709551615u_16 ** n + r4 = 18446744073709551615u_16 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_16 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 18446744073709551615u_16 ** n + r4 = 18446744073709551615u_16 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_16 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 18446744073709551615u_16 ** n + r4 = 18446744073709551615u_16 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_16 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 18446744073709551615u_16 ** n + r4 = 18446744073709551615u_16 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_16 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 18446744073709551615u_16 ** n + r4 = 18446744073709551615u_16 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_16 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 18446744073709551615u_16 ** n + r4 = 18446744073709551615u_16 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_16 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 18446744073709551615u_16 ** n + r4 = 18446744073709551615u_16 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_16 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 18446744073709551615u_16 ** n + r4 = 18446744073709551615u_16 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1267650600228229401496703205375u_16 + n = 0u_2 + r1 = x ** n + r2 = x ** 0u_2 + r3 = 1267650600228229401496703205375u_16 ** n + r4 = 1267650600228229401496703205375u_16 ** 0u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1267650600228229401496703205375u_16 + n = 1u_2 + r1 = x ** n + r2 = x ** 1u_2 + r3 = 1267650600228229401496703205375u_16 ** n + r4 = 1267650600228229401496703205375u_16 ** 1u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1267650600228229401496703205375u_16 + n = 2u_2 + r1 = x ** n + r2 = x ** 2u_2 + r3 = 1267650600228229401496703205375u_16 ** n + r4 = 1267650600228229401496703205375u_16 ** 2u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1267650600228229401496703205375u_16 + n = 7u_2 + r1 = x ** n + r2 = x ** 7u_2 + r3 = 1267650600228229401496703205375u_16 ** n + r4 = 1267650600228229401496703205375u_16 ** 7u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1267650600228229401496703205375u_16 + n = 8u_2 + r1 = x ** n + r2 = x ** 8u_2 + r3 = 1267650600228229401496703205375u_16 ** n + r4 = 1267650600228229401496703205375u_16 ** 8u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1267650600228229401496703205375u_16 + n = 16u_2 + r1 = x ** n + r2 = x ** 16u_2 + r3 = 1267650600228229401496703205375u_16 ** n + r4 = 1267650600228229401496703205375u_16 ** 16u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1267650600228229401496703205375u_16 + n = 135u_2 + r1 = x ** n + r2 = x ** 135u_2 + r3 = 1267650600228229401496703205375u_16 ** n + r4 = 1267650600228229401496703205375u_16 ** 135u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1267650600228229401496703205375u_16 + n = 32779u_2 + r1 = x ** n + r2 = x ** 32779u_2 + r3 = 1267650600228229401496703205375u_16 ** n + r4 = 1267650600228229401496703205375u_16 ** 32779u_2 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + end subroutine tst_16_2 + subroutine tst_16_4 + unsigned(kind=16) :: x, r1, r2, r3, r4 + unsigned(kind=4) :: n + x = 0u_16 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 0u_16 ** n + r4 = 0u_16 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_16 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 0u_16 ** n + r4 = 0u_16 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_16 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 0u_16 ** n + r4 = 0u_16 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_16 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 0u_16 ** n + r4 = 0u_16 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_16 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 0u_16 ** n + r4 = 0u_16 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_16 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 0u_16 ** n + r4 = 0u_16 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_16 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 0u_16 ** n + r4 = 0u_16 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_16 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 0u_16 ** n + r4 = 0u_16 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_16 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 1u_16 ** n + r4 = 1u_16 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_16 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 1u_16 ** n + r4 = 1u_16 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_16 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 1u_16 ** n + r4 = 1u_16 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_16 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 1u_16 ** n + r4 = 1u_16 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_16 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 1u_16 ** n + r4 = 1u_16 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_16 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 1u_16 ** n + r4 = 1u_16 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_16 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 1u_16 ** n + r4 = 1u_16 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_16 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 1u_16 ** n + r4 = 1u_16 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_16 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 2u_16 ** n + r4 = 2u_16 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_16 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 2u_16 ** n + r4 = 2u_16 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_16 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 2u_16 ** n + r4 = 2u_16 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_16 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 2u_16 ** n + r4 = 2u_16 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_16 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 2u_16 ** n + r4 = 2u_16 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_16 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 2u_16 ** n + r4 = 2u_16 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_16 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 2u_16 ** n + r4 = 2u_16 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_16 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 2u_16 ** n + r4 = 2u_16 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_16 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 3u_16 ** n + r4 = 3u_16 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_16 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 3u_16 ** n + r4 = 3u_16 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_16 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 3u_16 ** n + r4 = 3u_16 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_16 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 3u_16 ** n + r4 = 3u_16 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_16 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 3u_16 ** n + r4 = 3u_16 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_16 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 3u_16 ** n + r4 = 3u_16 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_16 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 3u_16 ** n + r4 = 3u_16 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_16 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 3u_16 ** n + r4 = 3u_16 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_16 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 7u_16 ** n + r4 = 7u_16 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_16 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 7u_16 ** n + r4 = 7u_16 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_16 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 7u_16 ** n + r4 = 7u_16 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_16 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 7u_16 ** n + r4 = 7u_16 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_16 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 7u_16 ** n + r4 = 7u_16 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_16 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 7u_16 ** n + r4 = 7u_16 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_16 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 7u_16 ** n + r4 = 7u_16 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_16 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 7u_16 ** n + r4 = 7u_16 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_16 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 8u_16 ** n + r4 = 8u_16 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_16 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 8u_16 ** n + r4 = 8u_16 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_16 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 8u_16 ** n + r4 = 8u_16 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_16 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 8u_16 ** n + r4 = 8u_16 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_16 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 8u_16 ** n + r4 = 8u_16 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_16 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 8u_16 ** n + r4 = 8u_16 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_16 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 8u_16 ** n + r4 = 8u_16 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_16 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 8u_16 ** n + r4 = 8u_16 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_16 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 9u_16 ** n + r4 = 9u_16 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_16 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 9u_16 ** n + r4 = 9u_16 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_16 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 9u_16 ** n + r4 = 9u_16 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_16 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 9u_16 ** n + r4 = 9u_16 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_16 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 9u_16 ** n + r4 = 9u_16 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_16 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 9u_16 ** n + r4 = 9u_16 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_16 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 9u_16 ** n + r4 = 9u_16 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_16 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 9u_16 ** n + r4 = 9u_16 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_16 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 14u_16 ** n + r4 = 14u_16 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_16 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 14u_16 ** n + r4 = 14u_16 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_16 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 14u_16 ** n + r4 = 14u_16 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_16 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 14u_16 ** n + r4 = 14u_16 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_16 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 14u_16 ** n + r4 = 14u_16 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_16 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 14u_16 ** n + r4 = 14u_16 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_16 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 14u_16 ** n + r4 = 14u_16 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_16 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 14u_16 ** n + r4 = 14u_16 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_16 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 17u_16 ** n + r4 = 17u_16 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_16 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 17u_16 ** n + r4 = 17u_16 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_16 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 17u_16 ** n + r4 = 17u_16 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_16 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 17u_16 ** n + r4 = 17u_16 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_16 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 17u_16 ** n + r4 = 17u_16 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_16 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 17u_16 ** n + r4 = 17u_16 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_16 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 17u_16 ** n + r4 = 17u_16 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_16 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 17u_16 ** n + r4 = 17u_16 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_16 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 254u_16 ** n + r4 = 254u_16 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_16 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 254u_16 ** n + r4 = 254u_16 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_16 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 254u_16 ** n + r4 = 254u_16 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_16 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 254u_16 ** n + r4 = 254u_16 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_16 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 254u_16 ** n + r4 = 254u_16 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_16 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 254u_16 ** n + r4 = 254u_16 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_16 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 254u_16 ** n + r4 = 254u_16 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_16 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 254u_16 ** n + r4 = 254u_16 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_16 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 65535u_16 ** n + r4 = 65535u_16 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_16 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 65535u_16 ** n + r4 = 65535u_16 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_16 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 65535u_16 ** n + r4 = 65535u_16 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_16 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 65535u_16 ** n + r4 = 65535u_16 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_16 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 65535u_16 ** n + r4 = 65535u_16 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_16 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 65535u_16 ** n + r4 = 65535u_16 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_16 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 65535u_16 ** n + r4 = 65535u_16 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_16 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 65535u_16 ** n + r4 = 65535u_16 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_16 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 4294967295u_16 ** n + r4 = 4294967295u_16 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_16 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 4294967295u_16 ** n + r4 = 4294967295u_16 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_16 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 4294967295u_16 ** n + r4 = 4294967295u_16 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_16 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 4294967295u_16 ** n + r4 = 4294967295u_16 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_16 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 4294967295u_16 ** n + r4 = 4294967295u_16 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_16 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 4294967295u_16 ** n + r4 = 4294967295u_16 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_16 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 4294967295u_16 ** n + r4 = 4294967295u_16 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_16 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 4294967295u_16 ** n + r4 = 4294967295u_16 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_16 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 18446744073709551615u_16 ** n + r4 = 18446744073709551615u_16 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_16 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 18446744073709551615u_16 ** n + r4 = 18446744073709551615u_16 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_16 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 18446744073709551615u_16 ** n + r4 = 18446744073709551615u_16 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_16 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 18446744073709551615u_16 ** n + r4 = 18446744073709551615u_16 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_16 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 18446744073709551615u_16 ** n + r4 = 18446744073709551615u_16 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_16 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 18446744073709551615u_16 ** n + r4 = 18446744073709551615u_16 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_16 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 18446744073709551615u_16 ** n + r4 = 18446744073709551615u_16 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_16 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 18446744073709551615u_16 ** n + r4 = 18446744073709551615u_16 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1267650600228229401496703205375u_16 + n = 0u_4 + r1 = x ** n + r2 = x ** 0u_4 + r3 = 1267650600228229401496703205375u_16 ** n + r4 = 1267650600228229401496703205375u_16 ** 0u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1267650600228229401496703205375u_16 + n = 1u_4 + r1 = x ** n + r2 = x ** 1u_4 + r3 = 1267650600228229401496703205375u_16 ** n + r4 = 1267650600228229401496703205375u_16 ** 1u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1267650600228229401496703205375u_16 + n = 2u_4 + r1 = x ** n + r2 = x ** 2u_4 + r3 = 1267650600228229401496703205375u_16 ** n + r4 = 1267650600228229401496703205375u_16 ** 2u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1267650600228229401496703205375u_16 + n = 7u_4 + r1 = x ** n + r2 = x ** 7u_4 + r3 = 1267650600228229401496703205375u_16 ** n + r4 = 1267650600228229401496703205375u_16 ** 7u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1267650600228229401496703205375u_16 + n = 8u_4 + r1 = x ** n + r2 = x ** 8u_4 + r3 = 1267650600228229401496703205375u_16 ** n + r4 = 1267650600228229401496703205375u_16 ** 8u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1267650600228229401496703205375u_16 + n = 16u_4 + r1 = x ** n + r2 = x ** 16u_4 + r3 = 1267650600228229401496703205375u_16 ** n + r4 = 1267650600228229401496703205375u_16 ** 16u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1267650600228229401496703205375u_16 + n = 135u_4 + r1 = x ** n + r2 = x ** 135u_4 + r3 = 1267650600228229401496703205375u_16 ** n + r4 = 1267650600228229401496703205375u_16 ** 135u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1267650600228229401496703205375u_16 + n = 32779u_4 + r1 = x ** n + r2 = x ** 32779u_4 + r3 = 1267650600228229401496703205375u_16 ** n + r4 = 1267650600228229401496703205375u_16 ** 32779u_4 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + end subroutine tst_16_4 + subroutine tst_16_8 + unsigned(kind=16) :: x, r1, r2, r3, r4 + unsigned(kind=8) :: n + x = 0u_16 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 0u_16 ** n + r4 = 0u_16 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_16 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 0u_16 ** n + r4 = 0u_16 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_16 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 0u_16 ** n + r4 = 0u_16 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_16 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 0u_16 ** n + r4 = 0u_16 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_16 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 0u_16 ** n + r4 = 0u_16 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_16 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 0u_16 ** n + r4 = 0u_16 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_16 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 0u_16 ** n + r4 = 0u_16 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_16 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 0u_16 ** n + r4 = 0u_16 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_16 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 0u_16 ** n + r4 = 0u_16 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_16 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 1u_16 ** n + r4 = 1u_16 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_16 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 1u_16 ** n + r4 = 1u_16 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_16 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 1u_16 ** n + r4 = 1u_16 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_16 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 1u_16 ** n + r4 = 1u_16 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_16 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 1u_16 ** n + r4 = 1u_16 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_16 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 1u_16 ** n + r4 = 1u_16 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_16 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 1u_16 ** n + r4 = 1u_16 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_16 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 1u_16 ** n + r4 = 1u_16 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_16 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 1u_16 ** n + r4 = 1u_16 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_16 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 2u_16 ** n + r4 = 2u_16 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_16 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 2u_16 ** n + r4 = 2u_16 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_16 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 2u_16 ** n + r4 = 2u_16 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_16 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 2u_16 ** n + r4 = 2u_16 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_16 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 2u_16 ** n + r4 = 2u_16 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_16 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 2u_16 ** n + r4 = 2u_16 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_16 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 2u_16 ** n + r4 = 2u_16 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_16 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 2u_16 ** n + r4 = 2u_16 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_16 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 2u_16 ** n + r4 = 2u_16 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_16 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 3u_16 ** n + r4 = 3u_16 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_16 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 3u_16 ** n + r4 = 3u_16 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_16 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 3u_16 ** n + r4 = 3u_16 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_16 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 3u_16 ** n + r4 = 3u_16 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_16 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 3u_16 ** n + r4 = 3u_16 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_16 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 3u_16 ** n + r4 = 3u_16 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_16 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 3u_16 ** n + r4 = 3u_16 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_16 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 3u_16 ** n + r4 = 3u_16 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_16 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 3u_16 ** n + r4 = 3u_16 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_16 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 7u_16 ** n + r4 = 7u_16 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_16 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 7u_16 ** n + r4 = 7u_16 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_16 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 7u_16 ** n + r4 = 7u_16 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_16 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 7u_16 ** n + r4 = 7u_16 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_16 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 7u_16 ** n + r4 = 7u_16 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_16 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 7u_16 ** n + r4 = 7u_16 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_16 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 7u_16 ** n + r4 = 7u_16 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_16 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 7u_16 ** n + r4 = 7u_16 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_16 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 7u_16 ** n + r4 = 7u_16 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_16 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 8u_16 ** n + r4 = 8u_16 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_16 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 8u_16 ** n + r4 = 8u_16 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_16 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 8u_16 ** n + r4 = 8u_16 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_16 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 8u_16 ** n + r4 = 8u_16 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_16 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 8u_16 ** n + r4 = 8u_16 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_16 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 8u_16 ** n + r4 = 8u_16 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_16 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 8u_16 ** n + r4 = 8u_16 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_16 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 8u_16 ** n + r4 = 8u_16 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_16 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 8u_16 ** n + r4 = 8u_16 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_16 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 9u_16 ** n + r4 = 9u_16 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_16 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 9u_16 ** n + r4 = 9u_16 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_16 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 9u_16 ** n + r4 = 9u_16 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_16 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 9u_16 ** n + r4 = 9u_16 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_16 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 9u_16 ** n + r4 = 9u_16 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_16 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 9u_16 ** n + r4 = 9u_16 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_16 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 9u_16 ** n + r4 = 9u_16 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_16 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 9u_16 ** n + r4 = 9u_16 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_16 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 9u_16 ** n + r4 = 9u_16 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_16 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 14u_16 ** n + r4 = 14u_16 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_16 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 14u_16 ** n + r4 = 14u_16 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_16 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 14u_16 ** n + r4 = 14u_16 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_16 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 14u_16 ** n + r4 = 14u_16 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_16 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 14u_16 ** n + r4 = 14u_16 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_16 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 14u_16 ** n + r4 = 14u_16 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_16 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 14u_16 ** n + r4 = 14u_16 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_16 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 14u_16 ** n + r4 = 14u_16 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_16 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 14u_16 ** n + r4 = 14u_16 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_16 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 17u_16 ** n + r4 = 17u_16 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_16 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 17u_16 ** n + r4 = 17u_16 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_16 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 17u_16 ** n + r4 = 17u_16 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_16 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 17u_16 ** n + r4 = 17u_16 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_16 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 17u_16 ** n + r4 = 17u_16 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_16 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 17u_16 ** n + r4 = 17u_16 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_16 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 17u_16 ** n + r4 = 17u_16 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_16 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 17u_16 ** n + r4 = 17u_16 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_16 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 17u_16 ** n + r4 = 17u_16 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_16 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 254u_16 ** n + r4 = 254u_16 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_16 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 254u_16 ** n + r4 = 254u_16 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_16 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 254u_16 ** n + r4 = 254u_16 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_16 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 254u_16 ** n + r4 = 254u_16 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_16 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 254u_16 ** n + r4 = 254u_16 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_16 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 254u_16 ** n + r4 = 254u_16 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_16 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 254u_16 ** n + r4 = 254u_16 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_16 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 254u_16 ** n + r4 = 254u_16 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_16 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 254u_16 ** n + r4 = 254u_16 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_16 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 65535u_16 ** n + r4 = 65535u_16 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_16 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 65535u_16 ** n + r4 = 65535u_16 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_16 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 65535u_16 ** n + r4 = 65535u_16 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_16 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 65535u_16 ** n + r4 = 65535u_16 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_16 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 65535u_16 ** n + r4 = 65535u_16 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_16 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 65535u_16 ** n + r4 = 65535u_16 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_16 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 65535u_16 ** n + r4 = 65535u_16 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_16 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 65535u_16 ** n + r4 = 65535u_16 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_16 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 65535u_16 ** n + r4 = 65535u_16 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_16 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 4294967295u_16 ** n + r4 = 4294967295u_16 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_16 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 4294967295u_16 ** n + r4 = 4294967295u_16 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_16 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 4294967295u_16 ** n + r4 = 4294967295u_16 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_16 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 4294967295u_16 ** n + r4 = 4294967295u_16 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_16 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 4294967295u_16 ** n + r4 = 4294967295u_16 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_16 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 4294967295u_16 ** n + r4 = 4294967295u_16 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_16 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 4294967295u_16 ** n + r4 = 4294967295u_16 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_16 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 4294967295u_16 ** n + r4 = 4294967295u_16 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_16 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 4294967295u_16 ** n + r4 = 4294967295u_16 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_16 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 18446744073709551615u_16 ** n + r4 = 18446744073709551615u_16 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_16 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 18446744073709551615u_16 ** n + r4 = 18446744073709551615u_16 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_16 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 18446744073709551615u_16 ** n + r4 = 18446744073709551615u_16 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_16 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 18446744073709551615u_16 ** n + r4 = 18446744073709551615u_16 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_16 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 18446744073709551615u_16 ** n + r4 = 18446744073709551615u_16 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_16 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 18446744073709551615u_16 ** n + r4 = 18446744073709551615u_16 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_16 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 18446744073709551615u_16 ** n + r4 = 18446744073709551615u_16 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_16 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 18446744073709551615u_16 ** n + r4 = 18446744073709551615u_16 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_16 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 18446744073709551615u_16 ** n + r4 = 18446744073709551615u_16 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1267650600228229401496703205375u_16 + n = 0u_8 + r1 = x ** n + r2 = x ** 0u_8 + r3 = 1267650600228229401496703205375u_16 ** n + r4 = 1267650600228229401496703205375u_16 ** 0u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1267650600228229401496703205375u_16 + n = 1u_8 + r1 = x ** n + r2 = x ** 1u_8 + r3 = 1267650600228229401496703205375u_16 ** n + r4 = 1267650600228229401496703205375u_16 ** 1u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1267650600228229401496703205375u_16 + n = 2u_8 + r1 = x ** n + r2 = x ** 2u_8 + r3 = 1267650600228229401496703205375u_16 ** n + r4 = 1267650600228229401496703205375u_16 ** 2u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1267650600228229401496703205375u_16 + n = 7u_8 + r1 = x ** n + r2 = x ** 7u_8 + r3 = 1267650600228229401496703205375u_16 ** n + r4 = 1267650600228229401496703205375u_16 ** 7u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1267650600228229401496703205375u_16 + n = 8u_8 + r1 = x ** n + r2 = x ** 8u_8 + r3 = 1267650600228229401496703205375u_16 ** n + r4 = 1267650600228229401496703205375u_16 ** 8u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1267650600228229401496703205375u_16 + n = 16u_8 + r1 = x ** n + r2 = x ** 16u_8 + r3 = 1267650600228229401496703205375u_16 ** n + r4 = 1267650600228229401496703205375u_16 ** 16u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1267650600228229401496703205375u_16 + n = 135u_8 + r1 = x ** n + r2 = x ** 135u_8 + r3 = 1267650600228229401496703205375u_16 ** n + r4 = 1267650600228229401496703205375u_16 ** 135u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1267650600228229401496703205375u_16 + n = 32779u_8 + r1 = x ** n + r2 = x ** 32779u_8 + r3 = 1267650600228229401496703205375u_16 ** n + r4 = 1267650600228229401496703205375u_16 ** 32779u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1267650600228229401496703205375u_16 + n = 18446744073709551615u_8 + r1 = x ** n + r2 = x ** 18446744073709551615u_8 + r3 = 1267650600228229401496703205375u_16 ** n + r4 = 1267650600228229401496703205375u_16 ** 18446744073709551615u_8 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + end subroutine tst_16_8 + subroutine tst_16_16 + unsigned(kind=16) :: x, r1, r2, r3, r4 + unsigned(kind=16) :: n + x = 0u_16 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 0u_16 ** n + r4 = 0u_16 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_16 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 0u_16 ** n + r4 = 0u_16 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_16 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 0u_16 ** n + r4 = 0u_16 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_16 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 0u_16 ** n + r4 = 0u_16 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_16 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 0u_16 ** n + r4 = 0u_16 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_16 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 0u_16 ** n + r4 = 0u_16 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_16 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 0u_16 ** n + r4 = 0u_16 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_16 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 0u_16 ** n + r4 = 0u_16 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_16 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 0u_16 ** n + r4 = 0u_16 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 0u_16 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 0u_16 ** n + r4 = 0u_16 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_16 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 1u_16 ** n + r4 = 1u_16 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_16 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 1u_16 ** n + r4 = 1u_16 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_16 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 1u_16 ** n + r4 = 1u_16 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_16 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 1u_16 ** n + r4 = 1u_16 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_16 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 1u_16 ** n + r4 = 1u_16 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_16 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 1u_16 ** n + r4 = 1u_16 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_16 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 1u_16 ** n + r4 = 1u_16 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_16 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 1u_16 ** n + r4 = 1u_16 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_16 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 1u_16 ** n + r4 = 1u_16 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1u_16 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 1u_16 ** n + r4 = 1u_16 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_16 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 2u_16 ** n + r4 = 2u_16 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_16 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 2u_16 ** n + r4 = 2u_16 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_16 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 2u_16 ** n + r4 = 2u_16 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_16 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 2u_16 ** n + r4 = 2u_16 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_16 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 2u_16 ** n + r4 = 2u_16 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_16 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 2u_16 ** n + r4 = 2u_16 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_16 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 2u_16 ** n + r4 = 2u_16 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_16 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 2u_16 ** n + r4 = 2u_16 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_16 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 2u_16 ** n + r4 = 2u_16 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 2u_16 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 2u_16 ** n + r4 = 2u_16 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_16 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 3u_16 ** n + r4 = 3u_16 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_16 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 3u_16 ** n + r4 = 3u_16 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_16 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 3u_16 ** n + r4 = 3u_16 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_16 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 3u_16 ** n + r4 = 3u_16 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_16 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 3u_16 ** n + r4 = 3u_16 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_16 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 3u_16 ** n + r4 = 3u_16 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_16 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 3u_16 ** n + r4 = 3u_16 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_16 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 3u_16 ** n + r4 = 3u_16 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_16 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 3u_16 ** n + r4 = 3u_16 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 3u_16 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 3u_16 ** n + r4 = 3u_16 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_16 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 7u_16 ** n + r4 = 7u_16 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_16 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 7u_16 ** n + r4 = 7u_16 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_16 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 7u_16 ** n + r4 = 7u_16 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_16 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 7u_16 ** n + r4 = 7u_16 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_16 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 7u_16 ** n + r4 = 7u_16 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_16 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 7u_16 ** n + r4 = 7u_16 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_16 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 7u_16 ** n + r4 = 7u_16 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_16 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 7u_16 ** n + r4 = 7u_16 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_16 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 7u_16 ** n + r4 = 7u_16 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 7u_16 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 7u_16 ** n + r4 = 7u_16 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_16 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 8u_16 ** n + r4 = 8u_16 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_16 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 8u_16 ** n + r4 = 8u_16 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_16 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 8u_16 ** n + r4 = 8u_16 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_16 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 8u_16 ** n + r4 = 8u_16 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_16 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 8u_16 ** n + r4 = 8u_16 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_16 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 8u_16 ** n + r4 = 8u_16 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_16 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 8u_16 ** n + r4 = 8u_16 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_16 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 8u_16 ** n + r4 = 8u_16 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_16 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 8u_16 ** n + r4 = 8u_16 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 8u_16 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 8u_16 ** n + r4 = 8u_16 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_16 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 9u_16 ** n + r4 = 9u_16 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_16 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 9u_16 ** n + r4 = 9u_16 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_16 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 9u_16 ** n + r4 = 9u_16 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_16 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 9u_16 ** n + r4 = 9u_16 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_16 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 9u_16 ** n + r4 = 9u_16 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_16 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 9u_16 ** n + r4 = 9u_16 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_16 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 9u_16 ** n + r4 = 9u_16 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_16 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 9u_16 ** n + r4 = 9u_16 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_16 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 9u_16 ** n + r4 = 9u_16 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 9u_16 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 9u_16 ** n + r4 = 9u_16 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_16 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 14u_16 ** n + r4 = 14u_16 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_16 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 14u_16 ** n + r4 = 14u_16 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_16 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 14u_16 ** n + r4 = 14u_16 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_16 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 14u_16 ** n + r4 = 14u_16 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_16 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 14u_16 ** n + r4 = 14u_16 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_16 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 14u_16 ** n + r4 = 14u_16 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_16 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 14u_16 ** n + r4 = 14u_16 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_16 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 14u_16 ** n + r4 = 14u_16 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_16 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 14u_16 ** n + r4 = 14u_16 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 14u_16 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 14u_16 ** n + r4 = 14u_16 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_16 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 17u_16 ** n + r4 = 17u_16 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_16 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 17u_16 ** n + r4 = 17u_16 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_16 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 17u_16 ** n + r4 = 17u_16 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_16 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 17u_16 ** n + r4 = 17u_16 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_16 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 17u_16 ** n + r4 = 17u_16 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_16 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 17u_16 ** n + r4 = 17u_16 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_16 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 17u_16 ** n + r4 = 17u_16 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_16 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 17u_16 ** n + r4 = 17u_16 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_16 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 17u_16 ** n + r4 = 17u_16 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 17u_16 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 17u_16 ** n + r4 = 17u_16 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_16 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 254u_16 ** n + r4 = 254u_16 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_16 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 254u_16 ** n + r4 = 254u_16 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_16 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 254u_16 ** n + r4 = 254u_16 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_16 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 254u_16 ** n + r4 = 254u_16 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_16 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 254u_16 ** n + r4 = 254u_16 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_16 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 254u_16 ** n + r4 = 254u_16 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_16 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 254u_16 ** n + r4 = 254u_16 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_16 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 254u_16 ** n + r4 = 254u_16 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_16 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 254u_16 ** n + r4 = 254u_16 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 254u_16 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 254u_16 ** n + r4 = 254u_16 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_16 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 65535u_16 ** n + r4 = 65535u_16 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_16 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 65535u_16 ** n + r4 = 65535u_16 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_16 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 65535u_16 ** n + r4 = 65535u_16 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_16 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 65535u_16 ** n + r4 = 65535u_16 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_16 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 65535u_16 ** n + r4 = 65535u_16 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_16 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 65535u_16 ** n + r4 = 65535u_16 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_16 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 65535u_16 ** n + r4 = 65535u_16 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_16 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 65535u_16 ** n + r4 = 65535u_16 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_16 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 65535u_16 ** n + r4 = 65535u_16 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 65535u_16 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 65535u_16 ** n + r4 = 65535u_16 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_16 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 4294967295u_16 ** n + r4 = 4294967295u_16 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_16 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 4294967295u_16 ** n + r4 = 4294967295u_16 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_16 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 4294967295u_16 ** n + r4 = 4294967295u_16 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_16 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 4294967295u_16 ** n + r4 = 4294967295u_16 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_16 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 4294967295u_16 ** n + r4 = 4294967295u_16 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_16 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 4294967295u_16 ** n + r4 = 4294967295u_16 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_16 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 4294967295u_16 ** n + r4 = 4294967295u_16 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_16 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 4294967295u_16 ** n + r4 = 4294967295u_16 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_16 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 4294967295u_16 ** n + r4 = 4294967295u_16 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 4294967295u_16 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 4294967295u_16 ** n + r4 = 4294967295u_16 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_16 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 18446744073709551615u_16 ** n + r4 = 18446744073709551615u_16 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_16 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 18446744073709551615u_16 ** n + r4 = 18446744073709551615u_16 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_16 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 18446744073709551615u_16 ** n + r4 = 18446744073709551615u_16 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_16 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 18446744073709551615u_16 ** n + r4 = 18446744073709551615u_16 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_16 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 18446744073709551615u_16 ** n + r4 = 18446744073709551615u_16 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_16 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 18446744073709551615u_16 ** n + r4 = 18446744073709551615u_16 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_16 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 18446744073709551615u_16 ** n + r4 = 18446744073709551615u_16 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_16 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 18446744073709551615u_16 ** n + r4 = 18446744073709551615u_16 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_16 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 18446744073709551615u_16 ** n + r4 = 18446744073709551615u_16 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 18446744073709551615u_16 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 18446744073709551615u_16 ** n + r4 = 18446744073709551615u_16 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1267650600228229401496703205375u_16 + n = 0u_16 + r1 = x ** n + r2 = x ** 0u_16 + r3 = 1267650600228229401496703205375u_16 ** n + r4 = 1267650600228229401496703205375u_16 ** 0u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1267650600228229401496703205375u_16 + n = 1u_16 + r1 = x ** n + r2 = x ** 1u_16 + r3 = 1267650600228229401496703205375u_16 ** n + r4 = 1267650600228229401496703205375u_16 ** 1u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1267650600228229401496703205375u_16 + n = 2u_16 + r1 = x ** n + r2 = x ** 2u_16 + r3 = 1267650600228229401496703205375u_16 ** n + r4 = 1267650600228229401496703205375u_16 ** 2u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1267650600228229401496703205375u_16 + n = 7u_16 + r1 = x ** n + r2 = x ** 7u_16 + r3 = 1267650600228229401496703205375u_16 ** n + r4 = 1267650600228229401496703205375u_16 ** 7u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1267650600228229401496703205375u_16 + n = 8u_16 + r1 = x ** n + r2 = x ** 8u_16 + r3 = 1267650600228229401496703205375u_16 ** n + r4 = 1267650600228229401496703205375u_16 ** 8u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1267650600228229401496703205375u_16 + n = 16u_16 + r1 = x ** n + r2 = x ** 16u_16 + r3 = 1267650600228229401496703205375u_16 ** n + r4 = 1267650600228229401496703205375u_16 ** 16u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1267650600228229401496703205375u_16 + n = 135u_16 + r1 = x ** n + r2 = x ** 135u_16 + r3 = 1267650600228229401496703205375u_16 ** n + r4 = 1267650600228229401496703205375u_16 ** 135u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1267650600228229401496703205375u_16 + n = 32779u_16 + r1 = x ** n + r2 = x ** 32779u_16 + r3 = 1267650600228229401496703205375u_16 ** n + r4 = 1267650600228229401496703205375u_16 ** 32779u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1267650600228229401496703205375u_16 + n = 18446744073709551615u_16 + r1 = x ** n + r2 = x ** 18446744073709551615u_16 + r3 = 1267650600228229401496703205375u_16 ** n + r4 = 1267650600228229401496703205375u_16 ** 18446744073709551615u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + x = 1267650600228229401496703205375u_16 + n = 1267650600228229401496703205375u_16 + r1 = x ** n + r2 = x ** 1267650600228229401496703205375u_16 + r3 = 1267650600228229401496703205375u_16 ** n + r4 = 1267650600228229401496703205375u_16 ** 1267650600228229401496703205375u_16 + if (r1 /= r2 .or. r3 /= r4 .or. r1 /= r3) error stop + + end subroutine tst_16_16 +end program memain diff --git a/libgfortran/Makefile.am b/libgfortran/Makefile.am index f58af58..52bd6ea 100644 --- a/libgfortran/Makefile.am +++ b/libgfortran/Makefile.am @@ -874,6 +874,33 @@ generated/pow_c10_i16.c \ generated/pow_c16_i16.c \ generated/pow_c17_i16.c +i_powu_c = \ +generated/pow_m1_m1.c \ +generated/pow_m1_m2.c \ +generated/pow_m1_m4.c \ +generated/pow_m1_m8.c \ +generated/pow_m1_m16.c \ +generated/pow_m2_m1.c \ +generated/pow_m2_m2.c \ +generated/pow_m2_m4.c \ +generated/pow_m2_m8.c \ +generated/pow_m2_m16.c \ +generated/pow_m4_m1.c \ +generated/pow_m4_m2.c \ +generated/pow_m4_m4.c \ +generated/pow_m4_m8.c \ +generated/pow_m4_m16.c \ +generated/pow_m8_m1.c \ +generated/pow_m8_m2.c \ +generated/pow_m8_m4.c \ +generated/pow_m8_m8.c \ +generated/pow_m8_m16.c \ +generated/pow_m16_m1.c \ +generated/pow_m16_m2.c \ +generated/pow_m16_m4.c \ +generated/pow_m16_m8.c \ +generated/pow_m16_m16.c + i_pack_c = \ generated/pack_i1.c \ generated/pack_i2.c \ @@ -956,7 +983,7 @@ gfor_built_src= $(i_all_c) $(i_any_c) $(i_count_c) $(i_maxloc0_c) \ $(i_minloc1s_c) $(i_maxloc2s_c) $(i_minloc2s_c) $(i_maxvals_c) \ $(i_maxval0s_c) $(i_minval0s_c) $(i_maxval1s_c) $(i_minval1s_c) \ $(i_findloc0_c) $(i_findloc0s_c) $(i_findloc1_c) $(i_findloc1s_c) \ - $(i_findloc2s_c) $(i_isobinding_c) + $(i_findloc2s_c) $(i_isobinding_c) $(i_powu_c) # Machine generated specifics gfor_built_specific_src= \ @@ -1376,6 +1403,9 @@ $(in_unpack_c): m4/in_unpack.m4 $(I_M4_DEPS) $(i_pow_c): m4/pow.m4 $(I_M4_DEPS) $(M4) -Dfile=$@ -I$(srcdir)/m4 pow.m4 > $@ +$(i_powu_c): m4/powu.m4 $(I_M4_DEPS) + $(M4) -Dfile=$@ -I$(srcdir)/m4 powu.m4 > $@ + $(i_pack_c): m4/pack.m4 $(I_M4_DEPS) $(M4) -Dfile=$@ -I$(srcdir)/m4 pack.m4 > $@ diff --git a/libgfortran/Makefile.in b/libgfortran/Makefile.in index f9a1864..9b9ed2f 100644 --- a/libgfortran/Makefile.in +++ b/libgfortran/Makefile.in @@ -540,7 +540,20 @@ am__objects_49 = generated/findloc1_i1.lo generated/findloc1_i2.lo \ am__objects_50 = generated/findloc1_s1.lo generated/findloc1_s4.lo am__objects_51 = generated/findloc2_s1.lo generated/findloc2_s4.lo am__objects_52 = runtime/ISO_Fortran_binding.lo -am__objects_53 = $(am__objects_4) $(am__objects_5) $(am__objects_6) \ +am__objects_53 = generated/pow_m1_m1.lo generated/pow_m1_m2.lo \ + generated/pow_m1_m4.lo generated/pow_m1_m8.lo \ + generated/pow_m1_m16.lo generated/pow_m2_m1.lo \ + generated/pow_m2_m2.lo generated/pow_m2_m4.lo \ + generated/pow_m2_m8.lo generated/pow_m2_m16.lo \ + generated/pow_m4_m1.lo generated/pow_m4_m2.lo \ + generated/pow_m4_m4.lo generated/pow_m4_m8.lo \ + generated/pow_m4_m16.lo generated/pow_m8_m1.lo \ + generated/pow_m8_m2.lo generated/pow_m8_m4.lo \ + generated/pow_m8_m8.lo generated/pow_m8_m16.lo \ + generated/pow_m16_m1.lo generated/pow_m16_m2.lo \ + generated/pow_m16_m4.lo generated/pow_m16_m8.lo \ + generated/pow_m16_m16.lo +am__objects_54 = $(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_14) $(am__objects_15) \ @@ -556,16 +569,16 @@ am__objects_53 = $(am__objects_4) $(am__objects_5) $(am__objects_6) \ $(am__objects_43) $(am__objects_44) $(am__objects_45) \ $(am__objects_46) $(am__objects_47) $(am__objects_48) \ $(am__objects_49) $(am__objects_50) $(am__objects_51) \ - $(am__objects_52) -@LIBGFOR_MINIMAL_FALSE@am__objects_54 = io/close.lo io/file_pos.lo \ + $(am__objects_52) $(am__objects_53) +@LIBGFOR_MINIMAL_FALSE@am__objects_55 = io/close.lo io/file_pos.lo \ @LIBGFOR_MINIMAL_FALSE@ io/format.lo io/inquire.lo \ @LIBGFOR_MINIMAL_FALSE@ io/intrinsics.lo io/list_read.lo \ @LIBGFOR_MINIMAL_FALSE@ io/lock.lo io/open.lo io/read.lo \ @LIBGFOR_MINIMAL_FALSE@ io/transfer.lo io/transfer128.lo \ @LIBGFOR_MINIMAL_FALSE@ io/unit.lo io/unix.lo io/write.lo \ @LIBGFOR_MINIMAL_FALSE@ io/fbuf.lo io/async.lo -am__objects_55 = io/size_from_kind.lo $(am__objects_54) -@LIBGFOR_MINIMAL_FALSE@am__objects_56 = intrinsics/access.lo \ +am__objects_56 = io/size_from_kind.lo $(am__objects_55) +@LIBGFOR_MINIMAL_FALSE@am__objects_57 = intrinsics/access.lo \ @LIBGFOR_MINIMAL_FALSE@ intrinsics/c99_functions.lo \ @LIBGFOR_MINIMAL_FALSE@ intrinsics/chdir.lo intrinsics/chmod.lo \ @LIBGFOR_MINIMAL_FALSE@ intrinsics/clock.lo \ @@ -589,8 +602,8 @@ am__objects_55 = io/size_from_kind.lo $(am__objects_54) @LIBGFOR_MINIMAL_FALSE@ intrinsics/system_clock.lo \ @LIBGFOR_MINIMAL_FALSE@ intrinsics/time.lo intrinsics/umask.lo \ @LIBGFOR_MINIMAL_FALSE@ intrinsics/unlink.lo -@IEEE_SUPPORT_TRUE@am__objects_57 = ieee/ieee_helper.lo -am__objects_58 = intrinsics/associated.lo intrinsics/abort.lo \ +@IEEE_SUPPORT_TRUE@am__objects_58 = ieee/ieee_helper.lo +am__objects_59 = intrinsics/associated.lo intrinsics/abort.lo \ intrinsics/args.lo intrinsics/cshift0.lo \ intrinsics/eoshift0.lo intrinsics/eoshift2.lo \ intrinsics/erfc_scaled.lo intrinsics/extends_type_of.lo \ @@ -605,12 +618,12 @@ am__objects_58 = intrinsics/associated.lo intrinsics/abort.lo \ intrinsics/selected_real_kind.lo intrinsics/trigd.lo \ intrinsics/unpack_generic.lo runtime/in_pack_generic.lo \ runtime/in_unpack_generic.lo runtime/in_pack_class.lo \ - runtime/in_unpack_class.lo $(am__objects_56) $(am__objects_57) -@IEEE_SUPPORT_TRUE@am__objects_59 = ieee/ieee_arithmetic.lo \ + runtime/in_unpack_class.lo $(am__objects_57) $(am__objects_58) +@IEEE_SUPPORT_TRUE@am__objects_60 = ieee/ieee_arithmetic.lo \ @IEEE_SUPPORT_TRUE@ ieee/ieee_exceptions.lo \ @IEEE_SUPPORT_TRUE@ ieee/ieee_features.lo -am__objects_60 = -am__objects_61 = generated/_abs_c4.lo generated/_abs_c8.lo \ +am__objects_61 = +am__objects_62 = generated/_abs_c4.lo generated/_abs_c8.lo \ generated/_abs_c10.lo generated/_abs_c16.lo \ generated/_abs_c17.lo generated/_abs_i4.lo \ generated/_abs_i8.lo generated/_abs_i16.lo \ @@ -679,7 +692,7 @@ am__objects_61 = generated/_abs_c4.lo generated/_abs_c8.lo \ generated/_aint_r17.lo generated/_anint_r4.lo \ generated/_anint_r8.lo generated/_anint_r10.lo \ generated/_anint_r16.lo generated/_anint_r17.lo -am__objects_62 = generated/_sign_i4.lo generated/_sign_i8.lo \ +am__objects_63 = generated/_sign_i4.lo generated/_sign_i8.lo \ generated/_sign_i16.lo generated/_sign_r4.lo \ generated/_sign_r8.lo generated/_sign_r10.lo \ generated/_sign_r16.lo generated/_sign_r17.lo \ @@ -694,13 +707,13 @@ am__objects_62 = generated/_sign_i4.lo generated/_sign_i8.lo \ generated/_mod_r4.lo generated/_mod_r8.lo \ generated/_mod_r10.lo generated/_mod_r16.lo \ generated/_mod_r17.lo -am__objects_63 = generated/misc_specifics.lo -am__objects_64 = $(am__objects_61) $(am__objects_62) $(am__objects_63) \ +am__objects_64 = generated/misc_specifics.lo +am__objects_65 = $(am__objects_62) $(am__objects_63) $(am__objects_64) \ intrinsics/dprod_r8.lo intrinsics/f2c_specifics.lo \ intrinsics/random_init.lo -am_libgfortran_la_OBJECTS = $(am__objects_3) $(am__objects_53) \ - $(am__objects_55) $(am__objects_58) $(am__objects_59) \ - $(am__objects_60) $(am__objects_64) +am_libgfortran_la_OBJECTS = $(am__objects_3) $(am__objects_54) \ + $(am__objects_56) $(am__objects_59) $(am__objects_60) \ + $(am__objects_61) $(am__objects_65) libgfortran_la_OBJECTS = $(am_libgfortran_la_OBJECTS) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) @@ -1667,6 +1680,33 @@ generated/pow_c10_i16.c \ generated/pow_c16_i16.c \ generated/pow_c17_i16.c +i_powu_c = \ +generated/pow_m1_m1.c \ +generated/pow_m1_m2.c \ +generated/pow_m1_m4.c \ +generated/pow_m1_m8.c \ +generated/pow_m1_m16.c \ +generated/pow_m2_m1.c \ +generated/pow_m2_m2.c \ +generated/pow_m2_m4.c \ +generated/pow_m2_m8.c \ +generated/pow_m2_m16.c \ +generated/pow_m4_m1.c \ +generated/pow_m4_m2.c \ +generated/pow_m4_m4.c \ +generated/pow_m4_m8.c \ +generated/pow_m4_m16.c \ +generated/pow_m8_m1.c \ +generated/pow_m8_m2.c \ +generated/pow_m8_m4.c \ +generated/pow_m8_m8.c \ +generated/pow_m8_m16.c \ +generated/pow_m16_m1.c \ +generated/pow_m16_m2.c \ +generated/pow_m16_m4.c \ +generated/pow_m16_m8.c \ +generated/pow_m16_m16.c + i_pack_c = \ generated/pack_i1.c \ generated/pack_i2.c \ @@ -1749,7 +1789,7 @@ gfor_built_src = $(i_all_c) $(i_any_c) $(i_count_c) $(i_maxloc0_c) \ $(i_minloc1s_c) $(i_maxloc2s_c) $(i_minloc2s_c) $(i_maxvals_c) \ $(i_maxval0s_c) $(i_minval0s_c) $(i_maxval1s_c) $(i_minval1s_c) \ $(i_findloc0_c) $(i_findloc0s_c) $(i_findloc1_c) $(i_findloc1s_c) \ - $(i_findloc2s_c) $(i_isobinding_c) + $(i_findloc2s_c) $(i_isobinding_c) $(i_powu_c) # Machine generated specifics @@ -3315,6 +3355,56 @@ generated/findloc2_s4.lo: generated/$(am__dirstamp) \ generated/$(DEPDIR)/$(am__dirstamp) runtime/ISO_Fortran_binding.lo: runtime/$(am__dirstamp) \ runtime/$(DEPDIR)/$(am__dirstamp) +generated/pow_m1_m1.lo: generated/$(am__dirstamp) \ + generated/$(DEPDIR)/$(am__dirstamp) +generated/pow_m1_m2.lo: generated/$(am__dirstamp) \ + generated/$(DEPDIR)/$(am__dirstamp) +generated/pow_m1_m4.lo: generated/$(am__dirstamp) \ + generated/$(DEPDIR)/$(am__dirstamp) +generated/pow_m1_m8.lo: generated/$(am__dirstamp) \ + generated/$(DEPDIR)/$(am__dirstamp) +generated/pow_m1_m16.lo: generated/$(am__dirstamp) \ + generated/$(DEPDIR)/$(am__dirstamp) +generated/pow_m2_m1.lo: generated/$(am__dirstamp) \ + generated/$(DEPDIR)/$(am__dirstamp) +generated/pow_m2_m2.lo: generated/$(am__dirstamp) \ + generated/$(DEPDIR)/$(am__dirstamp) +generated/pow_m2_m4.lo: generated/$(am__dirstamp) \ + generated/$(DEPDIR)/$(am__dirstamp) +generated/pow_m2_m8.lo: generated/$(am__dirstamp) \ + generated/$(DEPDIR)/$(am__dirstamp) +generated/pow_m2_m16.lo: generated/$(am__dirstamp) \ + generated/$(DEPDIR)/$(am__dirstamp) +generated/pow_m4_m1.lo: generated/$(am__dirstamp) \ + generated/$(DEPDIR)/$(am__dirstamp) +generated/pow_m4_m2.lo: generated/$(am__dirstamp) \ + generated/$(DEPDIR)/$(am__dirstamp) +generated/pow_m4_m4.lo: generated/$(am__dirstamp) \ + generated/$(DEPDIR)/$(am__dirstamp) +generated/pow_m4_m8.lo: generated/$(am__dirstamp) \ + generated/$(DEPDIR)/$(am__dirstamp) +generated/pow_m4_m16.lo: generated/$(am__dirstamp) \ + generated/$(DEPDIR)/$(am__dirstamp) +generated/pow_m8_m1.lo: generated/$(am__dirstamp) \ + generated/$(DEPDIR)/$(am__dirstamp) +generated/pow_m8_m2.lo: generated/$(am__dirstamp) \ + generated/$(DEPDIR)/$(am__dirstamp) +generated/pow_m8_m4.lo: generated/$(am__dirstamp) \ + generated/$(DEPDIR)/$(am__dirstamp) +generated/pow_m8_m8.lo: generated/$(am__dirstamp) \ + generated/$(DEPDIR)/$(am__dirstamp) +generated/pow_m8_m16.lo: generated/$(am__dirstamp) \ + generated/$(DEPDIR)/$(am__dirstamp) +generated/pow_m16_m1.lo: generated/$(am__dirstamp) \ + generated/$(DEPDIR)/$(am__dirstamp) +generated/pow_m16_m2.lo: generated/$(am__dirstamp) \ + generated/$(DEPDIR)/$(am__dirstamp) +generated/pow_m16_m4.lo: generated/$(am__dirstamp) \ + generated/$(DEPDIR)/$(am__dirstamp) +generated/pow_m16_m8.lo: generated/$(am__dirstamp) \ + generated/$(DEPDIR)/$(am__dirstamp) +generated/pow_m16_m16.lo: generated/$(am__dirstamp) \ + generated/$(DEPDIR)/$(am__dirstamp) io/$(am__dirstamp): @$(MKDIR_P) io @: > io/$(am__dirstamp) @@ -4347,6 +4437,31 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@generated/$(DEPDIR)/pow_i8_i16.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@generated/$(DEPDIR)/pow_i8_i4.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@generated/$(DEPDIR)/pow_i8_i8.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@generated/$(DEPDIR)/pow_m16_m1.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@generated/$(DEPDIR)/pow_m16_m16.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@generated/$(DEPDIR)/pow_m16_m2.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@generated/$(DEPDIR)/pow_m16_m4.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@generated/$(DEPDIR)/pow_m16_m8.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@generated/$(DEPDIR)/pow_m1_m1.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@generated/$(DEPDIR)/pow_m1_m16.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@generated/$(DEPDIR)/pow_m1_m2.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@generated/$(DEPDIR)/pow_m1_m4.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@generated/$(DEPDIR)/pow_m1_m8.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@generated/$(DEPDIR)/pow_m2_m1.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@generated/$(DEPDIR)/pow_m2_m16.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@generated/$(DEPDIR)/pow_m2_m2.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@generated/$(DEPDIR)/pow_m2_m4.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@generated/$(DEPDIR)/pow_m2_m8.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@generated/$(DEPDIR)/pow_m4_m1.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@generated/$(DEPDIR)/pow_m4_m16.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@generated/$(DEPDIR)/pow_m4_m2.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@generated/$(DEPDIR)/pow_m4_m4.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@generated/$(DEPDIR)/pow_m4_m8.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@generated/$(DEPDIR)/pow_m8_m1.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@generated/$(DEPDIR)/pow_m8_m16.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@generated/$(DEPDIR)/pow_m8_m2.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@generated/$(DEPDIR)/pow_m8_m4.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@generated/$(DEPDIR)/pow_m8_m8.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@generated/$(DEPDIR)/pow_r10_i16.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@generated/$(DEPDIR)/pow_r10_i8.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@generated/$(DEPDIR)/pow_r16_i16.Plo@am__quote@ @@ -5084,6 +5199,9 @@ include/ISO_Fortran_binding.h: $(srcdir)/ISO_Fortran_binding.h @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@$(i_powu_c): m4/powu.m4 $(I_M4_DEPS) +@MAINTAINER_MODE_TRUE@ $(M4) -Dfile=$@ -I$(srcdir)/m4 powu.m4 > $@ + @MAINTAINER_MODE_TRUE@$(i_pack_c): m4/pack.m4 $(I_M4_DEPS) @MAINTAINER_MODE_TRUE@ $(M4) -Dfile=$@ -I$(srcdir)/m4 pack.m4 > $@ diff --git a/libgfortran/generated/pow_m16_m1.c b/libgfortran/generated/pow_m16_m1.c new file mode 100644 index 0000000..167aca0 --- /dev/null +++ b/libgfortran/generated/pow_m16_m1.c @@ -0,0 +1,79 @@ +/* Support routines for the intrinsic power (**) operator + for UNSIGNED, using modulo arithmetic. + Copyright (C) 2025 Free Software Foundation, Inc. + Contributed by Thomas Koenig. + +This file is part of the GNU Fortran 95 runtime library (libgfortran). + +Libgfortran is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public +License as published by the Free Software Foundation; either +version 3 of the License, or (at your option) any later version. + +Libgfortran 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 General Public License for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +#include "libgfortran.h" + + +/* Use 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. */ + +#if defined (HAVE_GFC_UINTEGER_16) && defined (HAVE_GFC_UINTEGER_1) + +GFC_UINTEGER_16 pow_m16_m1 (GFC_UINTEGER_16 x, GFC_UINTEGER_1 n); +export_proto(pow_m16_m1); + +inline static GFC_UINTEGER_16 +power_simple_m16_m1 (GFC_UINTEGER_16 x, GFC_UINTEGER_1 n) +{ + GFC_UINTEGER_16 pow = 1; + for (;;) + { + if (n & 1) + pow *= x; + n >>= 1; + if (n) + x *= x; + else + break; + } + return pow; +} + +/* For odd x, Euler's theorem tells us that x**(2^(m-1)) = 1 mod 2^m. + For even x, we use the fact that (2*x)^m = 0 mod 2^m. */ + +GFC_UINTEGER_16 +pow_m16_m1 (GFC_UINTEGER_16 x, GFC_UINTEGER_1 n) +{ + const GFC_UINTEGER_16 mask = (GFC_UINTEGER_16) (-1) / 2; + if (n == 0) + return 1; + + if (x == 0) + return 0; + + if (x & 1) + return power_simple_m16_m1 (x, n & mask); + + if (n > sizeof (x) * 8) + return 0; + + return power_simple_m16_m1 (x, n); +} + +#endif diff --git a/libgfortran/generated/pow_m16_m16.c b/libgfortran/generated/pow_m16_m16.c new file mode 100644 index 0000000..c548186 --- /dev/null +++ b/libgfortran/generated/pow_m16_m16.c @@ -0,0 +1,79 @@ +/* Support routines for the intrinsic power (**) operator + for UNSIGNED, using modulo arithmetic. + Copyright (C) 2025 Free Software Foundation, Inc. + Contributed by Thomas Koenig. + +This file is part of the GNU Fortran 95 runtime library (libgfortran). + +Libgfortran is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public +License as published by the Free Software Foundation; either +version 3 of the License, or (at your option) any later version. + +Libgfortran 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 General Public License for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +#include "libgfortran.h" + + +/* Use 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. */ + +#if defined (HAVE_GFC_UINTEGER_16) && defined (HAVE_GFC_UINTEGER_16) + +GFC_UINTEGER_16 pow_m16_m16 (GFC_UINTEGER_16 x, GFC_UINTEGER_16 n); +export_proto(pow_m16_m16); + +inline static GFC_UINTEGER_16 +power_simple_m16_m16 (GFC_UINTEGER_16 x, GFC_UINTEGER_16 n) +{ + GFC_UINTEGER_16 pow = 1; + for (;;) + { + if (n & 1) + pow *= x; + n >>= 1; + if (n) + x *= x; + else + break; + } + return pow; +} + +/* For odd x, Euler's theorem tells us that x**(2^(m-1)) = 1 mod 2^m. + For even x, we use the fact that (2*x)^m = 0 mod 2^m. */ + +GFC_UINTEGER_16 +pow_m16_m16 (GFC_UINTEGER_16 x, GFC_UINTEGER_16 n) +{ + const GFC_UINTEGER_16 mask = (GFC_UINTEGER_16) (-1) / 2; + if (n == 0) + return 1; + + if (x == 0) + return 0; + + if (x & 1) + return power_simple_m16_m16 (x, n & mask); + + if (n > sizeof (x) * 8) + return 0; + + return power_simple_m16_m16 (x, n); +} + +#endif diff --git a/libgfortran/generated/pow_m16_m2.c b/libgfortran/generated/pow_m16_m2.c new file mode 100644 index 0000000..6f0a842 --- /dev/null +++ b/libgfortran/generated/pow_m16_m2.c @@ -0,0 +1,79 @@ +/* Support routines for the intrinsic power (**) operator + for UNSIGNED, using modulo arithmetic. + Copyright (C) 2025 Free Software Foundation, Inc. + Contributed by Thomas Koenig. + +This file is part of the GNU Fortran 95 runtime library (libgfortran). + +Libgfortran is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public +License as published by the Free Software Foundation; either +version 3 of the License, or (at your option) any later version. + +Libgfortran 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 General Public License for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +#include "libgfortran.h" + + +/* Use 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. */ + +#if defined (HAVE_GFC_UINTEGER_16) && defined (HAVE_GFC_UINTEGER_2) + +GFC_UINTEGER_16 pow_m16_m2 (GFC_UINTEGER_16 x, GFC_UINTEGER_2 n); +export_proto(pow_m16_m2); + +inline static GFC_UINTEGER_16 +power_simple_m16_m2 (GFC_UINTEGER_16 x, GFC_UINTEGER_2 n) +{ + GFC_UINTEGER_16 pow = 1; + for (;;) + { + if (n & 1) + pow *= x; + n >>= 1; + if (n) + x *= x; + else + break; + } + return pow; +} + +/* For odd x, Euler's theorem tells us that x**(2^(m-1)) = 1 mod 2^m. + For even x, we use the fact that (2*x)^m = 0 mod 2^m. */ + +GFC_UINTEGER_16 +pow_m16_m2 (GFC_UINTEGER_16 x, GFC_UINTEGER_2 n) +{ + const GFC_UINTEGER_16 mask = (GFC_UINTEGER_16) (-1) / 2; + if (n == 0) + return 1; + + if (x == 0) + return 0; + + if (x & 1) + return power_simple_m16_m2 (x, n & mask); + + if (n > sizeof (x) * 8) + return 0; + + return power_simple_m16_m2 (x, n); +} + +#endif diff --git a/libgfortran/generated/pow_m16_m4.c b/libgfortran/generated/pow_m16_m4.c new file mode 100644 index 0000000..21c4928 --- /dev/null +++ b/libgfortran/generated/pow_m16_m4.c @@ -0,0 +1,79 @@ +/* Support routines for the intrinsic power (**) operator + for UNSIGNED, using modulo arithmetic. + Copyright (C) 2025 Free Software Foundation, Inc. + Contributed by Thomas Koenig. + +This file is part of the GNU Fortran 95 runtime library (libgfortran). + +Libgfortran is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public +License as published by the Free Software Foundation; either +version 3 of the License, or (at your option) any later version. + +Libgfortran 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 General Public License for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +#include "libgfortran.h" + + +/* Use 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. */ + +#if defined (HAVE_GFC_UINTEGER_16) && defined (HAVE_GFC_UINTEGER_4) + +GFC_UINTEGER_16 pow_m16_m4 (GFC_UINTEGER_16 x, GFC_UINTEGER_4 n); +export_proto(pow_m16_m4); + +inline static GFC_UINTEGER_16 +power_simple_m16_m4 (GFC_UINTEGER_16 x, GFC_UINTEGER_4 n) +{ + GFC_UINTEGER_16 pow = 1; + for (;;) + { + if (n & 1) + pow *= x; + n >>= 1; + if (n) + x *= x; + else + break; + } + return pow; +} + +/* For odd x, Euler's theorem tells us that x**(2^(m-1)) = 1 mod 2^m. + For even x, we use the fact that (2*x)^m = 0 mod 2^m. */ + +GFC_UINTEGER_16 +pow_m16_m4 (GFC_UINTEGER_16 x, GFC_UINTEGER_4 n) +{ + const GFC_UINTEGER_16 mask = (GFC_UINTEGER_16) (-1) / 2; + if (n == 0) + return 1; + + if (x == 0) + return 0; + + if (x & 1) + return power_simple_m16_m4 (x, n & mask); + + if (n > sizeof (x) * 8) + return 0; + + return power_simple_m16_m4 (x, n); +} + +#endif diff --git a/libgfortran/generated/pow_m16_m8.c b/libgfortran/generated/pow_m16_m8.c new file mode 100644 index 0000000..c35636b --- /dev/null +++ b/libgfortran/generated/pow_m16_m8.c @@ -0,0 +1,79 @@ +/* Support routines for the intrinsic power (**) operator + for UNSIGNED, using modulo arithmetic. + Copyright (C) 2025 Free Software Foundation, Inc. + Contributed by Thomas Koenig. + +This file is part of the GNU Fortran 95 runtime library (libgfortran). + +Libgfortran is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public +License as published by the Free Software Foundation; either +version 3 of the License, or (at your option) any later version. + +Libgfortran 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 General Public License for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +#include "libgfortran.h" + + +/* Use 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. */ + +#if defined (HAVE_GFC_UINTEGER_16) && defined (HAVE_GFC_UINTEGER_8) + +GFC_UINTEGER_16 pow_m16_m8 (GFC_UINTEGER_16 x, GFC_UINTEGER_8 n); +export_proto(pow_m16_m8); + +inline static GFC_UINTEGER_16 +power_simple_m16_m8 (GFC_UINTEGER_16 x, GFC_UINTEGER_8 n) +{ + GFC_UINTEGER_16 pow = 1; + for (;;) + { + if (n & 1) + pow *= x; + n >>= 1; + if (n) + x *= x; + else + break; + } + return pow; +} + +/* For odd x, Euler's theorem tells us that x**(2^(m-1)) = 1 mod 2^m. + For even x, we use the fact that (2*x)^m = 0 mod 2^m. */ + +GFC_UINTEGER_16 +pow_m16_m8 (GFC_UINTEGER_16 x, GFC_UINTEGER_8 n) +{ + const GFC_UINTEGER_16 mask = (GFC_UINTEGER_16) (-1) / 2; + if (n == 0) + return 1; + + if (x == 0) + return 0; + + if (x & 1) + return power_simple_m16_m8 (x, n & mask); + + if (n > sizeof (x) * 8) + return 0; + + return power_simple_m16_m8 (x, n); +} + +#endif diff --git a/libgfortran/generated/pow_m1_m1.c b/libgfortran/generated/pow_m1_m1.c new file mode 100644 index 0000000..f4737af --- /dev/null +++ b/libgfortran/generated/pow_m1_m1.c @@ -0,0 +1,79 @@ +/* Support routines for the intrinsic power (**) operator + for UNSIGNED, using modulo arithmetic. + Copyright (C) 2025 Free Software Foundation, Inc. + Contributed by Thomas Koenig. + +This file is part of the GNU Fortran 95 runtime library (libgfortran). + +Libgfortran is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public +License as published by the Free Software Foundation; either +version 3 of the License, or (at your option) any later version. + +Libgfortran 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 General Public License for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +#include "libgfortran.h" + + +/* Use 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. */ + +#if defined (HAVE_GFC_UINTEGER_1) && defined (HAVE_GFC_UINTEGER_1) + +GFC_UINTEGER_1 pow_m1_m1 (GFC_UINTEGER_1 x, GFC_UINTEGER_1 n); +export_proto(pow_m1_m1); + +inline static GFC_UINTEGER_1 +power_simple_m1_m1 (GFC_UINTEGER_1 x, GFC_UINTEGER_1 n) +{ + GFC_UINTEGER_1 pow = 1; + for (;;) + { + if (n & 1) + pow *= x; + n >>= 1; + if (n) + x *= x; + else + break; + } + return pow; +} + +/* For odd x, Euler's theorem tells us that x**(2^(m-1)) = 1 mod 2^m. + For even x, we use the fact that (2*x)^m = 0 mod 2^m. */ + +GFC_UINTEGER_1 +pow_m1_m1 (GFC_UINTEGER_1 x, GFC_UINTEGER_1 n) +{ + const GFC_UINTEGER_1 mask = (GFC_UINTEGER_1) (-1) / 2; + if (n == 0) + return 1; + + if (x == 0) + return 0; + + if (x & 1) + return power_simple_m1_m1 (x, n & mask); + + if (n > sizeof (x) * 8) + return 0; + + return power_simple_m1_m1 (x, n); +} + +#endif diff --git a/libgfortran/generated/pow_m1_m16.c b/libgfortran/generated/pow_m1_m16.c new file mode 100644 index 0000000..a8a5bf8 --- /dev/null +++ b/libgfortran/generated/pow_m1_m16.c @@ -0,0 +1,79 @@ +/* Support routines for the intrinsic power (**) operator + for UNSIGNED, using modulo arithmetic. + Copyright (C) 2025 Free Software Foundation, Inc. + Contributed by Thomas Koenig. + +This file is part of the GNU Fortran 95 runtime library (libgfortran). + +Libgfortran is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public +License as published by the Free Software Foundation; either +version 3 of the License, or (at your option) any later version. + +Libgfortran 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 General Public License for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +#include "libgfortran.h" + + +/* Use 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. */ + +#if defined (HAVE_GFC_UINTEGER_1) && defined (HAVE_GFC_UINTEGER_16) + +GFC_UINTEGER_1 pow_m1_m16 (GFC_UINTEGER_1 x, GFC_UINTEGER_16 n); +export_proto(pow_m1_m16); + +inline static GFC_UINTEGER_1 +power_simple_m1_m16 (GFC_UINTEGER_1 x, GFC_UINTEGER_16 n) +{ + GFC_UINTEGER_1 pow = 1; + for (;;) + { + if (n & 1) + pow *= x; + n >>= 1; + if (n) + x *= x; + else + break; + } + return pow; +} + +/* For odd x, Euler's theorem tells us that x**(2^(m-1)) = 1 mod 2^m. + For even x, we use the fact that (2*x)^m = 0 mod 2^m. */ + +GFC_UINTEGER_1 +pow_m1_m16 (GFC_UINTEGER_1 x, GFC_UINTEGER_16 n) +{ + const GFC_UINTEGER_1 mask = (GFC_UINTEGER_1) (-1) / 2; + if (n == 0) + return 1; + + if (x == 0) + return 0; + + if (x & 1) + return power_simple_m1_m16 (x, n & mask); + + if (n > sizeof (x) * 8) + return 0; + + return power_simple_m1_m16 (x, n); +} + +#endif diff --git a/libgfortran/generated/pow_m1_m2.c b/libgfortran/generated/pow_m1_m2.c new file mode 100644 index 0000000..ff1a2c6 --- /dev/null +++ b/libgfortran/generated/pow_m1_m2.c @@ -0,0 +1,79 @@ +/* Support routines for the intrinsic power (**) operator + for UNSIGNED, using modulo arithmetic. + Copyright (C) 2025 Free Software Foundation, Inc. + Contributed by Thomas Koenig. + +This file is part of the GNU Fortran 95 runtime library (libgfortran). + +Libgfortran is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public +License as published by the Free Software Foundation; either +version 3 of the License, or (at your option) any later version. + +Libgfortran 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 General Public License for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +#include "libgfortran.h" + + +/* Use 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. */ + +#if defined (HAVE_GFC_UINTEGER_1) && defined (HAVE_GFC_UINTEGER_2) + +GFC_UINTEGER_1 pow_m1_m2 (GFC_UINTEGER_1 x, GFC_UINTEGER_2 n); +export_proto(pow_m1_m2); + +inline static GFC_UINTEGER_1 +power_simple_m1_m2 (GFC_UINTEGER_1 x, GFC_UINTEGER_2 n) +{ + GFC_UINTEGER_1 pow = 1; + for (;;) + { + if (n & 1) + pow *= x; + n >>= 1; + if (n) + x *= x; + else + break; + } + return pow; +} + +/* For odd x, Euler's theorem tells us that x**(2^(m-1)) = 1 mod 2^m. + For even x, we use the fact that (2*x)^m = 0 mod 2^m. */ + +GFC_UINTEGER_1 +pow_m1_m2 (GFC_UINTEGER_1 x, GFC_UINTEGER_2 n) +{ + const GFC_UINTEGER_1 mask = (GFC_UINTEGER_1) (-1) / 2; + if (n == 0) + return 1; + + if (x == 0) + return 0; + + if (x & 1) + return power_simple_m1_m2 (x, n & mask); + + if (n > sizeof (x) * 8) + return 0; + + return power_simple_m1_m2 (x, n); +} + +#endif diff --git a/libgfortran/generated/pow_m1_m4.c b/libgfortran/generated/pow_m1_m4.c new file mode 100644 index 0000000..96d9d2a --- /dev/null +++ b/libgfortran/generated/pow_m1_m4.c @@ -0,0 +1,79 @@ +/* Support routines for the intrinsic power (**) operator + for UNSIGNED, using modulo arithmetic. + Copyright (C) 2025 Free Software Foundation, Inc. + Contributed by Thomas Koenig. + +This file is part of the GNU Fortran 95 runtime library (libgfortran). + +Libgfortran is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public +License as published by the Free Software Foundation; either +version 3 of the License, or (at your option) any later version. + +Libgfortran 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 General Public License for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +#include "libgfortran.h" + + +/* Use 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. */ + +#if defined (HAVE_GFC_UINTEGER_1) && defined (HAVE_GFC_UINTEGER_4) + +GFC_UINTEGER_1 pow_m1_m4 (GFC_UINTEGER_1 x, GFC_UINTEGER_4 n); +export_proto(pow_m1_m4); + +inline static GFC_UINTEGER_1 +power_simple_m1_m4 (GFC_UINTEGER_1 x, GFC_UINTEGER_4 n) +{ + GFC_UINTEGER_1 pow = 1; + for (;;) + { + if (n & 1) + pow *= x; + n >>= 1; + if (n) + x *= x; + else + break; + } + return pow; +} + +/* For odd x, Euler's theorem tells us that x**(2^(m-1)) = 1 mod 2^m. + For even x, we use the fact that (2*x)^m = 0 mod 2^m. */ + +GFC_UINTEGER_1 +pow_m1_m4 (GFC_UINTEGER_1 x, GFC_UINTEGER_4 n) +{ + const GFC_UINTEGER_1 mask = (GFC_UINTEGER_1) (-1) / 2; + if (n == 0) + return 1; + + if (x == 0) + return 0; + + if (x & 1) + return power_simple_m1_m4 (x, n & mask); + + if (n > sizeof (x) * 8) + return 0; + + return power_simple_m1_m4 (x, n); +} + +#endif diff --git a/libgfortran/generated/pow_m1_m8.c b/libgfortran/generated/pow_m1_m8.c new file mode 100644 index 0000000..9162f5b --- /dev/null +++ b/libgfortran/generated/pow_m1_m8.c @@ -0,0 +1,79 @@ +/* Support routines for the intrinsic power (**) operator + for UNSIGNED, using modulo arithmetic. + Copyright (C) 2025 Free Software Foundation, Inc. + Contributed by Thomas Koenig. + +This file is part of the GNU Fortran 95 runtime library (libgfortran). + +Libgfortran is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public +License as published by the Free Software Foundation; either +version 3 of the License, or (at your option) any later version. + +Libgfortran 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 General Public License for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +#include "libgfortran.h" + + +/* Use 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. */ + +#if defined (HAVE_GFC_UINTEGER_1) && defined (HAVE_GFC_UINTEGER_8) + +GFC_UINTEGER_1 pow_m1_m8 (GFC_UINTEGER_1 x, GFC_UINTEGER_8 n); +export_proto(pow_m1_m8); + +inline static GFC_UINTEGER_1 +power_simple_m1_m8 (GFC_UINTEGER_1 x, GFC_UINTEGER_8 n) +{ + GFC_UINTEGER_1 pow = 1; + for (;;) + { + if (n & 1) + pow *= x; + n >>= 1; + if (n) + x *= x; + else + break; + } + return pow; +} + +/* For odd x, Euler's theorem tells us that x**(2^(m-1)) = 1 mod 2^m. + For even x, we use the fact that (2*x)^m = 0 mod 2^m. */ + +GFC_UINTEGER_1 +pow_m1_m8 (GFC_UINTEGER_1 x, GFC_UINTEGER_8 n) +{ + const GFC_UINTEGER_1 mask = (GFC_UINTEGER_1) (-1) / 2; + if (n == 0) + return 1; + + if (x == 0) + return 0; + + if (x & 1) + return power_simple_m1_m8 (x, n & mask); + + if (n > sizeof (x) * 8) + return 0; + + return power_simple_m1_m8 (x, n); +} + +#endif diff --git a/libgfortran/generated/pow_m2_m1.c b/libgfortran/generated/pow_m2_m1.c new file mode 100644 index 0000000..713721d --- /dev/null +++ b/libgfortran/generated/pow_m2_m1.c @@ -0,0 +1,79 @@ +/* Support routines for the intrinsic power (**) operator + for UNSIGNED, using modulo arithmetic. + Copyright (C) 2025 Free Software Foundation, Inc. + Contributed by Thomas Koenig. + +This file is part of the GNU Fortran 95 runtime library (libgfortran). + +Libgfortran is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public +License as published by the Free Software Foundation; either +version 3 of the License, or (at your option) any later version. + +Libgfortran 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 General Public License for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +#include "libgfortran.h" + + +/* Use 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. */ + +#if defined (HAVE_GFC_UINTEGER_2) && defined (HAVE_GFC_UINTEGER_1) + +GFC_UINTEGER_2 pow_m2_m1 (GFC_UINTEGER_2 x, GFC_UINTEGER_1 n); +export_proto(pow_m2_m1); + +inline static GFC_UINTEGER_2 +power_simple_m2_m1 (GFC_UINTEGER_2 x, GFC_UINTEGER_1 n) +{ + GFC_UINTEGER_2 pow = 1; + for (;;) + { + if (n & 1) + pow *= x; + n >>= 1; + if (n) + x *= x; + else + break; + } + return pow; +} + +/* For odd x, Euler's theorem tells us that x**(2^(m-1)) = 1 mod 2^m. + For even x, we use the fact that (2*x)^m = 0 mod 2^m. */ + +GFC_UINTEGER_2 +pow_m2_m1 (GFC_UINTEGER_2 x, GFC_UINTEGER_1 n) +{ + const GFC_UINTEGER_2 mask = (GFC_UINTEGER_2) (-1) / 2; + if (n == 0) + return 1; + + if (x == 0) + return 0; + + if (x & 1) + return power_simple_m2_m1 (x, n & mask); + + if (n > sizeof (x) * 8) + return 0; + + return power_simple_m2_m1 (x, n); +} + +#endif diff --git a/libgfortran/generated/pow_m2_m16.c b/libgfortran/generated/pow_m2_m16.c new file mode 100644 index 0000000..8006f9d --- /dev/null +++ b/libgfortran/generated/pow_m2_m16.c @@ -0,0 +1,79 @@ +/* Support routines for the intrinsic power (**) operator + for UNSIGNED, using modulo arithmetic. + Copyright (C) 2025 Free Software Foundation, Inc. + Contributed by Thomas Koenig. + +This file is part of the GNU Fortran 95 runtime library (libgfortran). + +Libgfortran is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public +License as published by the Free Software Foundation; either +version 3 of the License, or (at your option) any later version. + +Libgfortran 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 General Public License for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +#include "libgfortran.h" + + +/* Use 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. */ + +#if defined (HAVE_GFC_UINTEGER_2) && defined (HAVE_GFC_UINTEGER_16) + +GFC_UINTEGER_2 pow_m2_m16 (GFC_UINTEGER_2 x, GFC_UINTEGER_16 n); +export_proto(pow_m2_m16); + +inline static GFC_UINTEGER_2 +power_simple_m2_m16 (GFC_UINTEGER_2 x, GFC_UINTEGER_16 n) +{ + GFC_UINTEGER_2 pow = 1; + for (;;) + { + if (n & 1) + pow *= x; + n >>= 1; + if (n) + x *= x; + else + break; + } + return pow; +} + +/* For odd x, Euler's theorem tells us that x**(2^(m-1)) = 1 mod 2^m. + For even x, we use the fact that (2*x)^m = 0 mod 2^m. */ + +GFC_UINTEGER_2 +pow_m2_m16 (GFC_UINTEGER_2 x, GFC_UINTEGER_16 n) +{ + const GFC_UINTEGER_2 mask = (GFC_UINTEGER_2) (-1) / 2; + if (n == 0) + return 1; + + if (x == 0) + return 0; + + if (x & 1) + return power_simple_m2_m16 (x, n & mask); + + if (n > sizeof (x) * 8) + return 0; + + return power_simple_m2_m16 (x, n); +} + +#endif diff --git a/libgfortran/generated/pow_m2_m2.c b/libgfortran/generated/pow_m2_m2.c new file mode 100644 index 0000000..4d01c22 --- /dev/null +++ b/libgfortran/generated/pow_m2_m2.c @@ -0,0 +1,79 @@ +/* Support routines for the intrinsic power (**) operator + for UNSIGNED, using modulo arithmetic. + Copyright (C) 2025 Free Software Foundation, Inc. + Contributed by Thomas Koenig. + +This file is part of the GNU Fortran 95 runtime library (libgfortran). + +Libgfortran is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public +License as published by the Free Software Foundation; either +version 3 of the License, or (at your option) any later version. + +Libgfortran 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 General Public License for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +#include "libgfortran.h" + + +/* Use 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. */ + +#if defined (HAVE_GFC_UINTEGER_2) && defined (HAVE_GFC_UINTEGER_2) + +GFC_UINTEGER_2 pow_m2_m2 (GFC_UINTEGER_2 x, GFC_UINTEGER_2 n); +export_proto(pow_m2_m2); + +inline static GFC_UINTEGER_2 +power_simple_m2_m2 (GFC_UINTEGER_2 x, GFC_UINTEGER_2 n) +{ + GFC_UINTEGER_2 pow = 1; + for (;;) + { + if (n & 1) + pow *= x; + n >>= 1; + if (n) + x *= x; + else + break; + } + return pow; +} + +/* For odd x, Euler's theorem tells us that x**(2^(m-1)) = 1 mod 2^m. + For even x, we use the fact that (2*x)^m = 0 mod 2^m. */ + +GFC_UINTEGER_2 +pow_m2_m2 (GFC_UINTEGER_2 x, GFC_UINTEGER_2 n) +{ + const GFC_UINTEGER_2 mask = (GFC_UINTEGER_2) (-1) / 2; + if (n == 0) + return 1; + + if (x == 0) + return 0; + + if (x & 1) + return power_simple_m2_m2 (x, n & mask); + + if (n > sizeof (x) * 8) + return 0; + + return power_simple_m2_m2 (x, n); +} + +#endif diff --git a/libgfortran/generated/pow_m2_m4.c b/libgfortran/generated/pow_m2_m4.c new file mode 100644 index 0000000..c044e2b --- /dev/null +++ b/libgfortran/generated/pow_m2_m4.c @@ -0,0 +1,79 @@ +/* Support routines for the intrinsic power (**) operator + for UNSIGNED, using modulo arithmetic. + Copyright (C) 2025 Free Software Foundation, Inc. + Contributed by Thomas Koenig. + +This file is part of the GNU Fortran 95 runtime library (libgfortran). + +Libgfortran is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public +License as published by the Free Software Foundation; either +version 3 of the License, or (at your option) any later version. + +Libgfortran 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 General Public License for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +#include "libgfortran.h" + + +/* Use 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. */ + +#if defined (HAVE_GFC_UINTEGER_2) && defined (HAVE_GFC_UINTEGER_4) + +GFC_UINTEGER_2 pow_m2_m4 (GFC_UINTEGER_2 x, GFC_UINTEGER_4 n); +export_proto(pow_m2_m4); + +inline static GFC_UINTEGER_2 +power_simple_m2_m4 (GFC_UINTEGER_2 x, GFC_UINTEGER_4 n) +{ + GFC_UINTEGER_2 pow = 1; + for (;;) + { + if (n & 1) + pow *= x; + n >>= 1; + if (n) + x *= x; + else + break; + } + return pow; +} + +/* For odd x, Euler's theorem tells us that x**(2^(m-1)) = 1 mod 2^m. + For even x, we use the fact that (2*x)^m = 0 mod 2^m. */ + +GFC_UINTEGER_2 +pow_m2_m4 (GFC_UINTEGER_2 x, GFC_UINTEGER_4 n) +{ + const GFC_UINTEGER_2 mask = (GFC_UINTEGER_2) (-1) / 2; + if (n == 0) + return 1; + + if (x == 0) + return 0; + + if (x & 1) + return power_simple_m2_m4 (x, n & mask); + + if (n > sizeof (x) * 8) + return 0; + + return power_simple_m2_m4 (x, n); +} + +#endif diff --git a/libgfortran/generated/pow_m2_m8.c b/libgfortran/generated/pow_m2_m8.c new file mode 100644 index 0000000..ec50d1c --- /dev/null +++ b/libgfortran/generated/pow_m2_m8.c @@ -0,0 +1,79 @@ +/* Support routines for the intrinsic power (**) operator + for UNSIGNED, using modulo arithmetic. + Copyright (C) 2025 Free Software Foundation, Inc. + Contributed by Thomas Koenig. + +This file is part of the GNU Fortran 95 runtime library (libgfortran). + +Libgfortran is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public +License as published by the Free Software Foundation; either +version 3 of the License, or (at your option) any later version. + +Libgfortran 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 General Public License for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +#include "libgfortran.h" + + +/* Use 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. */ + +#if defined (HAVE_GFC_UINTEGER_2) && defined (HAVE_GFC_UINTEGER_8) + +GFC_UINTEGER_2 pow_m2_m8 (GFC_UINTEGER_2 x, GFC_UINTEGER_8 n); +export_proto(pow_m2_m8); + +inline static GFC_UINTEGER_2 +power_simple_m2_m8 (GFC_UINTEGER_2 x, GFC_UINTEGER_8 n) +{ + GFC_UINTEGER_2 pow = 1; + for (;;) + { + if (n & 1) + pow *= x; + n >>= 1; + if (n) + x *= x; + else + break; + } + return pow; +} + +/* For odd x, Euler's theorem tells us that x**(2^(m-1)) = 1 mod 2^m. + For even x, we use the fact that (2*x)^m = 0 mod 2^m. */ + +GFC_UINTEGER_2 +pow_m2_m8 (GFC_UINTEGER_2 x, GFC_UINTEGER_8 n) +{ + const GFC_UINTEGER_2 mask = (GFC_UINTEGER_2) (-1) / 2; + if (n == 0) + return 1; + + if (x == 0) + return 0; + + if (x & 1) + return power_simple_m2_m8 (x, n & mask); + + if (n > sizeof (x) * 8) + return 0; + + return power_simple_m2_m8 (x, n); +} + +#endif diff --git a/libgfortran/generated/pow_m4_m1.c b/libgfortran/generated/pow_m4_m1.c new file mode 100644 index 0000000..2915e0d --- /dev/null +++ b/libgfortran/generated/pow_m4_m1.c @@ -0,0 +1,79 @@ +/* Support routines for the intrinsic power (**) operator + for UNSIGNED, using modulo arithmetic. + Copyright (C) 2025 Free Software Foundation, Inc. + Contributed by Thomas Koenig. + +This file is part of the GNU Fortran 95 runtime library (libgfortran). + +Libgfortran is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public +License as published by the Free Software Foundation; either +version 3 of the License, or (at your option) any later version. + +Libgfortran 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 General Public License for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +#include "libgfortran.h" + + +/* Use 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. */ + +#if defined (HAVE_GFC_UINTEGER_4) && defined (HAVE_GFC_UINTEGER_1) + +GFC_UINTEGER_4 pow_m4_m1 (GFC_UINTEGER_4 x, GFC_UINTEGER_1 n); +export_proto(pow_m4_m1); + +inline static GFC_UINTEGER_4 +power_simple_m4_m1 (GFC_UINTEGER_4 x, GFC_UINTEGER_1 n) +{ + GFC_UINTEGER_4 pow = 1; + for (;;) + { + if (n & 1) + pow *= x; + n >>= 1; + if (n) + x *= x; + else + break; + } + return pow; +} + +/* For odd x, Euler's theorem tells us that x**(2^(m-1)) = 1 mod 2^m. + For even x, we use the fact that (2*x)^m = 0 mod 2^m. */ + +GFC_UINTEGER_4 +pow_m4_m1 (GFC_UINTEGER_4 x, GFC_UINTEGER_1 n) +{ + const GFC_UINTEGER_4 mask = (GFC_UINTEGER_4) (-1) / 2; + if (n == 0) + return 1; + + if (x == 0) + return 0; + + if (x & 1) + return power_simple_m4_m1 (x, n & mask); + + if (n > sizeof (x) * 8) + return 0; + + return power_simple_m4_m1 (x, n); +} + +#endif diff --git a/libgfortran/generated/pow_m4_m16.c b/libgfortran/generated/pow_m4_m16.c new file mode 100644 index 0000000..400047b --- /dev/null +++ b/libgfortran/generated/pow_m4_m16.c @@ -0,0 +1,79 @@ +/* Support routines for the intrinsic power (**) operator + for UNSIGNED, using modulo arithmetic. + Copyright (C) 2025 Free Software Foundation, Inc. + Contributed by Thomas Koenig. + +This file is part of the GNU Fortran 95 runtime library (libgfortran). + +Libgfortran is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public +License as published by the Free Software Foundation; either +version 3 of the License, or (at your option) any later version. + +Libgfortran 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 General Public License for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +#include "libgfortran.h" + + +/* Use 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. */ + +#if defined (HAVE_GFC_UINTEGER_4) && defined (HAVE_GFC_UINTEGER_16) + +GFC_UINTEGER_4 pow_m4_m16 (GFC_UINTEGER_4 x, GFC_UINTEGER_16 n); +export_proto(pow_m4_m16); + +inline static GFC_UINTEGER_4 +power_simple_m4_m16 (GFC_UINTEGER_4 x, GFC_UINTEGER_16 n) +{ + GFC_UINTEGER_4 pow = 1; + for (;;) + { + if (n & 1) + pow *= x; + n >>= 1; + if (n) + x *= x; + else + break; + } + return pow; +} + +/* For odd x, Euler's theorem tells us that x**(2^(m-1)) = 1 mod 2^m. + For even x, we use the fact that (2*x)^m = 0 mod 2^m. */ + +GFC_UINTEGER_4 +pow_m4_m16 (GFC_UINTEGER_4 x, GFC_UINTEGER_16 n) +{ + const GFC_UINTEGER_4 mask = (GFC_UINTEGER_4) (-1) / 2; + if (n == 0) + return 1; + + if (x == 0) + return 0; + + if (x & 1) + return power_simple_m4_m16 (x, n & mask); + + if (n > sizeof (x) * 8) + return 0; + + return power_simple_m4_m16 (x, n); +} + +#endif diff --git a/libgfortran/generated/pow_m4_m2.c b/libgfortran/generated/pow_m4_m2.c new file mode 100644 index 0000000..40b51dd --- /dev/null +++ b/libgfortran/generated/pow_m4_m2.c @@ -0,0 +1,79 @@ +/* Support routines for the intrinsic power (**) operator + for UNSIGNED, using modulo arithmetic. + Copyright (C) 2025 Free Software Foundation, Inc. + Contributed by Thomas Koenig. + +This file is part of the GNU Fortran 95 runtime library (libgfortran). + +Libgfortran is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public +License as published by the Free Software Foundation; either +version 3 of the License, or (at your option) any later version. + +Libgfortran 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 General Public License for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +#include "libgfortran.h" + + +/* Use 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. */ + +#if defined (HAVE_GFC_UINTEGER_4) && defined (HAVE_GFC_UINTEGER_2) + +GFC_UINTEGER_4 pow_m4_m2 (GFC_UINTEGER_4 x, GFC_UINTEGER_2 n); +export_proto(pow_m4_m2); + +inline static GFC_UINTEGER_4 +power_simple_m4_m2 (GFC_UINTEGER_4 x, GFC_UINTEGER_2 n) +{ + GFC_UINTEGER_4 pow = 1; + for (;;) + { + if (n & 1) + pow *= x; + n >>= 1; + if (n) + x *= x; + else + break; + } + return pow; +} + +/* For odd x, Euler's theorem tells us that x**(2^(m-1)) = 1 mod 2^m. + For even x, we use the fact that (2*x)^m = 0 mod 2^m. */ + +GFC_UINTEGER_4 +pow_m4_m2 (GFC_UINTEGER_4 x, GFC_UINTEGER_2 n) +{ + const GFC_UINTEGER_4 mask = (GFC_UINTEGER_4) (-1) / 2; + if (n == 0) + return 1; + + if (x == 0) + return 0; + + if (x & 1) + return power_simple_m4_m2 (x, n & mask); + + if (n > sizeof (x) * 8) + return 0; + + return power_simple_m4_m2 (x, n); +} + +#endif diff --git a/libgfortran/generated/pow_m4_m4.c b/libgfortran/generated/pow_m4_m4.c new file mode 100644 index 0000000..45cc693 --- /dev/null +++ b/libgfortran/generated/pow_m4_m4.c @@ -0,0 +1,79 @@ +/* Support routines for the intrinsic power (**) operator + for UNSIGNED, using modulo arithmetic. + Copyright (C) 2025 Free Software Foundation, Inc. + Contributed by Thomas Koenig. + +This file is part of the GNU Fortran 95 runtime library (libgfortran). + +Libgfortran is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public +License as published by the Free Software Foundation; either +version 3 of the License, or (at your option) any later version. + +Libgfortran 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 General Public License for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +#include "libgfortran.h" + + +/* Use 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. */ + +#if defined (HAVE_GFC_UINTEGER_4) && defined (HAVE_GFC_UINTEGER_4) + +GFC_UINTEGER_4 pow_m4_m4 (GFC_UINTEGER_4 x, GFC_UINTEGER_4 n); +export_proto(pow_m4_m4); + +inline static GFC_UINTEGER_4 +power_simple_m4_m4 (GFC_UINTEGER_4 x, GFC_UINTEGER_4 n) +{ + GFC_UINTEGER_4 pow = 1; + for (;;) + { + if (n & 1) + pow *= x; + n >>= 1; + if (n) + x *= x; + else + break; + } + return pow; +} + +/* For odd x, Euler's theorem tells us that x**(2^(m-1)) = 1 mod 2^m. + For even x, we use the fact that (2*x)^m = 0 mod 2^m. */ + +GFC_UINTEGER_4 +pow_m4_m4 (GFC_UINTEGER_4 x, GFC_UINTEGER_4 n) +{ + const GFC_UINTEGER_4 mask = (GFC_UINTEGER_4) (-1) / 2; + if (n == 0) + return 1; + + if (x == 0) + return 0; + + if (x & 1) + return power_simple_m4_m4 (x, n & mask); + + if (n > sizeof (x) * 8) + return 0; + + return power_simple_m4_m4 (x, n); +} + +#endif diff --git a/libgfortran/generated/pow_m4_m8.c b/libgfortran/generated/pow_m4_m8.c new file mode 100644 index 0000000..d03e86b --- /dev/null +++ b/libgfortran/generated/pow_m4_m8.c @@ -0,0 +1,79 @@ +/* Support routines for the intrinsic power (**) operator + for UNSIGNED, using modulo arithmetic. + Copyright (C) 2025 Free Software Foundation, Inc. + Contributed by Thomas Koenig. + +This file is part of the GNU Fortran 95 runtime library (libgfortran). + +Libgfortran is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public +License as published by the Free Software Foundation; either +version 3 of the License, or (at your option) any later version. + +Libgfortran 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 General Public License for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +#include "libgfortran.h" + + +/* Use 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. */ + +#if defined (HAVE_GFC_UINTEGER_4) && defined (HAVE_GFC_UINTEGER_8) + +GFC_UINTEGER_4 pow_m4_m8 (GFC_UINTEGER_4 x, GFC_UINTEGER_8 n); +export_proto(pow_m4_m8); + +inline static GFC_UINTEGER_4 +power_simple_m4_m8 (GFC_UINTEGER_4 x, GFC_UINTEGER_8 n) +{ + GFC_UINTEGER_4 pow = 1; + for (;;) + { + if (n & 1) + pow *= x; + n >>= 1; + if (n) + x *= x; + else + break; + } + return pow; +} + +/* For odd x, Euler's theorem tells us that x**(2^(m-1)) = 1 mod 2^m. + For even x, we use the fact that (2*x)^m = 0 mod 2^m. */ + +GFC_UINTEGER_4 +pow_m4_m8 (GFC_UINTEGER_4 x, GFC_UINTEGER_8 n) +{ + const GFC_UINTEGER_4 mask = (GFC_UINTEGER_4) (-1) / 2; + if (n == 0) + return 1; + + if (x == 0) + return 0; + + if (x & 1) + return power_simple_m4_m8 (x, n & mask); + + if (n > sizeof (x) * 8) + return 0; + + return power_simple_m4_m8 (x, n); +} + +#endif diff --git a/libgfortran/generated/pow_m8_m1.c b/libgfortran/generated/pow_m8_m1.c new file mode 100644 index 0000000..dd9c8b2 --- /dev/null +++ b/libgfortran/generated/pow_m8_m1.c @@ -0,0 +1,79 @@ +/* Support routines for the intrinsic power (**) operator + for UNSIGNED, using modulo arithmetic. + Copyright (C) 2025 Free Software Foundation, Inc. + Contributed by Thomas Koenig. + +This file is part of the GNU Fortran 95 runtime library (libgfortran). + +Libgfortran is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public +License as published by the Free Software Foundation; either +version 3 of the License, or (at your option) any later version. + +Libgfortran 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 General Public License for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +#include "libgfortran.h" + + +/* Use 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. */ + +#if defined (HAVE_GFC_UINTEGER_8) && defined (HAVE_GFC_UINTEGER_1) + +GFC_UINTEGER_8 pow_m8_m1 (GFC_UINTEGER_8 x, GFC_UINTEGER_1 n); +export_proto(pow_m8_m1); + +inline static GFC_UINTEGER_8 +power_simple_m8_m1 (GFC_UINTEGER_8 x, GFC_UINTEGER_1 n) +{ + GFC_UINTEGER_8 pow = 1; + for (;;) + { + if (n & 1) + pow *= x; + n >>= 1; + if (n) + x *= x; + else + break; + } + return pow; +} + +/* For odd x, Euler's theorem tells us that x**(2^(m-1)) = 1 mod 2^m. + For even x, we use the fact that (2*x)^m = 0 mod 2^m. */ + +GFC_UINTEGER_8 +pow_m8_m1 (GFC_UINTEGER_8 x, GFC_UINTEGER_1 n) +{ + const GFC_UINTEGER_8 mask = (GFC_UINTEGER_8) (-1) / 2; + if (n == 0) + return 1; + + if (x == 0) + return 0; + + if (x & 1) + return power_simple_m8_m1 (x, n & mask); + + if (n > sizeof (x) * 8) + return 0; + + return power_simple_m8_m1 (x, n); +} + +#endif diff --git a/libgfortran/generated/pow_m8_m16.c b/libgfortran/generated/pow_m8_m16.c new file mode 100644 index 0000000..fe973e5 --- /dev/null +++ b/libgfortran/generated/pow_m8_m16.c @@ -0,0 +1,79 @@ +/* Support routines for the intrinsic power (**) operator + for UNSIGNED, using modulo arithmetic. + Copyright (C) 2025 Free Software Foundation, Inc. + Contributed by Thomas Koenig. + +This file is part of the GNU Fortran 95 runtime library (libgfortran). + +Libgfortran is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public +License as published by the Free Software Foundation; either +version 3 of the License, or (at your option) any later version. + +Libgfortran 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 General Public License for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +#include "libgfortran.h" + + +/* Use 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. */ + +#if defined (HAVE_GFC_UINTEGER_8) && defined (HAVE_GFC_UINTEGER_16) + +GFC_UINTEGER_8 pow_m8_m16 (GFC_UINTEGER_8 x, GFC_UINTEGER_16 n); +export_proto(pow_m8_m16); + +inline static GFC_UINTEGER_8 +power_simple_m8_m16 (GFC_UINTEGER_8 x, GFC_UINTEGER_16 n) +{ + GFC_UINTEGER_8 pow = 1; + for (;;) + { + if (n & 1) + pow *= x; + n >>= 1; + if (n) + x *= x; + else + break; + } + return pow; +} + +/* For odd x, Euler's theorem tells us that x**(2^(m-1)) = 1 mod 2^m. + For even x, we use the fact that (2*x)^m = 0 mod 2^m. */ + +GFC_UINTEGER_8 +pow_m8_m16 (GFC_UINTEGER_8 x, GFC_UINTEGER_16 n) +{ + const GFC_UINTEGER_8 mask = (GFC_UINTEGER_8) (-1) / 2; + if (n == 0) + return 1; + + if (x == 0) + return 0; + + if (x & 1) + return power_simple_m8_m16 (x, n & mask); + + if (n > sizeof (x) * 8) + return 0; + + return power_simple_m8_m16 (x, n); +} + +#endif diff --git a/libgfortran/generated/pow_m8_m2.c b/libgfortran/generated/pow_m8_m2.c new file mode 100644 index 0000000..adf3e77 --- /dev/null +++ b/libgfortran/generated/pow_m8_m2.c @@ -0,0 +1,79 @@ +/* Support routines for the intrinsic power (**) operator + for UNSIGNED, using modulo arithmetic. + Copyright (C) 2025 Free Software Foundation, Inc. + Contributed by Thomas Koenig. + +This file is part of the GNU Fortran 95 runtime library (libgfortran). + +Libgfortran is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public +License as published by the Free Software Foundation; either +version 3 of the License, or (at your option) any later version. + +Libgfortran 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 General Public License for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +#include "libgfortran.h" + + +/* Use 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. */ + +#if defined (HAVE_GFC_UINTEGER_8) && defined (HAVE_GFC_UINTEGER_2) + +GFC_UINTEGER_8 pow_m8_m2 (GFC_UINTEGER_8 x, GFC_UINTEGER_2 n); +export_proto(pow_m8_m2); + +inline static GFC_UINTEGER_8 +power_simple_m8_m2 (GFC_UINTEGER_8 x, GFC_UINTEGER_2 n) +{ + GFC_UINTEGER_8 pow = 1; + for (;;) + { + if (n & 1) + pow *= x; + n >>= 1; + if (n) + x *= x; + else + break; + } + return pow; +} + +/* For odd x, Euler's theorem tells us that x**(2^(m-1)) = 1 mod 2^m. + For even x, we use the fact that (2*x)^m = 0 mod 2^m. */ + +GFC_UINTEGER_8 +pow_m8_m2 (GFC_UINTEGER_8 x, GFC_UINTEGER_2 n) +{ + const GFC_UINTEGER_8 mask = (GFC_UINTEGER_8) (-1) / 2; + if (n == 0) + return 1; + + if (x == 0) + return 0; + + if (x & 1) + return power_simple_m8_m2 (x, n & mask); + + if (n > sizeof (x) * 8) + return 0; + + return power_simple_m8_m2 (x, n); +} + +#endif diff --git a/libgfortran/generated/pow_m8_m4.c b/libgfortran/generated/pow_m8_m4.c new file mode 100644 index 0000000..0833ba0 --- /dev/null +++ b/libgfortran/generated/pow_m8_m4.c @@ -0,0 +1,79 @@ +/* Support routines for the intrinsic power (**) operator + for UNSIGNED, using modulo arithmetic. + Copyright (C) 2025 Free Software Foundation, Inc. + Contributed by Thomas Koenig. + +This file is part of the GNU Fortran 95 runtime library (libgfortran). + +Libgfortran is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public +License as published by the Free Software Foundation; either +version 3 of the License, or (at your option) any later version. + +Libgfortran 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 General Public License for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +#include "libgfortran.h" + + +/* Use 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. */ + +#if defined (HAVE_GFC_UINTEGER_8) && defined (HAVE_GFC_UINTEGER_4) + +GFC_UINTEGER_8 pow_m8_m4 (GFC_UINTEGER_8 x, GFC_UINTEGER_4 n); +export_proto(pow_m8_m4); + +inline static GFC_UINTEGER_8 +power_simple_m8_m4 (GFC_UINTEGER_8 x, GFC_UINTEGER_4 n) +{ + GFC_UINTEGER_8 pow = 1; + for (;;) + { + if (n & 1) + pow *= x; + n >>= 1; + if (n) + x *= x; + else + break; + } + return pow; +} + +/* For odd x, Euler's theorem tells us that x**(2^(m-1)) = 1 mod 2^m. + For even x, we use the fact that (2*x)^m = 0 mod 2^m. */ + +GFC_UINTEGER_8 +pow_m8_m4 (GFC_UINTEGER_8 x, GFC_UINTEGER_4 n) +{ + const GFC_UINTEGER_8 mask = (GFC_UINTEGER_8) (-1) / 2; + if (n == 0) + return 1; + + if (x == 0) + return 0; + + if (x & 1) + return power_simple_m8_m4 (x, n & mask); + + if (n > sizeof (x) * 8) + return 0; + + return power_simple_m8_m4 (x, n); +} + +#endif diff --git a/libgfortran/generated/pow_m8_m8.c b/libgfortran/generated/pow_m8_m8.c new file mode 100644 index 0000000..d21899b --- /dev/null +++ b/libgfortran/generated/pow_m8_m8.c @@ -0,0 +1,79 @@ +/* Support routines for the intrinsic power (**) operator + for UNSIGNED, using modulo arithmetic. + Copyright (C) 2025 Free Software Foundation, Inc. + Contributed by Thomas Koenig. + +This file is part of the GNU Fortran 95 runtime library (libgfortran). + +Libgfortran is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public +License as published by the Free Software Foundation; either +version 3 of the License, or (at your option) any later version. + +Libgfortran 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 General Public License for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +#include "libgfortran.h" + + +/* Use 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. */ + +#if defined (HAVE_GFC_UINTEGER_8) && defined (HAVE_GFC_UINTEGER_8) + +GFC_UINTEGER_8 pow_m8_m8 (GFC_UINTEGER_8 x, GFC_UINTEGER_8 n); +export_proto(pow_m8_m8); + +inline static GFC_UINTEGER_8 +power_simple_m8_m8 (GFC_UINTEGER_8 x, GFC_UINTEGER_8 n) +{ + GFC_UINTEGER_8 pow = 1; + for (;;) + { + if (n & 1) + pow *= x; + n >>= 1; + if (n) + x *= x; + else + break; + } + return pow; +} + +/* For odd x, Euler's theorem tells us that x**(2^(m-1)) = 1 mod 2^m. + For even x, we use the fact that (2*x)^m = 0 mod 2^m. */ + +GFC_UINTEGER_8 +pow_m8_m8 (GFC_UINTEGER_8 x, GFC_UINTEGER_8 n) +{ + const GFC_UINTEGER_8 mask = (GFC_UINTEGER_8) (-1) / 2; + if (n == 0) + return 1; + + if (x == 0) + return 0; + + if (x & 1) + return power_simple_m8_m8 (x, n & mask); + + if (n > sizeof (x) * 8) + return 0; + + return power_simple_m8_m8 (x, n); +} + +#endif diff --git a/libgfortran/gfortran.map b/libgfortran/gfortran.map index 851df21..159a862 100644 --- a/libgfortran/gfortran.map +++ b/libgfortran/gfortran.map @@ -1998,4 +1998,29 @@ GFORTRAN_15 { _gfortran_sminloc1_8_m4; _gfortran_sminloc1_8_m8; _gfortran_report_exception; + _gfortran_pow_m1_m1; + _gfortran_pow_m1_m2; + _gfortran_pow_m1_m4; + _gfortran_pow_m1_m8; + _gfortran_pow_m1_m16; + _gfortran_pow_m2_m1; + _gfortran_pow_m2_m2; + _gfortran_pow_m2_m4; + _gfortran_pow_m2_m8; + _gfortran_pow_m2_m16; + _gfortran_pow_m4_m1; + _gfortran_pow_m4_m2; + _gfortran_pow_m4_m4; + _gfortran_pow_m4_m8; + _gfortran_pow_m4_m16; + _gfortran_pow_m8_m1; + _gfortran_pow_m8_m2; + _gfortran_pow_m8_m4; + _gfortran_pow_m8_m8; + _gfortran_pow_m8_m16; + _gfortran_pow_m16_m1; + _gfortran_pow_m16_m2; + _gfortran_pow_m16_m4; + _gfortran_pow_m16_m8; + _gfortran_pow_m16_m16; } GFORTRAN_14; diff --git a/libgfortran/m4/powu.m4 b/libgfortran/m4/powu.m4 new file mode 100644 index 0000000..d8bc375 --- /dev/null +++ b/libgfortran/m4/powu.m4 @@ -0,0 +1,80 @@ +`/* Support routines for the intrinsic power (**) operator + for UNSIGNED, using modulo arithmetic. + Copyright (C) 2025 Free Software Foundation, Inc. + Contributed by Thomas Koenig. + +This file is part of the GNU Fortran 95 runtime library (libgfortran). + +Libgfortran is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public +License as published by the Free Software Foundation; either +version 3 of the License, or (at your option) any later version. + +Libgfortran 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 General Public License for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +#include "libgfortran.h"' + +include(iparm.m4)dnl + +/* Use 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. */ + +`#if defined (HAVE_'rtype_name`) && defined (HAVE_'atype_name`)' + +rtype_name `pow_'rtype_code`_'atype_code` ('rtype_name` x, 'atype_name` n); +export_proto(pow_'rtype_code`_'atype_code`); + +inline static 'rtype_name` +power_simple_'rtype_code`_'atype_code` ('rtype_name` x, 'atype_name` n) +{ + 'rtype_name` pow = 1; + for (;;) + { + if (n & 1) + pow *= x; + n >>= 1; + if (n) + x *= x; + else + break; + } + return pow; +} + +/* For odd x, Euler''`s theorem tells us that x**(2^(m-1)) = 1 mod 2^m. + For even x, we use the fact that (2*x)^m = 0 mod 2^m. */ + +'rtype_name` +pow_'rtype_code`_'atype_code` ('rtype_name` x, 'atype_name` n) +{ + const 'rtype_name` mask = ('rtype_name`) (-1) / 2; + if (n == 0) + return 1; + + if (x == 0) + return 0; + + if (x & 1) + return power_simple_'rtype_code`_'atype_code` (x, n & mask); + + if (n > sizeof (x) * 8) + return 0; + + return power_simple_'rtype_code`_'atype_code` (x, n); +} + +#endif' |