@item @code{MVBITS}
@item @code{RANGE}
@item @code{TRANSFER}
-@item @code{MATMUL} and @code{DOT_PRODUCT}
+@item @code{SUM}, @code{PRODUCT}, @code{MATMUL} and @code{DOT_PRODUCT}
@end itemize
This list will grow in the near future.
@c ---------------------------------------------------------------------
static void
resolve_transformational (const char *name, gfc_expr *f, gfc_expr *array,
- gfc_expr *dim, gfc_expr *mask)
+ gfc_expr *dim, gfc_expr *mask,
+ bool use_integer = false)
{
const char *prefix;
+ bt type;
f->ts = array->ts;
gfc_resolve_dim_arg (dim);
}
+ /* For those intrinsic like SUM where we use the integer version
+ actually uses unsigned, but we call it as the integer
+ version. */
+
+ if (use_integer && array->ts.type == BT_UNSIGNED)
+ type = BT_INTEGER;
+ else
+ type = array->ts.type;
+
f->value.function.name
= gfc_get_string (PREFIX ("%s%s_%c%d"), prefix, name,
- gfc_type_letter (array->ts.type),
+ gfc_type_letter (type),
gfc_type_abi_kind (&array->ts));
}
gfc_resolve_product (gfc_expr *f, gfc_expr *array, gfc_expr *dim,
gfc_expr *mask)
{
- resolve_transformational ("product", f, array, dim, mask);
+ resolve_transformational ("product", f, array, dim, mask, true);
}
void
gfc_resolve_sum (gfc_expr *f, gfc_expr *array, gfc_expr *dim, gfc_expr *mask)
{
- resolve_transformational ("sum", f, array, dim, mask);
+ resolve_transformational ("sum", f, array, dim, mask, true);
}
mpz_set_si (e->value.integer, init);
break;
- case BT_REAL:
+ case BT_UNSIGNED:
+ if (init == INT_MIN)
+ mpz_set_ui (e->value.integer, 0);
+ else if (init == INT_MAX)
+ mpz_set (e->value.integer, gfc_unsigned_kinds[i].huge);
+ else
+ mpz_set_ui (e->value.integer, init);
+ break;
+
+ case BT_REAL:
if (init == INT_MIN)
{
mpfr_set (e->value.real, gfc_real_kinds[i].huge, GFC_RND_MODE);
#if defined (HAVE_GFC_COMPLEX_10) && defined (HAVE_GFC_COMPLEX_10)
-extern void product_c10 (gfc_array_c10 * const restrict,
+extern void product_c10 (gfc_array_c10 * const restrict,
gfc_array_c10 * const restrict, const index_type * const restrict);
export_proto(product_c10);
void
-product_c10 (gfc_array_c10 * const restrict retarray,
- gfc_array_c10 * const restrict array,
+product_c10 (gfc_array_c10 * const restrict retarray,
+ gfc_array_c10 * const restrict array,
const index_type * const restrict pdim)
{
index_type count[GFC_MAX_DIMENSIONS];
}
-extern void mproduct_c10 (gfc_array_c10 * const restrict,
+extern void mproduct_c10 (gfc_array_c10 * const restrict,
gfc_array_c10 * const restrict, const index_type * const restrict,
gfc_array_l1 * const restrict);
export_proto(mproduct_c10);
void
-mproduct_c10 (gfc_array_c10 * const restrict retarray,
- gfc_array_c10 * const restrict array,
- const index_type * const restrict pdim,
+mproduct_c10 (gfc_array_c10 * const restrict retarray,
+ gfc_array_c10 * const restrict array,
+ const index_type * const restrict pdim,
gfc_array_l1 * const restrict mask)
{
index_type count[GFC_MAX_DIMENSIONS];
}
-extern void sproduct_c10 (gfc_array_c10 * const restrict,
+extern void sproduct_c10 (gfc_array_c10 * const restrict,
gfc_array_c10 * const restrict, const index_type * const restrict,
GFC_LOGICAL_4 *);
export_proto(sproduct_c10);
void
-sproduct_c10 (gfc_array_c10 * const restrict retarray,
- gfc_array_c10 * const restrict array,
- const index_type * const restrict pdim,
+sproduct_c10 (gfc_array_c10 * const restrict retarray,
+ gfc_array_c10 * const restrict array,
+ const index_type * const restrict pdim,
GFC_LOGICAL_4 * mask)
{
index_type count[GFC_MAX_DIMENSIONS];
#if defined (HAVE_GFC_COMPLEX_16) && defined (HAVE_GFC_COMPLEX_16)
-extern void product_c16 (gfc_array_c16 * const restrict,
+extern void product_c16 (gfc_array_c16 * const restrict,
gfc_array_c16 * const restrict, const index_type * const restrict);
export_proto(product_c16);
void
-product_c16 (gfc_array_c16 * const restrict retarray,
- gfc_array_c16 * const restrict array,
+product_c16 (gfc_array_c16 * const restrict retarray,
+ gfc_array_c16 * const restrict array,
const index_type * const restrict pdim)
{
index_type count[GFC_MAX_DIMENSIONS];
}
-extern void mproduct_c16 (gfc_array_c16 * const restrict,
+extern void mproduct_c16 (gfc_array_c16 * const restrict,
gfc_array_c16 * const restrict, const index_type * const restrict,
gfc_array_l1 * const restrict);
export_proto(mproduct_c16);
void
-mproduct_c16 (gfc_array_c16 * const restrict retarray,
- gfc_array_c16 * const restrict array,
- const index_type * const restrict pdim,
+mproduct_c16 (gfc_array_c16 * const restrict retarray,
+ gfc_array_c16 * const restrict array,
+ const index_type * const restrict pdim,
gfc_array_l1 * const restrict mask)
{
index_type count[GFC_MAX_DIMENSIONS];
}
-extern void sproduct_c16 (gfc_array_c16 * const restrict,
+extern void sproduct_c16 (gfc_array_c16 * const restrict,
gfc_array_c16 * const restrict, const index_type * const restrict,
GFC_LOGICAL_4 *);
export_proto(sproduct_c16);
void
-sproduct_c16 (gfc_array_c16 * const restrict retarray,
- gfc_array_c16 * const restrict array,
- const index_type * const restrict pdim,
+sproduct_c16 (gfc_array_c16 * const restrict retarray,
+ gfc_array_c16 * const restrict array,
+ const index_type * const restrict pdim,
GFC_LOGICAL_4 * mask)
{
index_type count[GFC_MAX_DIMENSIONS];
#if defined (HAVE_GFC_COMPLEX_17) && defined (HAVE_GFC_COMPLEX_17)
-extern void product_c17 (gfc_array_c17 * const restrict,
+extern void product_c17 (gfc_array_c17 * const restrict,
gfc_array_c17 * const restrict, const index_type * const restrict);
export_proto(product_c17);
void
-product_c17 (gfc_array_c17 * const restrict retarray,
- gfc_array_c17 * const restrict array,
+product_c17 (gfc_array_c17 * const restrict retarray,
+ gfc_array_c17 * const restrict array,
const index_type * const restrict pdim)
{
index_type count[GFC_MAX_DIMENSIONS];
}
-extern void mproduct_c17 (gfc_array_c17 * const restrict,
+extern void mproduct_c17 (gfc_array_c17 * const restrict,
gfc_array_c17 * const restrict, const index_type * const restrict,
gfc_array_l1 * const restrict);
export_proto(mproduct_c17);
void
-mproduct_c17 (gfc_array_c17 * const restrict retarray,
- gfc_array_c17 * const restrict array,
- const index_type * const restrict pdim,
+mproduct_c17 (gfc_array_c17 * const restrict retarray,
+ gfc_array_c17 * const restrict array,
+ const index_type * const restrict pdim,
gfc_array_l1 * const restrict mask)
{
index_type count[GFC_MAX_DIMENSIONS];
}
-extern void sproduct_c17 (gfc_array_c17 * const restrict,
+extern void sproduct_c17 (gfc_array_c17 * const restrict,
gfc_array_c17 * const restrict, const index_type * const restrict,
GFC_LOGICAL_4 *);
export_proto(sproduct_c17);
void
-sproduct_c17 (gfc_array_c17 * const restrict retarray,
- gfc_array_c17 * const restrict array,
- const index_type * const restrict pdim,
+sproduct_c17 (gfc_array_c17 * const restrict retarray,
+ gfc_array_c17 * const restrict array,
+ const index_type * const restrict pdim,
GFC_LOGICAL_4 * mask)
{
index_type count[GFC_MAX_DIMENSIONS];
#if defined (HAVE_GFC_COMPLEX_4) && defined (HAVE_GFC_COMPLEX_4)
-extern void product_c4 (gfc_array_c4 * const restrict,
+extern void product_c4 (gfc_array_c4 * const restrict,
gfc_array_c4 * const restrict, const index_type * const restrict);
export_proto(product_c4);
void
-product_c4 (gfc_array_c4 * const restrict retarray,
- gfc_array_c4 * const restrict array,
+product_c4 (gfc_array_c4 * const restrict retarray,
+ gfc_array_c4 * const restrict array,
const index_type * const restrict pdim)
{
index_type count[GFC_MAX_DIMENSIONS];
}
-extern void mproduct_c4 (gfc_array_c4 * const restrict,
+extern void mproduct_c4 (gfc_array_c4 * const restrict,
gfc_array_c4 * const restrict, const index_type * const restrict,
gfc_array_l1 * const restrict);
export_proto(mproduct_c4);
void
-mproduct_c4 (gfc_array_c4 * const restrict retarray,
- gfc_array_c4 * const restrict array,
- const index_type * const restrict pdim,
+mproduct_c4 (gfc_array_c4 * const restrict retarray,
+ gfc_array_c4 * const restrict array,
+ const index_type * const restrict pdim,
gfc_array_l1 * const restrict mask)
{
index_type count[GFC_MAX_DIMENSIONS];
}
-extern void sproduct_c4 (gfc_array_c4 * const restrict,
+extern void sproduct_c4 (gfc_array_c4 * const restrict,
gfc_array_c4 * const restrict, const index_type * const restrict,
GFC_LOGICAL_4 *);
export_proto(sproduct_c4);
void
-sproduct_c4 (gfc_array_c4 * const restrict retarray,
- gfc_array_c4 * const restrict array,
- const index_type * const restrict pdim,
+sproduct_c4 (gfc_array_c4 * const restrict retarray,
+ gfc_array_c4 * const restrict array,
+ const index_type * const restrict pdim,
GFC_LOGICAL_4 * mask)
{
index_type count[GFC_MAX_DIMENSIONS];
#if defined (HAVE_GFC_COMPLEX_8) && defined (HAVE_GFC_COMPLEX_8)
-extern void product_c8 (gfc_array_c8 * const restrict,
+extern void product_c8 (gfc_array_c8 * const restrict,
gfc_array_c8 * const restrict, const index_type * const restrict);
export_proto(product_c8);
void
-product_c8 (gfc_array_c8 * const restrict retarray,
- gfc_array_c8 * const restrict array,
+product_c8 (gfc_array_c8 * const restrict retarray,
+ gfc_array_c8 * const restrict array,
const index_type * const restrict pdim)
{
index_type count[GFC_MAX_DIMENSIONS];
}
-extern void mproduct_c8 (gfc_array_c8 * const restrict,
+extern void mproduct_c8 (gfc_array_c8 * const restrict,
gfc_array_c8 * const restrict, const index_type * const restrict,
gfc_array_l1 * const restrict);
export_proto(mproduct_c8);
void
-mproduct_c8 (gfc_array_c8 * const restrict retarray,
- gfc_array_c8 * const restrict array,
- const index_type * const restrict pdim,
+mproduct_c8 (gfc_array_c8 * const restrict retarray,
+ gfc_array_c8 * const restrict array,
+ const index_type * const restrict pdim,
gfc_array_l1 * const restrict mask)
{
index_type count[GFC_MAX_DIMENSIONS];
}
-extern void sproduct_c8 (gfc_array_c8 * const restrict,
+extern void sproduct_c8 (gfc_array_c8 * const restrict,
gfc_array_c8 * const restrict, const index_type * const restrict,
GFC_LOGICAL_4 *);
export_proto(sproduct_c8);
void
-sproduct_c8 (gfc_array_c8 * const restrict retarray,
- gfc_array_c8 * const restrict array,
- const index_type * const restrict pdim,
+sproduct_c8 (gfc_array_c8 * const restrict retarray,
+ gfc_array_c8 * const restrict array,
+ const index_type * const restrict pdim,
GFC_LOGICAL_4 * mask)
{
index_type count[GFC_MAX_DIMENSIONS];
#include "libgfortran.h"
-#if defined (HAVE_GFC_INTEGER_1) && defined (HAVE_GFC_INTEGER_1)
+#if defined (HAVE_GFC_UINTEGER_1) && defined (HAVE_GFC_UINTEGER_1)
-extern void product_i1 (gfc_array_i1 * const restrict,
- gfc_array_i1 * const restrict, const index_type * const restrict);
+extern void product_i1 (gfc_array_m1 * const restrict,
+ gfc_array_m1 * const restrict, const index_type * const restrict);
export_proto(product_i1);
void
-product_i1 (gfc_array_i1 * const restrict retarray,
- gfc_array_i1 * const restrict array,
+product_i1 (gfc_array_m1 * const restrict retarray,
+ gfc_array_m1 * const restrict array,
const index_type * const restrict pdim)
{
index_type count[GFC_MAX_DIMENSIONS];
index_type extent[GFC_MAX_DIMENSIONS];
index_type sstride[GFC_MAX_DIMENSIONS];
index_type dstride[GFC_MAX_DIMENSIONS];
- const GFC_INTEGER_1 * restrict base;
- GFC_INTEGER_1 * restrict dest;
+ const GFC_UINTEGER_1 * restrict base;
+ GFC_UINTEGER_1 * restrict dest;
index_type rank;
index_type n;
index_type len;
alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
- retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_1));
+ retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_UINTEGER_1));
if (alloc_size == 0)
return;
}
continue_loop = 1;
while (continue_loop)
{
- const GFC_INTEGER_1 * restrict src;
- GFC_INTEGER_1 result;
+ const GFC_UINTEGER_1 * restrict src;
+ GFC_UINTEGER_1 result;
src = base;
{
}
-extern void mproduct_i1 (gfc_array_i1 * const restrict,
- gfc_array_i1 * const restrict, const index_type * const restrict,
+extern void mproduct_i1 (gfc_array_m1 * const restrict,
+ gfc_array_m1 * const restrict, const index_type * const restrict,
gfc_array_l1 * const restrict);
export_proto(mproduct_i1);
void
-mproduct_i1 (gfc_array_i1 * const restrict retarray,
- gfc_array_i1 * const restrict array,
- const index_type * const restrict pdim,
+mproduct_i1 (gfc_array_m1 * const restrict retarray,
+ gfc_array_m1 * const restrict array,
+ const index_type * const restrict pdim,
gfc_array_l1 * const restrict mask)
{
index_type count[GFC_MAX_DIMENSIONS];
index_type sstride[GFC_MAX_DIMENSIONS];
index_type dstride[GFC_MAX_DIMENSIONS];
index_type mstride[GFC_MAX_DIMENSIONS];
- GFC_INTEGER_1 * restrict dest;
- const GFC_INTEGER_1 * restrict base;
+ GFC_UINTEGER_1 * restrict dest;
+ const GFC_UINTEGER_1 * restrict base;
const GFC_LOGICAL_1 * restrict mbase;
index_type rank;
index_type dim;
retarray->offset = 0;
retarray->dtype.rank = rank;
- retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_1));
+ retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_UINTEGER_1));
if (alloc_size == 0)
return;
}
while (base)
{
- const GFC_INTEGER_1 * restrict src;
+ const GFC_UINTEGER_1 * restrict src;
const GFC_LOGICAL_1 * restrict msrc;
- GFC_INTEGER_1 result;
+ GFC_UINTEGER_1 result;
src = base;
msrc = mbase;
{
}
-extern void sproduct_i1 (gfc_array_i1 * const restrict,
- gfc_array_i1 * const restrict, const index_type * const restrict,
+extern void sproduct_i1 (gfc_array_m1 * const restrict,
+ gfc_array_m1 * const restrict, const index_type * const restrict,
GFC_LOGICAL_4 *);
export_proto(sproduct_i1);
void
-sproduct_i1 (gfc_array_i1 * const restrict retarray,
- gfc_array_i1 * const restrict array,
- const index_type * const restrict pdim,
+sproduct_i1 (gfc_array_m1 * const restrict retarray,
+ gfc_array_m1 * const restrict array,
+ const index_type * const restrict pdim,
GFC_LOGICAL_4 * mask)
{
index_type count[GFC_MAX_DIMENSIONS];
index_type extent[GFC_MAX_DIMENSIONS];
index_type dstride[GFC_MAX_DIMENSIONS];
- GFC_INTEGER_1 * restrict dest;
+ GFC_UINTEGER_1 * restrict dest;
index_type rank;
index_type n;
index_type dim;
alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
- retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_1));
+ retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_UINTEGER_1));
if (alloc_size == 0)
return;
}
#include "libgfortran.h"
-#if defined (HAVE_GFC_INTEGER_16) && defined (HAVE_GFC_INTEGER_16)
+#if defined (HAVE_GFC_UINTEGER_16) && defined (HAVE_GFC_UINTEGER_16)
-extern void product_i16 (gfc_array_i16 * const restrict,
- gfc_array_i16 * const restrict, const index_type * const restrict);
+extern void product_i16 (gfc_array_m16 * const restrict,
+ gfc_array_m16 * const restrict, const index_type * const restrict);
export_proto(product_i16);
void
-product_i16 (gfc_array_i16 * const restrict retarray,
- gfc_array_i16 * const restrict array,
+product_i16 (gfc_array_m16 * const restrict retarray,
+ gfc_array_m16 * const restrict array,
const index_type * const restrict pdim)
{
index_type count[GFC_MAX_DIMENSIONS];
index_type extent[GFC_MAX_DIMENSIONS];
index_type sstride[GFC_MAX_DIMENSIONS];
index_type dstride[GFC_MAX_DIMENSIONS];
- const GFC_INTEGER_16 * restrict base;
- GFC_INTEGER_16 * restrict dest;
+ const GFC_UINTEGER_16 * restrict base;
+ GFC_UINTEGER_16 * restrict dest;
index_type rank;
index_type n;
index_type len;
alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
- retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16));
+ retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_UINTEGER_16));
if (alloc_size == 0)
return;
}
continue_loop = 1;
while (continue_loop)
{
- const GFC_INTEGER_16 * restrict src;
- GFC_INTEGER_16 result;
+ const GFC_UINTEGER_16 * restrict src;
+ GFC_UINTEGER_16 result;
src = base;
{
}
-extern void mproduct_i16 (gfc_array_i16 * const restrict,
- gfc_array_i16 * const restrict, const index_type * const restrict,
+extern void mproduct_i16 (gfc_array_m16 * const restrict,
+ gfc_array_m16 * const restrict, const index_type * const restrict,
gfc_array_l1 * const restrict);
export_proto(mproduct_i16);
void
-mproduct_i16 (gfc_array_i16 * const restrict retarray,
- gfc_array_i16 * const restrict array,
- const index_type * const restrict pdim,
+mproduct_i16 (gfc_array_m16 * const restrict retarray,
+ gfc_array_m16 * const restrict array,
+ const index_type * const restrict pdim,
gfc_array_l1 * const restrict mask)
{
index_type count[GFC_MAX_DIMENSIONS];
index_type sstride[GFC_MAX_DIMENSIONS];
index_type dstride[GFC_MAX_DIMENSIONS];
index_type mstride[GFC_MAX_DIMENSIONS];
- GFC_INTEGER_16 * restrict dest;
- const GFC_INTEGER_16 * restrict base;
+ GFC_UINTEGER_16 * restrict dest;
+ const GFC_UINTEGER_16 * restrict base;
const GFC_LOGICAL_1 * restrict mbase;
index_type rank;
index_type dim;
retarray->offset = 0;
retarray->dtype.rank = rank;
- retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16));
+ retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_UINTEGER_16));
if (alloc_size == 0)
return;
}
while (base)
{
- const GFC_INTEGER_16 * restrict src;
+ const GFC_UINTEGER_16 * restrict src;
const GFC_LOGICAL_1 * restrict msrc;
- GFC_INTEGER_16 result;
+ GFC_UINTEGER_16 result;
src = base;
msrc = mbase;
{
}
-extern void sproduct_i16 (gfc_array_i16 * const restrict,
- gfc_array_i16 * const restrict, const index_type * const restrict,
+extern void sproduct_i16 (gfc_array_m16 * const restrict,
+ gfc_array_m16 * const restrict, const index_type * const restrict,
GFC_LOGICAL_4 *);
export_proto(sproduct_i16);
void
-sproduct_i16 (gfc_array_i16 * const restrict retarray,
- gfc_array_i16 * const restrict array,
- const index_type * const restrict pdim,
+sproduct_i16 (gfc_array_m16 * const restrict retarray,
+ gfc_array_m16 * const restrict array,
+ const index_type * const restrict pdim,
GFC_LOGICAL_4 * mask)
{
index_type count[GFC_MAX_DIMENSIONS];
index_type extent[GFC_MAX_DIMENSIONS];
index_type dstride[GFC_MAX_DIMENSIONS];
- GFC_INTEGER_16 * restrict dest;
+ GFC_UINTEGER_16 * restrict dest;
index_type rank;
index_type n;
index_type dim;
alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
- retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16));
+ retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_UINTEGER_16));
if (alloc_size == 0)
return;
}
#include "libgfortran.h"
-#if defined (HAVE_GFC_INTEGER_2) && defined (HAVE_GFC_INTEGER_2)
+#if defined (HAVE_GFC_UINTEGER_2) && defined (HAVE_GFC_UINTEGER_2)
-extern void product_i2 (gfc_array_i2 * const restrict,
- gfc_array_i2 * const restrict, const index_type * const restrict);
+extern void product_i2 (gfc_array_m2 * const restrict,
+ gfc_array_m2 * const restrict, const index_type * const restrict);
export_proto(product_i2);
void
-product_i2 (gfc_array_i2 * const restrict retarray,
- gfc_array_i2 * const restrict array,
+product_i2 (gfc_array_m2 * const restrict retarray,
+ gfc_array_m2 * const restrict array,
const index_type * const restrict pdim)
{
index_type count[GFC_MAX_DIMENSIONS];
index_type extent[GFC_MAX_DIMENSIONS];
index_type sstride[GFC_MAX_DIMENSIONS];
index_type dstride[GFC_MAX_DIMENSIONS];
- const GFC_INTEGER_2 * restrict base;
- GFC_INTEGER_2 * restrict dest;
+ const GFC_UINTEGER_2 * restrict base;
+ GFC_UINTEGER_2 * restrict dest;
index_type rank;
index_type n;
index_type len;
alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
- retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_2));
+ retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_UINTEGER_2));
if (alloc_size == 0)
return;
}
continue_loop = 1;
while (continue_loop)
{
- const GFC_INTEGER_2 * restrict src;
- GFC_INTEGER_2 result;
+ const GFC_UINTEGER_2 * restrict src;
+ GFC_UINTEGER_2 result;
src = base;
{
}
-extern void mproduct_i2 (gfc_array_i2 * const restrict,
- gfc_array_i2 * const restrict, const index_type * const restrict,
+extern void mproduct_i2 (gfc_array_m2 * const restrict,
+ gfc_array_m2 * const restrict, const index_type * const restrict,
gfc_array_l1 * const restrict);
export_proto(mproduct_i2);
void
-mproduct_i2 (gfc_array_i2 * const restrict retarray,
- gfc_array_i2 * const restrict array,
- const index_type * const restrict pdim,
+mproduct_i2 (gfc_array_m2 * const restrict retarray,
+ gfc_array_m2 * const restrict array,
+ const index_type * const restrict pdim,
gfc_array_l1 * const restrict mask)
{
index_type count[GFC_MAX_DIMENSIONS];
index_type sstride[GFC_MAX_DIMENSIONS];
index_type dstride[GFC_MAX_DIMENSIONS];
index_type mstride[GFC_MAX_DIMENSIONS];
- GFC_INTEGER_2 * restrict dest;
- const GFC_INTEGER_2 * restrict base;
+ GFC_UINTEGER_2 * restrict dest;
+ const GFC_UINTEGER_2 * restrict base;
const GFC_LOGICAL_1 * restrict mbase;
index_type rank;
index_type dim;
retarray->offset = 0;
retarray->dtype.rank = rank;
- retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_2));
+ retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_UINTEGER_2));
if (alloc_size == 0)
return;
}
while (base)
{
- const GFC_INTEGER_2 * restrict src;
+ const GFC_UINTEGER_2 * restrict src;
const GFC_LOGICAL_1 * restrict msrc;
- GFC_INTEGER_2 result;
+ GFC_UINTEGER_2 result;
src = base;
msrc = mbase;
{
}
-extern void sproduct_i2 (gfc_array_i2 * const restrict,
- gfc_array_i2 * const restrict, const index_type * const restrict,
+extern void sproduct_i2 (gfc_array_m2 * const restrict,
+ gfc_array_m2 * const restrict, const index_type * const restrict,
GFC_LOGICAL_4 *);
export_proto(sproduct_i2);
void
-sproduct_i2 (gfc_array_i2 * const restrict retarray,
- gfc_array_i2 * const restrict array,
- const index_type * const restrict pdim,
+sproduct_i2 (gfc_array_m2 * const restrict retarray,
+ gfc_array_m2 * const restrict array,
+ const index_type * const restrict pdim,
GFC_LOGICAL_4 * mask)
{
index_type count[GFC_MAX_DIMENSIONS];
index_type extent[GFC_MAX_DIMENSIONS];
index_type dstride[GFC_MAX_DIMENSIONS];
- GFC_INTEGER_2 * restrict dest;
+ GFC_UINTEGER_2 * restrict dest;
index_type rank;
index_type n;
index_type dim;
alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
- retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_2));
+ retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_UINTEGER_2));
if (alloc_size == 0)
return;
}
#include "libgfortran.h"
-#if defined (HAVE_GFC_INTEGER_4) && defined (HAVE_GFC_INTEGER_4)
+#if defined (HAVE_GFC_UINTEGER_4) && defined (HAVE_GFC_UINTEGER_4)
-extern void product_i4 (gfc_array_i4 * const restrict,
- gfc_array_i4 * const restrict, const index_type * const restrict);
+extern void product_i4 (gfc_array_m4 * const restrict,
+ gfc_array_m4 * const restrict, const index_type * const restrict);
export_proto(product_i4);
void
-product_i4 (gfc_array_i4 * const restrict retarray,
- gfc_array_i4 * const restrict array,
+product_i4 (gfc_array_m4 * const restrict retarray,
+ gfc_array_m4 * const restrict array,
const index_type * const restrict pdim)
{
index_type count[GFC_MAX_DIMENSIONS];
index_type extent[GFC_MAX_DIMENSIONS];
index_type sstride[GFC_MAX_DIMENSIONS];
index_type dstride[GFC_MAX_DIMENSIONS];
- const GFC_INTEGER_4 * restrict base;
- GFC_INTEGER_4 * restrict dest;
+ const GFC_UINTEGER_4 * restrict base;
+ GFC_UINTEGER_4 * restrict dest;
index_type rank;
index_type n;
index_type len;
alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
- retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4));
+ retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_UINTEGER_4));
if (alloc_size == 0)
return;
}
continue_loop = 1;
while (continue_loop)
{
- const GFC_INTEGER_4 * restrict src;
- GFC_INTEGER_4 result;
+ const GFC_UINTEGER_4 * restrict src;
+ GFC_UINTEGER_4 result;
src = base;
{
}
-extern void mproduct_i4 (gfc_array_i4 * const restrict,
- gfc_array_i4 * const restrict, const index_type * const restrict,
+extern void mproduct_i4 (gfc_array_m4 * const restrict,
+ gfc_array_m4 * const restrict, const index_type * const restrict,
gfc_array_l1 * const restrict);
export_proto(mproduct_i4);
void
-mproduct_i4 (gfc_array_i4 * const restrict retarray,
- gfc_array_i4 * const restrict array,
- const index_type * const restrict pdim,
+mproduct_i4 (gfc_array_m4 * const restrict retarray,
+ gfc_array_m4 * const restrict array,
+ const index_type * const restrict pdim,
gfc_array_l1 * const restrict mask)
{
index_type count[GFC_MAX_DIMENSIONS];
index_type sstride[GFC_MAX_DIMENSIONS];
index_type dstride[GFC_MAX_DIMENSIONS];
index_type mstride[GFC_MAX_DIMENSIONS];
- GFC_INTEGER_4 * restrict dest;
- const GFC_INTEGER_4 * restrict base;
+ GFC_UINTEGER_4 * restrict dest;
+ const GFC_UINTEGER_4 * restrict base;
const GFC_LOGICAL_1 * restrict mbase;
index_type rank;
index_type dim;
retarray->offset = 0;
retarray->dtype.rank = rank;
- retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4));
+ retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_UINTEGER_4));
if (alloc_size == 0)
return;
}
while (base)
{
- const GFC_INTEGER_4 * restrict src;
+ const GFC_UINTEGER_4 * restrict src;
const GFC_LOGICAL_1 * restrict msrc;
- GFC_INTEGER_4 result;
+ GFC_UINTEGER_4 result;
src = base;
msrc = mbase;
{
}
-extern void sproduct_i4 (gfc_array_i4 * const restrict,
- gfc_array_i4 * const restrict, const index_type * const restrict,
+extern void sproduct_i4 (gfc_array_m4 * const restrict,
+ gfc_array_m4 * const restrict, const index_type * const restrict,
GFC_LOGICAL_4 *);
export_proto(sproduct_i4);
void
-sproduct_i4 (gfc_array_i4 * const restrict retarray,
- gfc_array_i4 * const restrict array,
- const index_type * const restrict pdim,
+sproduct_i4 (gfc_array_m4 * const restrict retarray,
+ gfc_array_m4 * const restrict array,
+ const index_type * const restrict pdim,
GFC_LOGICAL_4 * mask)
{
index_type count[GFC_MAX_DIMENSIONS];
index_type extent[GFC_MAX_DIMENSIONS];
index_type dstride[GFC_MAX_DIMENSIONS];
- GFC_INTEGER_4 * restrict dest;
+ GFC_UINTEGER_4 * restrict dest;
index_type rank;
index_type n;
index_type dim;
alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
- retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4));
+ retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_UINTEGER_4));
if (alloc_size == 0)
return;
}
#include "libgfortran.h"
-#if defined (HAVE_GFC_INTEGER_8) && defined (HAVE_GFC_INTEGER_8)
+#if defined (HAVE_GFC_UINTEGER_8) && defined (HAVE_GFC_UINTEGER_8)
-extern void product_i8 (gfc_array_i8 * const restrict,
- gfc_array_i8 * const restrict, const index_type * const restrict);
+extern void product_i8 (gfc_array_m8 * const restrict,
+ gfc_array_m8 * const restrict, const index_type * const restrict);
export_proto(product_i8);
void
-product_i8 (gfc_array_i8 * const restrict retarray,
- gfc_array_i8 * const restrict array,
+product_i8 (gfc_array_m8 * const restrict retarray,
+ gfc_array_m8 * const restrict array,
const index_type * const restrict pdim)
{
index_type count[GFC_MAX_DIMENSIONS];
index_type extent[GFC_MAX_DIMENSIONS];
index_type sstride[GFC_MAX_DIMENSIONS];
index_type dstride[GFC_MAX_DIMENSIONS];
- const GFC_INTEGER_8 * restrict base;
- GFC_INTEGER_8 * restrict dest;
+ const GFC_UINTEGER_8 * restrict base;
+ GFC_UINTEGER_8 * restrict dest;
index_type rank;
index_type n;
index_type len;
alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
- retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8));
+ retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_UINTEGER_8));
if (alloc_size == 0)
return;
}
continue_loop = 1;
while (continue_loop)
{
- const GFC_INTEGER_8 * restrict src;
- GFC_INTEGER_8 result;
+ const GFC_UINTEGER_8 * restrict src;
+ GFC_UINTEGER_8 result;
src = base;
{
}
-extern void mproduct_i8 (gfc_array_i8 * const restrict,
- gfc_array_i8 * const restrict, const index_type * const restrict,
+extern void mproduct_i8 (gfc_array_m8 * const restrict,
+ gfc_array_m8 * const restrict, const index_type * const restrict,
gfc_array_l1 * const restrict);
export_proto(mproduct_i8);
void
-mproduct_i8 (gfc_array_i8 * const restrict retarray,
- gfc_array_i8 * const restrict array,
- const index_type * const restrict pdim,
+mproduct_i8 (gfc_array_m8 * const restrict retarray,
+ gfc_array_m8 * const restrict array,
+ const index_type * const restrict pdim,
gfc_array_l1 * const restrict mask)
{
index_type count[GFC_MAX_DIMENSIONS];
index_type sstride[GFC_MAX_DIMENSIONS];
index_type dstride[GFC_MAX_DIMENSIONS];
index_type mstride[GFC_MAX_DIMENSIONS];
- GFC_INTEGER_8 * restrict dest;
- const GFC_INTEGER_8 * restrict base;
+ GFC_UINTEGER_8 * restrict dest;
+ const GFC_UINTEGER_8 * restrict base;
const GFC_LOGICAL_1 * restrict mbase;
index_type rank;
index_type dim;
retarray->offset = 0;
retarray->dtype.rank = rank;
- retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8));
+ retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_UINTEGER_8));
if (alloc_size == 0)
return;
}
while (base)
{
- const GFC_INTEGER_8 * restrict src;
+ const GFC_UINTEGER_8 * restrict src;
const GFC_LOGICAL_1 * restrict msrc;
- GFC_INTEGER_8 result;
+ GFC_UINTEGER_8 result;
src = base;
msrc = mbase;
{
}
-extern void sproduct_i8 (gfc_array_i8 * const restrict,
- gfc_array_i8 * const restrict, const index_type * const restrict,
+extern void sproduct_i8 (gfc_array_m8 * const restrict,
+ gfc_array_m8 * const restrict, const index_type * const restrict,
GFC_LOGICAL_4 *);
export_proto(sproduct_i8);
void
-sproduct_i8 (gfc_array_i8 * const restrict retarray,
- gfc_array_i8 * const restrict array,
- const index_type * const restrict pdim,
+sproduct_i8 (gfc_array_m8 * const restrict retarray,
+ gfc_array_m8 * const restrict array,
+ const index_type * const restrict pdim,
GFC_LOGICAL_4 * mask)
{
index_type count[GFC_MAX_DIMENSIONS];
index_type extent[GFC_MAX_DIMENSIONS];
index_type dstride[GFC_MAX_DIMENSIONS];
- GFC_INTEGER_8 * restrict dest;
+ GFC_UINTEGER_8 * restrict dest;
index_type rank;
index_type n;
index_type dim;
alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
- retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8));
+ retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_UINTEGER_8));
if (alloc_size == 0)
return;
}
#if defined (HAVE_GFC_REAL_10) && defined (HAVE_GFC_REAL_10)
-extern void product_r10 (gfc_array_r10 * const restrict,
+extern void product_r10 (gfc_array_r10 * const restrict,
gfc_array_r10 * const restrict, const index_type * const restrict);
export_proto(product_r10);
void
-product_r10 (gfc_array_r10 * const restrict retarray,
- gfc_array_r10 * const restrict array,
+product_r10 (gfc_array_r10 * const restrict retarray,
+ gfc_array_r10 * const restrict array,
const index_type * const restrict pdim)
{
index_type count[GFC_MAX_DIMENSIONS];
}
-extern void mproduct_r10 (gfc_array_r10 * const restrict,
+extern void mproduct_r10 (gfc_array_r10 * const restrict,
gfc_array_r10 * const restrict, const index_type * const restrict,
gfc_array_l1 * const restrict);
export_proto(mproduct_r10);
void
-mproduct_r10 (gfc_array_r10 * const restrict retarray,
- gfc_array_r10 * const restrict array,
- const index_type * const restrict pdim,
+mproduct_r10 (gfc_array_r10 * const restrict retarray,
+ gfc_array_r10 * const restrict array,
+ const index_type * const restrict pdim,
gfc_array_l1 * const restrict mask)
{
index_type count[GFC_MAX_DIMENSIONS];
}
-extern void sproduct_r10 (gfc_array_r10 * const restrict,
+extern void sproduct_r10 (gfc_array_r10 * const restrict,
gfc_array_r10 * const restrict, const index_type * const restrict,
GFC_LOGICAL_4 *);
export_proto(sproduct_r10);
void
-sproduct_r10 (gfc_array_r10 * const restrict retarray,
- gfc_array_r10 * const restrict array,
- const index_type * const restrict pdim,
+sproduct_r10 (gfc_array_r10 * const restrict retarray,
+ gfc_array_r10 * const restrict array,
+ const index_type * const restrict pdim,
GFC_LOGICAL_4 * mask)
{
index_type count[GFC_MAX_DIMENSIONS];
#if defined (HAVE_GFC_REAL_16) && defined (HAVE_GFC_REAL_16)
-extern void product_r16 (gfc_array_r16 * const restrict,
+extern void product_r16 (gfc_array_r16 * const restrict,
gfc_array_r16 * const restrict, const index_type * const restrict);
export_proto(product_r16);
void
-product_r16 (gfc_array_r16 * const restrict retarray,
- gfc_array_r16 * const restrict array,
+product_r16 (gfc_array_r16 * const restrict retarray,
+ gfc_array_r16 * const restrict array,
const index_type * const restrict pdim)
{
index_type count[GFC_MAX_DIMENSIONS];
}
-extern void mproduct_r16 (gfc_array_r16 * const restrict,
+extern void mproduct_r16 (gfc_array_r16 * const restrict,
gfc_array_r16 * const restrict, const index_type * const restrict,
gfc_array_l1 * const restrict);
export_proto(mproduct_r16);
void
-mproduct_r16 (gfc_array_r16 * const restrict retarray,
- gfc_array_r16 * const restrict array,
- const index_type * const restrict pdim,
+mproduct_r16 (gfc_array_r16 * const restrict retarray,
+ gfc_array_r16 * const restrict array,
+ const index_type * const restrict pdim,
gfc_array_l1 * const restrict mask)
{
index_type count[GFC_MAX_DIMENSIONS];
}
-extern void sproduct_r16 (gfc_array_r16 * const restrict,
+extern void sproduct_r16 (gfc_array_r16 * const restrict,
gfc_array_r16 * const restrict, const index_type * const restrict,
GFC_LOGICAL_4 *);
export_proto(sproduct_r16);
void
-sproduct_r16 (gfc_array_r16 * const restrict retarray,
- gfc_array_r16 * const restrict array,
- const index_type * const restrict pdim,
+sproduct_r16 (gfc_array_r16 * const restrict retarray,
+ gfc_array_r16 * const restrict array,
+ const index_type * const restrict pdim,
GFC_LOGICAL_4 * mask)
{
index_type count[GFC_MAX_DIMENSIONS];
#if defined (HAVE_GFC_REAL_17) && defined (HAVE_GFC_REAL_17)
-extern void product_r17 (gfc_array_r17 * const restrict,
+extern void product_r17 (gfc_array_r17 * const restrict,
gfc_array_r17 * const restrict, const index_type * const restrict);
export_proto(product_r17);
void
-product_r17 (gfc_array_r17 * const restrict retarray,
- gfc_array_r17 * const restrict array,
+product_r17 (gfc_array_r17 * const restrict retarray,
+ gfc_array_r17 * const restrict array,
const index_type * const restrict pdim)
{
index_type count[GFC_MAX_DIMENSIONS];
}
-extern void mproduct_r17 (gfc_array_r17 * const restrict,
+extern void mproduct_r17 (gfc_array_r17 * const restrict,
gfc_array_r17 * const restrict, const index_type * const restrict,
gfc_array_l1 * const restrict);
export_proto(mproduct_r17);
void
-mproduct_r17 (gfc_array_r17 * const restrict retarray,
- gfc_array_r17 * const restrict array,
- const index_type * const restrict pdim,
+mproduct_r17 (gfc_array_r17 * const restrict retarray,
+ gfc_array_r17 * const restrict array,
+ const index_type * const restrict pdim,
gfc_array_l1 * const restrict mask)
{
index_type count[GFC_MAX_DIMENSIONS];
}
-extern void sproduct_r17 (gfc_array_r17 * const restrict,
+extern void sproduct_r17 (gfc_array_r17 * const restrict,
gfc_array_r17 * const restrict, const index_type * const restrict,
GFC_LOGICAL_4 *);
export_proto(sproduct_r17);
void
-sproduct_r17 (gfc_array_r17 * const restrict retarray,
- gfc_array_r17 * const restrict array,
- const index_type * const restrict pdim,
+sproduct_r17 (gfc_array_r17 * const restrict retarray,
+ gfc_array_r17 * const restrict array,
+ const index_type * const restrict pdim,
GFC_LOGICAL_4 * mask)
{
index_type count[GFC_MAX_DIMENSIONS];
#if defined (HAVE_GFC_REAL_4) && defined (HAVE_GFC_REAL_4)
-extern void product_r4 (gfc_array_r4 * const restrict,
+extern void product_r4 (gfc_array_r4 * const restrict,
gfc_array_r4 * const restrict, const index_type * const restrict);
export_proto(product_r4);
void
-product_r4 (gfc_array_r4 * const restrict retarray,
- gfc_array_r4 * const restrict array,
+product_r4 (gfc_array_r4 * const restrict retarray,
+ gfc_array_r4 * const restrict array,
const index_type * const restrict pdim)
{
index_type count[GFC_MAX_DIMENSIONS];
}
-extern void mproduct_r4 (gfc_array_r4 * const restrict,
+extern void mproduct_r4 (gfc_array_r4 * const restrict,
gfc_array_r4 * const restrict, const index_type * const restrict,
gfc_array_l1 * const restrict);
export_proto(mproduct_r4);
void
-mproduct_r4 (gfc_array_r4 * const restrict retarray,
- gfc_array_r4 * const restrict array,
- const index_type * const restrict pdim,
+mproduct_r4 (gfc_array_r4 * const restrict retarray,
+ gfc_array_r4 * const restrict array,
+ const index_type * const restrict pdim,
gfc_array_l1 * const restrict mask)
{
index_type count[GFC_MAX_DIMENSIONS];
}
-extern void sproduct_r4 (gfc_array_r4 * const restrict,
+extern void sproduct_r4 (gfc_array_r4 * const restrict,
gfc_array_r4 * const restrict, const index_type * const restrict,
GFC_LOGICAL_4 *);
export_proto(sproduct_r4);
void
-sproduct_r4 (gfc_array_r4 * const restrict retarray,
- gfc_array_r4 * const restrict array,
- const index_type * const restrict pdim,
+sproduct_r4 (gfc_array_r4 * const restrict retarray,
+ gfc_array_r4 * const restrict array,
+ const index_type * const restrict pdim,
GFC_LOGICAL_4 * mask)
{
index_type count[GFC_MAX_DIMENSIONS];
#if defined (HAVE_GFC_REAL_8) && defined (HAVE_GFC_REAL_8)
-extern void product_r8 (gfc_array_r8 * const restrict,
+extern void product_r8 (gfc_array_r8 * const restrict,
gfc_array_r8 * const restrict, const index_type * const restrict);
export_proto(product_r8);
void
-product_r8 (gfc_array_r8 * const restrict retarray,
- gfc_array_r8 * const restrict array,
+product_r8 (gfc_array_r8 * const restrict retarray,
+ gfc_array_r8 * const restrict array,
const index_type * const restrict pdim)
{
index_type count[GFC_MAX_DIMENSIONS];
}
-extern void mproduct_r8 (gfc_array_r8 * const restrict,
+extern void mproduct_r8 (gfc_array_r8 * const restrict,
gfc_array_r8 * const restrict, const index_type * const restrict,
gfc_array_l1 * const restrict);
export_proto(mproduct_r8);
void
-mproduct_r8 (gfc_array_r8 * const restrict retarray,
- gfc_array_r8 * const restrict array,
- const index_type * const restrict pdim,
+mproduct_r8 (gfc_array_r8 * const restrict retarray,
+ gfc_array_r8 * const restrict array,
+ const index_type * const restrict pdim,
gfc_array_l1 * const restrict mask)
{
index_type count[GFC_MAX_DIMENSIONS];
}
-extern void sproduct_r8 (gfc_array_r8 * const restrict,
+extern void sproduct_r8 (gfc_array_r8 * const restrict,
gfc_array_r8 * const restrict, const index_type * const restrict,
GFC_LOGICAL_4 *);
export_proto(sproduct_r8);
void
-sproduct_r8 (gfc_array_r8 * const restrict retarray,
- gfc_array_r8 * const restrict array,
- const index_type * const restrict pdim,
+sproduct_r8 (gfc_array_r8 * const restrict retarray,
+ gfc_array_r8 * const restrict array,
+ const index_type * const restrict pdim,
GFC_LOGICAL_4 * mask)
{
index_type count[GFC_MAX_DIMENSIONS];
#if defined (HAVE_GFC_COMPLEX_10) && defined (HAVE_GFC_COMPLEX_10)
-extern void sum_c10 (gfc_array_c10 * const restrict,
+extern void sum_c10 (gfc_array_c10 * const restrict,
gfc_array_c10 * const restrict, const index_type * const restrict);
export_proto(sum_c10);
void
-sum_c10 (gfc_array_c10 * const restrict retarray,
- gfc_array_c10 * const restrict array,
+sum_c10 (gfc_array_c10 * const restrict retarray,
+ gfc_array_c10 * const restrict array,
const index_type * const restrict pdim)
{
index_type count[GFC_MAX_DIMENSIONS];
}
-extern void msum_c10 (gfc_array_c10 * const restrict,
+extern void msum_c10 (gfc_array_c10 * const restrict,
gfc_array_c10 * const restrict, const index_type * const restrict,
gfc_array_l1 * const restrict);
export_proto(msum_c10);
void
-msum_c10 (gfc_array_c10 * const restrict retarray,
- gfc_array_c10 * const restrict array,
- const index_type * const restrict pdim,
+msum_c10 (gfc_array_c10 * const restrict retarray,
+ gfc_array_c10 * const restrict array,
+ const index_type * const restrict pdim,
gfc_array_l1 * const restrict mask)
{
index_type count[GFC_MAX_DIMENSIONS];
}
-extern void ssum_c10 (gfc_array_c10 * const restrict,
+extern void ssum_c10 (gfc_array_c10 * const restrict,
gfc_array_c10 * const restrict, const index_type * const restrict,
GFC_LOGICAL_4 *);
export_proto(ssum_c10);
void
-ssum_c10 (gfc_array_c10 * const restrict retarray,
- gfc_array_c10 * const restrict array,
- const index_type * const restrict pdim,
+ssum_c10 (gfc_array_c10 * const restrict retarray,
+ gfc_array_c10 * const restrict array,
+ const index_type * const restrict pdim,
GFC_LOGICAL_4 * mask)
{
index_type count[GFC_MAX_DIMENSIONS];
#if defined (HAVE_GFC_COMPLEX_16) && defined (HAVE_GFC_COMPLEX_16)
-extern void sum_c16 (gfc_array_c16 * const restrict,
+extern void sum_c16 (gfc_array_c16 * const restrict,
gfc_array_c16 * const restrict, const index_type * const restrict);
export_proto(sum_c16);
void
-sum_c16 (gfc_array_c16 * const restrict retarray,
- gfc_array_c16 * const restrict array,
+sum_c16 (gfc_array_c16 * const restrict retarray,
+ gfc_array_c16 * const restrict array,
const index_type * const restrict pdim)
{
index_type count[GFC_MAX_DIMENSIONS];
}
-extern void msum_c16 (gfc_array_c16 * const restrict,
+extern void msum_c16 (gfc_array_c16 * const restrict,
gfc_array_c16 * const restrict, const index_type * const restrict,
gfc_array_l1 * const restrict);
export_proto(msum_c16);
void
-msum_c16 (gfc_array_c16 * const restrict retarray,
- gfc_array_c16 * const restrict array,
- const index_type * const restrict pdim,
+msum_c16 (gfc_array_c16 * const restrict retarray,
+ gfc_array_c16 * const restrict array,
+ const index_type * const restrict pdim,
gfc_array_l1 * const restrict mask)
{
index_type count[GFC_MAX_DIMENSIONS];
}
-extern void ssum_c16 (gfc_array_c16 * const restrict,
+extern void ssum_c16 (gfc_array_c16 * const restrict,
gfc_array_c16 * const restrict, const index_type * const restrict,
GFC_LOGICAL_4 *);
export_proto(ssum_c16);
void
-ssum_c16 (gfc_array_c16 * const restrict retarray,
- gfc_array_c16 * const restrict array,
- const index_type * const restrict pdim,
+ssum_c16 (gfc_array_c16 * const restrict retarray,
+ gfc_array_c16 * const restrict array,
+ const index_type * const restrict pdim,
GFC_LOGICAL_4 * mask)
{
index_type count[GFC_MAX_DIMENSIONS];
#if defined (HAVE_GFC_COMPLEX_17) && defined (HAVE_GFC_COMPLEX_17)
-extern void sum_c17 (gfc_array_c17 * const restrict,
+extern void sum_c17 (gfc_array_c17 * const restrict,
gfc_array_c17 * const restrict, const index_type * const restrict);
export_proto(sum_c17);
void
-sum_c17 (gfc_array_c17 * const restrict retarray,
- gfc_array_c17 * const restrict array,
+sum_c17 (gfc_array_c17 * const restrict retarray,
+ gfc_array_c17 * const restrict array,
const index_type * const restrict pdim)
{
index_type count[GFC_MAX_DIMENSIONS];
}
-extern void msum_c17 (gfc_array_c17 * const restrict,
+extern void msum_c17 (gfc_array_c17 * const restrict,
gfc_array_c17 * const restrict, const index_type * const restrict,
gfc_array_l1 * const restrict);
export_proto(msum_c17);
void
-msum_c17 (gfc_array_c17 * const restrict retarray,
- gfc_array_c17 * const restrict array,
- const index_type * const restrict pdim,
+msum_c17 (gfc_array_c17 * const restrict retarray,
+ gfc_array_c17 * const restrict array,
+ const index_type * const restrict pdim,
gfc_array_l1 * const restrict mask)
{
index_type count[GFC_MAX_DIMENSIONS];
}
-extern void ssum_c17 (gfc_array_c17 * const restrict,
+extern void ssum_c17 (gfc_array_c17 * const restrict,
gfc_array_c17 * const restrict, const index_type * const restrict,
GFC_LOGICAL_4 *);
export_proto(ssum_c17);
void
-ssum_c17 (gfc_array_c17 * const restrict retarray,
- gfc_array_c17 * const restrict array,
- const index_type * const restrict pdim,
+ssum_c17 (gfc_array_c17 * const restrict retarray,
+ gfc_array_c17 * const restrict array,
+ const index_type * const restrict pdim,
GFC_LOGICAL_4 * mask)
{
index_type count[GFC_MAX_DIMENSIONS];
#if defined (HAVE_GFC_COMPLEX_4) && defined (HAVE_GFC_COMPLEX_4)
-extern void sum_c4 (gfc_array_c4 * const restrict,
+extern void sum_c4 (gfc_array_c4 * const restrict,
gfc_array_c4 * const restrict, const index_type * const restrict);
export_proto(sum_c4);
void
-sum_c4 (gfc_array_c4 * const restrict retarray,
- gfc_array_c4 * const restrict array,
+sum_c4 (gfc_array_c4 * const restrict retarray,
+ gfc_array_c4 * const restrict array,
const index_type * const restrict pdim)
{
index_type count[GFC_MAX_DIMENSIONS];
}
-extern void msum_c4 (gfc_array_c4 * const restrict,
+extern void msum_c4 (gfc_array_c4 * const restrict,
gfc_array_c4 * const restrict, const index_type * const restrict,
gfc_array_l1 * const restrict);
export_proto(msum_c4);
void
-msum_c4 (gfc_array_c4 * const restrict retarray,
- gfc_array_c4 * const restrict array,
- const index_type * const restrict pdim,
+msum_c4 (gfc_array_c4 * const restrict retarray,
+ gfc_array_c4 * const restrict array,
+ const index_type * const restrict pdim,
gfc_array_l1 * const restrict mask)
{
index_type count[GFC_MAX_DIMENSIONS];
}
-extern void ssum_c4 (gfc_array_c4 * const restrict,
+extern void ssum_c4 (gfc_array_c4 * const restrict,
gfc_array_c4 * const restrict, const index_type * const restrict,
GFC_LOGICAL_4 *);
export_proto(ssum_c4);
void
-ssum_c4 (gfc_array_c4 * const restrict retarray,
- gfc_array_c4 * const restrict array,
- const index_type * const restrict pdim,
+ssum_c4 (gfc_array_c4 * const restrict retarray,
+ gfc_array_c4 * const restrict array,
+ const index_type * const restrict pdim,
GFC_LOGICAL_4 * mask)
{
index_type count[GFC_MAX_DIMENSIONS];
#if defined (HAVE_GFC_COMPLEX_8) && defined (HAVE_GFC_COMPLEX_8)
-extern void sum_c8 (gfc_array_c8 * const restrict,
+extern void sum_c8 (gfc_array_c8 * const restrict,
gfc_array_c8 * const restrict, const index_type * const restrict);
export_proto(sum_c8);
void
-sum_c8 (gfc_array_c8 * const restrict retarray,
- gfc_array_c8 * const restrict array,
+sum_c8 (gfc_array_c8 * const restrict retarray,
+ gfc_array_c8 * const restrict array,
const index_type * const restrict pdim)
{
index_type count[GFC_MAX_DIMENSIONS];
}
-extern void msum_c8 (gfc_array_c8 * const restrict,
+extern void msum_c8 (gfc_array_c8 * const restrict,
gfc_array_c8 * const restrict, const index_type * const restrict,
gfc_array_l1 * const restrict);
export_proto(msum_c8);
void
-msum_c8 (gfc_array_c8 * const restrict retarray,
- gfc_array_c8 * const restrict array,
- const index_type * const restrict pdim,
+msum_c8 (gfc_array_c8 * const restrict retarray,
+ gfc_array_c8 * const restrict array,
+ const index_type * const restrict pdim,
gfc_array_l1 * const restrict mask)
{
index_type count[GFC_MAX_DIMENSIONS];
}
-extern void ssum_c8 (gfc_array_c8 * const restrict,
+extern void ssum_c8 (gfc_array_c8 * const restrict,
gfc_array_c8 * const restrict, const index_type * const restrict,
GFC_LOGICAL_4 *);
export_proto(ssum_c8);
void
-ssum_c8 (gfc_array_c8 * const restrict retarray,
- gfc_array_c8 * const restrict array,
- const index_type * const restrict pdim,
+ssum_c8 (gfc_array_c8 * const restrict retarray,
+ gfc_array_c8 * const restrict array,
+ const index_type * const restrict pdim,
GFC_LOGICAL_4 * mask)
{
index_type count[GFC_MAX_DIMENSIONS];
#include "libgfortran.h"
-#if defined (HAVE_GFC_INTEGER_1) && defined (HAVE_GFC_INTEGER_1)
+#if defined (HAVE_GFC_UINTEGER_1) && defined (HAVE_GFC_UINTEGER_1)
-extern void sum_i1 (gfc_array_i1 * const restrict,
- gfc_array_i1 * const restrict, const index_type * const restrict);
+extern void sum_i1 (gfc_array_m1 * const restrict,
+ gfc_array_m1 * const restrict, const index_type * const restrict);
export_proto(sum_i1);
void
-sum_i1 (gfc_array_i1 * const restrict retarray,
- gfc_array_i1 * const restrict array,
+sum_i1 (gfc_array_m1 * const restrict retarray,
+ gfc_array_m1 * const restrict array,
const index_type * const restrict pdim)
{
index_type count[GFC_MAX_DIMENSIONS];
index_type extent[GFC_MAX_DIMENSIONS];
index_type sstride[GFC_MAX_DIMENSIONS];
index_type dstride[GFC_MAX_DIMENSIONS];
- const GFC_INTEGER_1 * restrict base;
- GFC_INTEGER_1 * restrict dest;
+ const GFC_UINTEGER_1 * restrict base;
+ GFC_UINTEGER_1 * restrict dest;
index_type rank;
index_type n;
index_type len;
alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
- retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_1));
+ retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_UINTEGER_1));
if (alloc_size == 0)
return;
}
continue_loop = 1;
while (continue_loop)
{
- const GFC_INTEGER_1 * restrict src;
- GFC_INTEGER_1 result;
+ const GFC_UINTEGER_1 * restrict src;
+ GFC_UINTEGER_1 result;
src = base;
{
}
-extern void msum_i1 (gfc_array_i1 * const restrict,
- gfc_array_i1 * const restrict, const index_type * const restrict,
+extern void msum_i1 (gfc_array_m1 * const restrict,
+ gfc_array_m1 * const restrict, const index_type * const restrict,
gfc_array_l1 * const restrict);
export_proto(msum_i1);
void
-msum_i1 (gfc_array_i1 * const restrict retarray,
- gfc_array_i1 * const restrict array,
- const index_type * const restrict pdim,
+msum_i1 (gfc_array_m1 * const restrict retarray,
+ gfc_array_m1 * const restrict array,
+ const index_type * const restrict pdim,
gfc_array_l1 * const restrict mask)
{
index_type count[GFC_MAX_DIMENSIONS];
index_type sstride[GFC_MAX_DIMENSIONS];
index_type dstride[GFC_MAX_DIMENSIONS];
index_type mstride[GFC_MAX_DIMENSIONS];
- GFC_INTEGER_1 * restrict dest;
- const GFC_INTEGER_1 * restrict base;
+ GFC_UINTEGER_1 * restrict dest;
+ const GFC_UINTEGER_1 * restrict base;
const GFC_LOGICAL_1 * restrict mbase;
index_type rank;
index_type dim;
retarray->offset = 0;
retarray->dtype.rank = rank;
- retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_1));
+ retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_UINTEGER_1));
if (alloc_size == 0)
return;
}
while (base)
{
- const GFC_INTEGER_1 * restrict src;
+ const GFC_UINTEGER_1 * restrict src;
const GFC_LOGICAL_1 * restrict msrc;
- GFC_INTEGER_1 result;
+ GFC_UINTEGER_1 result;
src = base;
msrc = mbase;
{
}
-extern void ssum_i1 (gfc_array_i1 * const restrict,
- gfc_array_i1 * const restrict, const index_type * const restrict,
+extern void ssum_i1 (gfc_array_m1 * const restrict,
+ gfc_array_m1 * const restrict, const index_type * const restrict,
GFC_LOGICAL_4 *);
export_proto(ssum_i1);
void
-ssum_i1 (gfc_array_i1 * const restrict retarray,
- gfc_array_i1 * const restrict array,
- const index_type * const restrict pdim,
+ssum_i1 (gfc_array_m1 * const restrict retarray,
+ gfc_array_m1 * const restrict array,
+ const index_type * const restrict pdim,
GFC_LOGICAL_4 * mask)
{
index_type count[GFC_MAX_DIMENSIONS];
index_type extent[GFC_MAX_DIMENSIONS];
index_type dstride[GFC_MAX_DIMENSIONS];
- GFC_INTEGER_1 * restrict dest;
+ GFC_UINTEGER_1 * restrict dest;
index_type rank;
index_type n;
index_type dim;
alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
- retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_1));
+ retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_UINTEGER_1));
if (alloc_size == 0)
return;
}
#include "libgfortran.h"
-#if defined (HAVE_GFC_INTEGER_16) && defined (HAVE_GFC_INTEGER_16)
+#if defined (HAVE_GFC_UINTEGER_16) && defined (HAVE_GFC_UINTEGER_16)
-extern void sum_i16 (gfc_array_i16 * const restrict,
- gfc_array_i16 * const restrict, const index_type * const restrict);
+extern void sum_i16 (gfc_array_m16 * const restrict,
+ gfc_array_m16 * const restrict, const index_type * const restrict);
export_proto(sum_i16);
void
-sum_i16 (gfc_array_i16 * const restrict retarray,
- gfc_array_i16 * const restrict array,
+sum_i16 (gfc_array_m16 * const restrict retarray,
+ gfc_array_m16 * const restrict array,
const index_type * const restrict pdim)
{
index_type count[GFC_MAX_DIMENSIONS];
index_type extent[GFC_MAX_DIMENSIONS];
index_type sstride[GFC_MAX_DIMENSIONS];
index_type dstride[GFC_MAX_DIMENSIONS];
- const GFC_INTEGER_16 * restrict base;
- GFC_INTEGER_16 * restrict dest;
+ const GFC_UINTEGER_16 * restrict base;
+ GFC_UINTEGER_16 * restrict dest;
index_type rank;
index_type n;
index_type len;
alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
- retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16));
+ retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_UINTEGER_16));
if (alloc_size == 0)
return;
}
continue_loop = 1;
while (continue_loop)
{
- const GFC_INTEGER_16 * restrict src;
- GFC_INTEGER_16 result;
+ const GFC_UINTEGER_16 * restrict src;
+ GFC_UINTEGER_16 result;
src = base;
{
}
-extern void msum_i16 (gfc_array_i16 * const restrict,
- gfc_array_i16 * const restrict, const index_type * const restrict,
+extern void msum_i16 (gfc_array_m16 * const restrict,
+ gfc_array_m16 * const restrict, const index_type * const restrict,
gfc_array_l1 * const restrict);
export_proto(msum_i16);
void
-msum_i16 (gfc_array_i16 * const restrict retarray,
- gfc_array_i16 * const restrict array,
- const index_type * const restrict pdim,
+msum_i16 (gfc_array_m16 * const restrict retarray,
+ gfc_array_m16 * const restrict array,
+ const index_type * const restrict pdim,
gfc_array_l1 * const restrict mask)
{
index_type count[GFC_MAX_DIMENSIONS];
index_type sstride[GFC_MAX_DIMENSIONS];
index_type dstride[GFC_MAX_DIMENSIONS];
index_type mstride[GFC_MAX_DIMENSIONS];
- GFC_INTEGER_16 * restrict dest;
- const GFC_INTEGER_16 * restrict base;
+ GFC_UINTEGER_16 * restrict dest;
+ const GFC_UINTEGER_16 * restrict base;
const GFC_LOGICAL_1 * restrict mbase;
index_type rank;
index_type dim;
retarray->offset = 0;
retarray->dtype.rank = rank;
- retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16));
+ retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_UINTEGER_16));
if (alloc_size == 0)
return;
}
while (base)
{
- const GFC_INTEGER_16 * restrict src;
+ const GFC_UINTEGER_16 * restrict src;
const GFC_LOGICAL_1 * restrict msrc;
- GFC_INTEGER_16 result;
+ GFC_UINTEGER_16 result;
src = base;
msrc = mbase;
{
}
-extern void ssum_i16 (gfc_array_i16 * const restrict,
- gfc_array_i16 * const restrict, const index_type * const restrict,
+extern void ssum_i16 (gfc_array_m16 * const restrict,
+ gfc_array_m16 * const restrict, const index_type * const restrict,
GFC_LOGICAL_4 *);
export_proto(ssum_i16);
void
-ssum_i16 (gfc_array_i16 * const restrict retarray,
- gfc_array_i16 * const restrict array,
- const index_type * const restrict pdim,
+ssum_i16 (gfc_array_m16 * const restrict retarray,
+ gfc_array_m16 * const restrict array,
+ const index_type * const restrict pdim,
GFC_LOGICAL_4 * mask)
{
index_type count[GFC_MAX_DIMENSIONS];
index_type extent[GFC_MAX_DIMENSIONS];
index_type dstride[GFC_MAX_DIMENSIONS];
- GFC_INTEGER_16 * restrict dest;
+ GFC_UINTEGER_16 * restrict dest;
index_type rank;
index_type n;
index_type dim;
alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
- retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16));
+ retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_UINTEGER_16));
if (alloc_size == 0)
return;
}
#include "libgfortran.h"
-#if defined (HAVE_GFC_INTEGER_2) && defined (HAVE_GFC_INTEGER_2)
+#if defined (HAVE_GFC_UINTEGER_2) && defined (HAVE_GFC_UINTEGER_2)
-extern void sum_i2 (gfc_array_i2 * const restrict,
- gfc_array_i2 * const restrict, const index_type * const restrict);
+extern void sum_i2 (gfc_array_m2 * const restrict,
+ gfc_array_m2 * const restrict, const index_type * const restrict);
export_proto(sum_i2);
void
-sum_i2 (gfc_array_i2 * const restrict retarray,
- gfc_array_i2 * const restrict array,
+sum_i2 (gfc_array_m2 * const restrict retarray,
+ gfc_array_m2 * const restrict array,
const index_type * const restrict pdim)
{
index_type count[GFC_MAX_DIMENSIONS];
index_type extent[GFC_MAX_DIMENSIONS];
index_type sstride[GFC_MAX_DIMENSIONS];
index_type dstride[GFC_MAX_DIMENSIONS];
- const GFC_INTEGER_2 * restrict base;
- GFC_INTEGER_2 * restrict dest;
+ const GFC_UINTEGER_2 * restrict base;
+ GFC_UINTEGER_2 * restrict dest;
index_type rank;
index_type n;
index_type len;
alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
- retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_2));
+ retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_UINTEGER_2));
if (alloc_size == 0)
return;
}
continue_loop = 1;
while (continue_loop)
{
- const GFC_INTEGER_2 * restrict src;
- GFC_INTEGER_2 result;
+ const GFC_UINTEGER_2 * restrict src;
+ GFC_UINTEGER_2 result;
src = base;
{
}
-extern void msum_i2 (gfc_array_i2 * const restrict,
- gfc_array_i2 * const restrict, const index_type * const restrict,
+extern void msum_i2 (gfc_array_m2 * const restrict,
+ gfc_array_m2 * const restrict, const index_type * const restrict,
gfc_array_l1 * const restrict);
export_proto(msum_i2);
void
-msum_i2 (gfc_array_i2 * const restrict retarray,
- gfc_array_i2 * const restrict array,
- const index_type * const restrict pdim,
+msum_i2 (gfc_array_m2 * const restrict retarray,
+ gfc_array_m2 * const restrict array,
+ const index_type * const restrict pdim,
gfc_array_l1 * const restrict mask)
{
index_type count[GFC_MAX_DIMENSIONS];
index_type sstride[GFC_MAX_DIMENSIONS];
index_type dstride[GFC_MAX_DIMENSIONS];
index_type mstride[GFC_MAX_DIMENSIONS];
- GFC_INTEGER_2 * restrict dest;
- const GFC_INTEGER_2 * restrict base;
+ GFC_UINTEGER_2 * restrict dest;
+ const GFC_UINTEGER_2 * restrict base;
const GFC_LOGICAL_1 * restrict mbase;
index_type rank;
index_type dim;
retarray->offset = 0;
retarray->dtype.rank = rank;
- retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_2));
+ retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_UINTEGER_2));
if (alloc_size == 0)
return;
}
while (base)
{
- const GFC_INTEGER_2 * restrict src;
+ const GFC_UINTEGER_2 * restrict src;
const GFC_LOGICAL_1 * restrict msrc;
- GFC_INTEGER_2 result;
+ GFC_UINTEGER_2 result;
src = base;
msrc = mbase;
{
}
-extern void ssum_i2 (gfc_array_i2 * const restrict,
- gfc_array_i2 * const restrict, const index_type * const restrict,
+extern void ssum_i2 (gfc_array_m2 * const restrict,
+ gfc_array_m2 * const restrict, const index_type * const restrict,
GFC_LOGICAL_4 *);
export_proto(ssum_i2);
void
-ssum_i2 (gfc_array_i2 * const restrict retarray,
- gfc_array_i2 * const restrict array,
- const index_type * const restrict pdim,
+ssum_i2 (gfc_array_m2 * const restrict retarray,
+ gfc_array_m2 * const restrict array,
+ const index_type * const restrict pdim,
GFC_LOGICAL_4 * mask)
{
index_type count[GFC_MAX_DIMENSIONS];
index_type extent[GFC_MAX_DIMENSIONS];
index_type dstride[GFC_MAX_DIMENSIONS];
- GFC_INTEGER_2 * restrict dest;
+ GFC_UINTEGER_2 * restrict dest;
index_type rank;
index_type n;
index_type dim;
alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
- retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_2));
+ retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_UINTEGER_2));
if (alloc_size == 0)
return;
}
#include "libgfortran.h"
-#if defined (HAVE_GFC_INTEGER_4) && defined (HAVE_GFC_INTEGER_4)
+#if defined (HAVE_GFC_UINTEGER_4) && defined (HAVE_GFC_UINTEGER_4)
-extern void sum_i4 (gfc_array_i4 * const restrict,
- gfc_array_i4 * const restrict, const index_type * const restrict);
+extern void sum_i4 (gfc_array_m4 * const restrict,
+ gfc_array_m4 * const restrict, const index_type * const restrict);
export_proto(sum_i4);
void
-sum_i4 (gfc_array_i4 * const restrict retarray,
- gfc_array_i4 * const restrict array,
+sum_i4 (gfc_array_m4 * const restrict retarray,
+ gfc_array_m4 * const restrict array,
const index_type * const restrict pdim)
{
index_type count[GFC_MAX_DIMENSIONS];
index_type extent[GFC_MAX_DIMENSIONS];
index_type sstride[GFC_MAX_DIMENSIONS];
index_type dstride[GFC_MAX_DIMENSIONS];
- const GFC_INTEGER_4 * restrict base;
- GFC_INTEGER_4 * restrict dest;
+ const GFC_UINTEGER_4 * restrict base;
+ GFC_UINTEGER_4 * restrict dest;
index_type rank;
index_type n;
index_type len;
alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
- retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4));
+ retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_UINTEGER_4));
if (alloc_size == 0)
return;
}
continue_loop = 1;
while (continue_loop)
{
- const GFC_INTEGER_4 * restrict src;
- GFC_INTEGER_4 result;
+ const GFC_UINTEGER_4 * restrict src;
+ GFC_UINTEGER_4 result;
src = base;
{
}
-extern void msum_i4 (gfc_array_i4 * const restrict,
- gfc_array_i4 * const restrict, const index_type * const restrict,
+extern void msum_i4 (gfc_array_m4 * const restrict,
+ gfc_array_m4 * const restrict, const index_type * const restrict,
gfc_array_l1 * const restrict);
export_proto(msum_i4);
void
-msum_i4 (gfc_array_i4 * const restrict retarray,
- gfc_array_i4 * const restrict array,
- const index_type * const restrict pdim,
+msum_i4 (gfc_array_m4 * const restrict retarray,
+ gfc_array_m4 * const restrict array,
+ const index_type * const restrict pdim,
gfc_array_l1 * const restrict mask)
{
index_type count[GFC_MAX_DIMENSIONS];
index_type sstride[GFC_MAX_DIMENSIONS];
index_type dstride[GFC_MAX_DIMENSIONS];
index_type mstride[GFC_MAX_DIMENSIONS];
- GFC_INTEGER_4 * restrict dest;
- const GFC_INTEGER_4 * restrict base;
+ GFC_UINTEGER_4 * restrict dest;
+ const GFC_UINTEGER_4 * restrict base;
const GFC_LOGICAL_1 * restrict mbase;
index_type rank;
index_type dim;
retarray->offset = 0;
retarray->dtype.rank = rank;
- retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4));
+ retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_UINTEGER_4));
if (alloc_size == 0)
return;
}
while (base)
{
- const GFC_INTEGER_4 * restrict src;
+ const GFC_UINTEGER_4 * restrict src;
const GFC_LOGICAL_1 * restrict msrc;
- GFC_INTEGER_4 result;
+ GFC_UINTEGER_4 result;
src = base;
msrc = mbase;
{
}
-extern void ssum_i4 (gfc_array_i4 * const restrict,
- gfc_array_i4 * const restrict, const index_type * const restrict,
+extern void ssum_i4 (gfc_array_m4 * const restrict,
+ gfc_array_m4 * const restrict, const index_type * const restrict,
GFC_LOGICAL_4 *);
export_proto(ssum_i4);
void
-ssum_i4 (gfc_array_i4 * const restrict retarray,
- gfc_array_i4 * const restrict array,
- const index_type * const restrict pdim,
+ssum_i4 (gfc_array_m4 * const restrict retarray,
+ gfc_array_m4 * const restrict array,
+ const index_type * const restrict pdim,
GFC_LOGICAL_4 * mask)
{
index_type count[GFC_MAX_DIMENSIONS];
index_type extent[GFC_MAX_DIMENSIONS];
index_type dstride[GFC_MAX_DIMENSIONS];
- GFC_INTEGER_4 * restrict dest;
+ GFC_UINTEGER_4 * restrict dest;
index_type rank;
index_type n;
index_type dim;
alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
- retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4));
+ retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_UINTEGER_4));
if (alloc_size == 0)
return;
}
#include "libgfortran.h"
-#if defined (HAVE_GFC_INTEGER_8) && defined (HAVE_GFC_INTEGER_8)
+#if defined (HAVE_GFC_UINTEGER_8) && defined (HAVE_GFC_UINTEGER_8)
-extern void sum_i8 (gfc_array_i8 * const restrict,
- gfc_array_i8 * const restrict, const index_type * const restrict);
+extern void sum_i8 (gfc_array_m8 * const restrict,
+ gfc_array_m8 * const restrict, const index_type * const restrict);
export_proto(sum_i8);
void
-sum_i8 (gfc_array_i8 * const restrict retarray,
- gfc_array_i8 * const restrict array,
+sum_i8 (gfc_array_m8 * const restrict retarray,
+ gfc_array_m8 * const restrict array,
const index_type * const restrict pdim)
{
index_type count[GFC_MAX_DIMENSIONS];
index_type extent[GFC_MAX_DIMENSIONS];
index_type sstride[GFC_MAX_DIMENSIONS];
index_type dstride[GFC_MAX_DIMENSIONS];
- const GFC_INTEGER_8 * restrict base;
- GFC_INTEGER_8 * restrict dest;
+ const GFC_UINTEGER_8 * restrict base;
+ GFC_UINTEGER_8 * restrict dest;
index_type rank;
index_type n;
index_type len;
alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
- retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8));
+ retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_UINTEGER_8));
if (alloc_size == 0)
return;
}
continue_loop = 1;
while (continue_loop)
{
- const GFC_INTEGER_8 * restrict src;
- GFC_INTEGER_8 result;
+ const GFC_UINTEGER_8 * restrict src;
+ GFC_UINTEGER_8 result;
src = base;
{
}
-extern void msum_i8 (gfc_array_i8 * const restrict,
- gfc_array_i8 * const restrict, const index_type * const restrict,
+extern void msum_i8 (gfc_array_m8 * const restrict,
+ gfc_array_m8 * const restrict, const index_type * const restrict,
gfc_array_l1 * const restrict);
export_proto(msum_i8);
void
-msum_i8 (gfc_array_i8 * const restrict retarray,
- gfc_array_i8 * const restrict array,
- const index_type * const restrict pdim,
+msum_i8 (gfc_array_m8 * const restrict retarray,
+ gfc_array_m8 * const restrict array,
+ const index_type * const restrict pdim,
gfc_array_l1 * const restrict mask)
{
index_type count[GFC_MAX_DIMENSIONS];
index_type sstride[GFC_MAX_DIMENSIONS];
index_type dstride[GFC_MAX_DIMENSIONS];
index_type mstride[GFC_MAX_DIMENSIONS];
- GFC_INTEGER_8 * restrict dest;
- const GFC_INTEGER_8 * restrict base;
+ GFC_UINTEGER_8 * restrict dest;
+ const GFC_UINTEGER_8 * restrict base;
const GFC_LOGICAL_1 * restrict mbase;
index_type rank;
index_type dim;
retarray->offset = 0;
retarray->dtype.rank = rank;
- retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8));
+ retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_UINTEGER_8));
if (alloc_size == 0)
return;
}
while (base)
{
- const GFC_INTEGER_8 * restrict src;
+ const GFC_UINTEGER_8 * restrict src;
const GFC_LOGICAL_1 * restrict msrc;
- GFC_INTEGER_8 result;
+ GFC_UINTEGER_8 result;
src = base;
msrc = mbase;
{
}
-extern void ssum_i8 (gfc_array_i8 * const restrict,
- gfc_array_i8 * const restrict, const index_type * const restrict,
+extern void ssum_i8 (gfc_array_m8 * const restrict,
+ gfc_array_m8 * const restrict, const index_type * const restrict,
GFC_LOGICAL_4 *);
export_proto(ssum_i8);
void
-ssum_i8 (gfc_array_i8 * const restrict retarray,
- gfc_array_i8 * const restrict array,
- const index_type * const restrict pdim,
+ssum_i8 (gfc_array_m8 * const restrict retarray,
+ gfc_array_m8 * const restrict array,
+ const index_type * const restrict pdim,
GFC_LOGICAL_4 * mask)
{
index_type count[GFC_MAX_DIMENSIONS];
index_type extent[GFC_MAX_DIMENSIONS];
index_type dstride[GFC_MAX_DIMENSIONS];
- GFC_INTEGER_8 * restrict dest;
+ GFC_UINTEGER_8 * restrict dest;
index_type rank;
index_type n;
index_type dim;
alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
- retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8));
+ retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_UINTEGER_8));
if (alloc_size == 0)
return;
}
#if defined (HAVE_GFC_REAL_10) && defined (HAVE_GFC_REAL_10)
-extern void sum_r10 (gfc_array_r10 * const restrict,
+extern void sum_r10 (gfc_array_r10 * const restrict,
gfc_array_r10 * const restrict, const index_type * const restrict);
export_proto(sum_r10);
void
-sum_r10 (gfc_array_r10 * const restrict retarray,
- gfc_array_r10 * const restrict array,
+sum_r10 (gfc_array_r10 * const restrict retarray,
+ gfc_array_r10 * const restrict array,
const index_type * const restrict pdim)
{
index_type count[GFC_MAX_DIMENSIONS];
}
-extern void msum_r10 (gfc_array_r10 * const restrict,
+extern void msum_r10 (gfc_array_r10 * const restrict,
gfc_array_r10 * const restrict, const index_type * const restrict,
gfc_array_l1 * const restrict);
export_proto(msum_r10);
void
-msum_r10 (gfc_array_r10 * const restrict retarray,
- gfc_array_r10 * const restrict array,
- const index_type * const restrict pdim,
+msum_r10 (gfc_array_r10 * const restrict retarray,
+ gfc_array_r10 * const restrict array,
+ const index_type * const restrict pdim,
gfc_array_l1 * const restrict mask)
{
index_type count[GFC_MAX_DIMENSIONS];
}
-extern void ssum_r10 (gfc_array_r10 * const restrict,
+extern void ssum_r10 (gfc_array_r10 * const restrict,
gfc_array_r10 * const restrict, const index_type * const restrict,
GFC_LOGICAL_4 *);
export_proto(ssum_r10);
void
-ssum_r10 (gfc_array_r10 * const restrict retarray,
- gfc_array_r10 * const restrict array,
- const index_type * const restrict pdim,
+ssum_r10 (gfc_array_r10 * const restrict retarray,
+ gfc_array_r10 * const restrict array,
+ const index_type * const restrict pdim,
GFC_LOGICAL_4 * mask)
{
index_type count[GFC_MAX_DIMENSIONS];
#if defined (HAVE_GFC_REAL_16) && defined (HAVE_GFC_REAL_16)
-extern void sum_r16 (gfc_array_r16 * const restrict,
+extern void sum_r16 (gfc_array_r16 * const restrict,
gfc_array_r16 * const restrict, const index_type * const restrict);
export_proto(sum_r16);
void
-sum_r16 (gfc_array_r16 * const restrict retarray,
- gfc_array_r16 * const restrict array,
+sum_r16 (gfc_array_r16 * const restrict retarray,
+ gfc_array_r16 * const restrict array,
const index_type * const restrict pdim)
{
index_type count[GFC_MAX_DIMENSIONS];
}
-extern void msum_r16 (gfc_array_r16 * const restrict,
+extern void msum_r16 (gfc_array_r16 * const restrict,
gfc_array_r16 * const restrict, const index_type * const restrict,
gfc_array_l1 * const restrict);
export_proto(msum_r16);
void
-msum_r16 (gfc_array_r16 * const restrict retarray,
- gfc_array_r16 * const restrict array,
- const index_type * const restrict pdim,
+msum_r16 (gfc_array_r16 * const restrict retarray,
+ gfc_array_r16 * const restrict array,
+ const index_type * const restrict pdim,
gfc_array_l1 * const restrict mask)
{
index_type count[GFC_MAX_DIMENSIONS];
}
-extern void ssum_r16 (gfc_array_r16 * const restrict,
+extern void ssum_r16 (gfc_array_r16 * const restrict,
gfc_array_r16 * const restrict, const index_type * const restrict,
GFC_LOGICAL_4 *);
export_proto(ssum_r16);
void
-ssum_r16 (gfc_array_r16 * const restrict retarray,
- gfc_array_r16 * const restrict array,
- const index_type * const restrict pdim,
+ssum_r16 (gfc_array_r16 * const restrict retarray,
+ gfc_array_r16 * const restrict array,
+ const index_type * const restrict pdim,
GFC_LOGICAL_4 * mask)
{
index_type count[GFC_MAX_DIMENSIONS];
#if defined (HAVE_GFC_REAL_17) && defined (HAVE_GFC_REAL_17)
-extern void sum_r17 (gfc_array_r17 * const restrict,
+extern void sum_r17 (gfc_array_r17 * const restrict,
gfc_array_r17 * const restrict, const index_type * const restrict);
export_proto(sum_r17);
void
-sum_r17 (gfc_array_r17 * const restrict retarray,
- gfc_array_r17 * const restrict array,
+sum_r17 (gfc_array_r17 * const restrict retarray,
+ gfc_array_r17 * const restrict array,
const index_type * const restrict pdim)
{
index_type count[GFC_MAX_DIMENSIONS];
}
-extern void msum_r17 (gfc_array_r17 * const restrict,
+extern void msum_r17 (gfc_array_r17 * const restrict,
gfc_array_r17 * const restrict, const index_type * const restrict,
gfc_array_l1 * const restrict);
export_proto(msum_r17);
void
-msum_r17 (gfc_array_r17 * const restrict retarray,
- gfc_array_r17 * const restrict array,
- const index_type * const restrict pdim,
+msum_r17 (gfc_array_r17 * const restrict retarray,
+ gfc_array_r17 * const restrict array,
+ const index_type * const restrict pdim,
gfc_array_l1 * const restrict mask)
{
index_type count[GFC_MAX_DIMENSIONS];
}
-extern void ssum_r17 (gfc_array_r17 * const restrict,
+extern void ssum_r17 (gfc_array_r17 * const restrict,
gfc_array_r17 * const restrict, const index_type * const restrict,
GFC_LOGICAL_4 *);
export_proto(ssum_r17);
void
-ssum_r17 (gfc_array_r17 * const restrict retarray,
- gfc_array_r17 * const restrict array,
- const index_type * const restrict pdim,
+ssum_r17 (gfc_array_r17 * const restrict retarray,
+ gfc_array_r17 * const restrict array,
+ const index_type * const restrict pdim,
GFC_LOGICAL_4 * mask)
{
index_type count[GFC_MAX_DIMENSIONS];
#if defined (HAVE_GFC_REAL_4) && defined (HAVE_GFC_REAL_4)
-extern void sum_r4 (gfc_array_r4 * const restrict,
+extern void sum_r4 (gfc_array_r4 * const restrict,
gfc_array_r4 * const restrict, const index_type * const restrict);
export_proto(sum_r4);
void
-sum_r4 (gfc_array_r4 * const restrict retarray,
- gfc_array_r4 * const restrict array,
+sum_r4 (gfc_array_r4 * const restrict retarray,
+ gfc_array_r4 * const restrict array,
const index_type * const restrict pdim)
{
index_type count[GFC_MAX_DIMENSIONS];
}
-extern void msum_r4 (gfc_array_r4 * const restrict,
+extern void msum_r4 (gfc_array_r4 * const restrict,
gfc_array_r4 * const restrict, const index_type * const restrict,
gfc_array_l1 * const restrict);
export_proto(msum_r4);
void
-msum_r4 (gfc_array_r4 * const restrict retarray,
- gfc_array_r4 * const restrict array,
- const index_type * const restrict pdim,
+msum_r4 (gfc_array_r4 * const restrict retarray,
+ gfc_array_r4 * const restrict array,
+ const index_type * const restrict pdim,
gfc_array_l1 * const restrict mask)
{
index_type count[GFC_MAX_DIMENSIONS];
}
-extern void ssum_r4 (gfc_array_r4 * const restrict,
+extern void ssum_r4 (gfc_array_r4 * const restrict,
gfc_array_r4 * const restrict, const index_type * const restrict,
GFC_LOGICAL_4 *);
export_proto(ssum_r4);
void
-ssum_r4 (gfc_array_r4 * const restrict retarray,
- gfc_array_r4 * const restrict array,
- const index_type * const restrict pdim,
+ssum_r4 (gfc_array_r4 * const restrict retarray,
+ gfc_array_r4 * const restrict array,
+ const index_type * const restrict pdim,
GFC_LOGICAL_4 * mask)
{
index_type count[GFC_MAX_DIMENSIONS];
#if defined (HAVE_GFC_REAL_8) && defined (HAVE_GFC_REAL_8)
-extern void sum_r8 (gfc_array_r8 * const restrict,
+extern void sum_r8 (gfc_array_r8 * const restrict,
gfc_array_r8 * const restrict, const index_type * const restrict);
export_proto(sum_r8);
void
-sum_r8 (gfc_array_r8 * const restrict retarray,
- gfc_array_r8 * const restrict array,
+sum_r8 (gfc_array_r8 * const restrict retarray,
+ gfc_array_r8 * const restrict array,
const index_type * const restrict pdim)
{
index_type count[GFC_MAX_DIMENSIONS];
}
-extern void msum_r8 (gfc_array_r8 * const restrict,
+extern void msum_r8 (gfc_array_r8 * const restrict,
gfc_array_r8 * const restrict, const index_type * const restrict,
gfc_array_l1 * const restrict);
export_proto(msum_r8);
void
-msum_r8 (gfc_array_r8 * const restrict retarray,
- gfc_array_r8 * const restrict array,
- const index_type * const restrict pdim,
+msum_r8 (gfc_array_r8 * const restrict retarray,
+ gfc_array_r8 * const restrict array,
+ const index_type * const restrict pdim,
gfc_array_l1 * const restrict mask)
{
index_type count[GFC_MAX_DIMENSIONS];
}
-extern void ssum_r8 (gfc_array_r8 * const restrict,
+extern void ssum_r8 (gfc_array_r8 * const restrict,
gfc_array_r8 * const restrict, const index_type * const restrict,
GFC_LOGICAL_4 *);
export_proto(ssum_r8);
void
-ssum_r8 (gfc_array_r8 * const restrict retarray,
- gfc_array_r8 * const restrict array,
- const index_type * const restrict pdim,
+ssum_r8 (gfc_array_r8 * const restrict retarray,
+ gfc_array_r8 * const restrict array,
+ const index_type * const restrict pdim,
GFC_LOGICAL_4 * mask)
{
index_type count[GFC_MAX_DIMENSIONS];
dnl Care should also be taken to avoid using the names defined in iparm.m4
define(START_ARRAY_FUNCTION,
`
-extern void name`'rtype_qual`_'atype_code (rtype * const restrict,
+extern void name`'rtype_qual`_'atype_code (rtype * const restrict,
atype` * const restrict, const 'index_type` * const restrict'back_arg`);
export_proto('name`'rtype_qual`_'atype_code);
void
-name`'rtype_qual`_'atype_code` ('rtype` * const restrict retarray,
- 'atype` * const restrict array,
+name`'rtype_qual`_'atype_code` ('rtype` * const restrict retarray,
+ 'atype` * const restrict array,
const index_type * const restrict pdim'back_arg`)
{
index_type count[GFC_MAX_DIMENSIONS];
}')dnl
define(START_MASKED_ARRAY_FUNCTION,
`
-extern void `m'name`'rtype_qual`_'atype_code` ('rtype` * const restrict,
+extern void `m'name`'rtype_qual`_'atype_code` ('rtype` * const restrict,
'atype` * const restrict, const 'index_type` * const restrict,
gfc_array_l1 * const restrict'back_arg`);
export_proto(m'name`'rtype_qual`_'atype_code`);
void
-m'name`'rtype_qual`_'atype_code` ('rtype` * const restrict retarray,
- 'atype` * const restrict array,
- const index_type * const restrict pdim,
+m'name`'rtype_qual`_'atype_code` ('rtype` * const restrict retarray,
+ 'atype` * const restrict array,
+ const index_type * const restrict pdim,
gfc_array_l1 * const restrict mask'back_arg`)
{
index_type count[GFC_MAX_DIMENSIONS];
}')dnl
define(SCALAR_ARRAY_FUNCTION,
`
-extern void `s'name`'rtype_qual`_'atype_code` ('rtype` * const restrict,
+extern void `s'name`'rtype_qual`_'atype_code` ('rtype` * const restrict,
'atype` * const restrict, const index_type * const restrict,
GFC_LOGICAL_4 *'back_arg`);
export_proto(s'name`'rtype_qual`_'atype_code);
void
-`s'name`'rtype_qual`_'atype_code` ('rtype` * const restrict retarray,
- 'atype` * const restrict array,
- const index_type * const restrict pdim,
+`s'name`'rtype_qual`_'atype_code` ('rtype` * const restrict retarray,
+ 'atype` * const restrict array,
+ const index_type * const restrict pdim,
GFC_LOGICAL_4 * mask'back_arg`)
{
index_type count[GFC_MAX_DIMENSIONS];
#include "libgfortran.h"'
include(iparm.m4)dnl
+ifelse(index(rtype_name,`GFC_INTEGER'),`0',dnl
+define(`rtype_name',patsubst(rtype_name,`GFC_INTEGER',`GFC_UINTEGER'))dnl
+define(`atype_name',patsubst(rtype_name,`GFC_INTEGER',`GFC_UINTEGER'))dnl
+define(`rtype',patsubst(rtype,`gfc_array_i',`gfc_array_m'))dnl
+define(`atype',patsubst(rtype,`gfc_array_i',`gfc_array_m')))dnl
include(ifunction.m4)dnl
`#if defined (HAVE_'atype_name`) && defined (HAVE_'rtype_name`)'
#include "libgfortran.h"'
include(iparm.m4)dnl
+ifelse(index(rtype_name,`GFC_INTEGER'),`0',dnl
+define(`rtype_name',patsubst(rtype_name,`GFC_INTEGER',`GFC_UINTEGER'))dnl
+define(`atype_name',patsubst(rtype_name,`GFC_INTEGER',`GFC_UINTEGER'))dnl
+define(`rtype',patsubst(rtype,`gfc_array_i',`gfc_array_m'))dnl
+define(`atype',patsubst(rtype,`gfc_array_i',`gfc_array_m')))dnl
include(ifunction.m4)dnl
`#if defined (HAVE_'atype_name`) && defined (HAVE_'rtype_name`)'