re PR libfortran/27919 (dot_product should be removed from the library)
2006-07-19 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/27919 * m4/dotprodc.m4: Remove. * m4/dotprodl.m4: Remove. * m4/dotprod.m4: Remove. * generated/dotprod_*.c: Remove. * Makefile.am: Remove any references to dot_product implementation. * Makefile.in: Regenerated. From-SVN: r115593
This commit is contained in:
parent
4841d432d7
commit
dae2efc470
@ -270,26 +270,6 @@ generated/product_c8.c \
|
||||
generated/product_c10.c \
|
||||
generated/product_c16.c
|
||||
|
||||
i_dotprod_c= \
|
||||
generated/dotprod_i4.c \
|
||||
generated/dotprod_i8.c \
|
||||
generated/dotprod_i16.c \
|
||||
generated/dotprod_r4.c \
|
||||
generated/dotprod_r8.c \
|
||||
generated/dotprod_r10.c \
|
||||
generated/dotprod_r16.c
|
||||
|
||||
i_dotprodl_c= \
|
||||
generated/dotprod_l4.c \
|
||||
generated/dotprod_l8.c \
|
||||
generated/dotprod_l16.c
|
||||
|
||||
i_dotprodc_c= \
|
||||
generated/dotprod_c4.c \
|
||||
generated/dotprod_c8.c \
|
||||
generated/dotprod_c10.c \
|
||||
generated/dotprod_c16.c
|
||||
|
||||
i_matmul_c= \
|
||||
generated/matmul_i4.c \
|
||||
generated/matmul_i8.c \
|
||||
@ -434,7 +414,7 @@ generated/pow_c16_i16.c
|
||||
m4_files= m4/iparm.m4 m4/ifunction.m4 m4/iforeach.m4 m4/all.m4 \
|
||||
m4/any.m4 m4/count.m4 m4/maxloc0.m4 m4/maxloc1.m4 m4/maxval.m4 \
|
||||
m4/minloc0.m4 m4/minloc1.m4 m4/minval.m4 m4/product.m4 m4/sum.m4 \
|
||||
m4/dotprod.m4 m4/dotprodl.m4 m4/dotprodc.m4 m4/matmul.m4 m4/matmull.m4 \
|
||||
m4/matmul.m4 m4/matmull.m4 \
|
||||
m4/ctrig.m4 m4/cexp.m4 m4/chyp.m4 m4/mtype.m4 \
|
||||
m4/specific.m4 m4/specific2.m4 m4/head.m4 m4/shape.m4 m4/reshape.m4 \
|
||||
m4/transpose.m4 m4/eoshift1.m4 m4/eoshift3.m4 m4/exponent.m4 \
|
||||
@ -442,7 +422,7 @@ m4_files= m4/iparm.m4 m4/ifunction.m4 m4/iforeach.m4 m4/all.m4 \
|
||||
|
||||
gfor_built_src= $(i_all_c) $(i_any_c) $(i_count_c) $(i_maxloc0_c) \
|
||||
$(i_maxloc1_c) $(i_maxval_c) $(i_minloc0_c) $(i_minloc1_c) $(i_minval_c) \
|
||||
$(i_product_c) $(i_sum_c) $(i_dotprod_c) $(i_dotprodl_c) $(i_dotprodc_c) \
|
||||
$(i_product_c) $(i_sum_c) \
|
||||
$(i_matmul_c) $(i_matmull_c) $(i_transpose_c) $(i_shape_c) $(i_eoshift1_c) \
|
||||
$(i_eoshift3_c) $(i_cshift1_c) $(i_reshape_c) $(in_pack_c) $(in_unpack_c) \
|
||||
$(i_exponent_c) $(i_fraction_c) $(i_nearest_c) $(i_set_exponent_c) \
|
||||
@ -654,15 +634,6 @@ $(i_product_c): m4/product.m4 $(I_M4_DEPS1)
|
||||
$(i_sum_c): m4/sum.m4 $(I_M4_DEPS1)
|
||||
m4 -Dfile=$@ -I$(srcdir)/m4 sum.m4 > $(srcdir)/$@
|
||||
|
||||
$(i_dotprod_c): m4/dotprod.m4 $(I_M4_DEPS)
|
||||
m4 -Dfile=$@ -I$(srcdir)/m4 dotprod.m4 > $(srcdir)/$@
|
||||
|
||||
$(i_dotprodl_c): m4/dotprodl.m4 $(I_M4_DEPS)
|
||||
m4 -Dfile=$@ -I$(srcdir)/m4 dotprodl.m4 > $(srcdir)/$@
|
||||
|
||||
$(i_dotprodc_c): m4/dotprodc.m4 $(I_M4_DEPS)
|
||||
m4 -Dfile=$@ -I$(srcdir)/m4 dotprodc.m4 > $(srcdir)/$@
|
||||
|
||||
$(i_matmul_c): m4/matmul.m4 $(I_M4_DEPS)
|
||||
m4 -Dfile=$@ -I$(srcdir)/m4 matmul.m4 > $(srcdir)/$@
|
||||
|
||||
|
@ -112,40 +112,35 @@ am__objects_11 = product_i4.lo product_i8.lo product_i16.lo \
|
||||
am__objects_12 = sum_i4.lo sum_i8.lo sum_i16.lo sum_r4.lo sum_r8.lo \
|
||||
sum_r10.lo sum_r16.lo sum_c4.lo sum_c8.lo sum_c10.lo \
|
||||
sum_c16.lo
|
||||
am__objects_13 = dotprod_i4.lo dotprod_i8.lo dotprod_i16.lo \
|
||||
dotprod_r4.lo dotprod_r8.lo dotprod_r10.lo dotprod_r16.lo
|
||||
am__objects_14 = dotprod_l4.lo dotprod_l8.lo dotprod_l16.lo
|
||||
am__objects_15 = dotprod_c4.lo dotprod_c8.lo dotprod_c10.lo \
|
||||
dotprod_c16.lo
|
||||
am__objects_16 = matmul_i4.lo matmul_i8.lo matmul_i16.lo matmul_r4.lo \
|
||||
am__objects_13 = matmul_i4.lo matmul_i8.lo matmul_i16.lo matmul_r4.lo \
|
||||
matmul_r8.lo matmul_r10.lo matmul_r16.lo matmul_c4.lo \
|
||||
matmul_c8.lo matmul_c10.lo matmul_c16.lo
|
||||
am__objects_17 = matmul_l4.lo matmul_l8.lo matmul_l16.lo
|
||||
am__objects_18 = transpose_i4.lo transpose_i8.lo transpose_i16.lo \
|
||||
am__objects_14 = matmul_l4.lo matmul_l8.lo matmul_l16.lo
|
||||
am__objects_15 = transpose_i4.lo transpose_i8.lo transpose_i16.lo \
|
||||
transpose_r4.lo transpose_r8.lo transpose_r10.lo \
|
||||
transpose_r16.lo transpose_c4.lo transpose_c8.lo \
|
||||
transpose_c10.lo transpose_c16.lo
|
||||
am__objects_19 = shape_i4.lo shape_i8.lo shape_i16.lo
|
||||
am__objects_20 = eoshift1_4.lo eoshift1_8.lo eoshift1_16.lo
|
||||
am__objects_21 = eoshift3_4.lo eoshift3_8.lo eoshift3_16.lo
|
||||
am__objects_22 = cshift1_4.lo cshift1_8.lo cshift1_16.lo
|
||||
am__objects_23 = reshape_i4.lo reshape_i8.lo reshape_i16.lo \
|
||||
am__objects_16 = shape_i4.lo shape_i8.lo shape_i16.lo
|
||||
am__objects_17 = eoshift1_4.lo eoshift1_8.lo eoshift1_16.lo
|
||||
am__objects_18 = eoshift3_4.lo eoshift3_8.lo eoshift3_16.lo
|
||||
am__objects_19 = cshift1_4.lo cshift1_8.lo cshift1_16.lo
|
||||
am__objects_20 = reshape_i4.lo reshape_i8.lo reshape_i16.lo \
|
||||
reshape_r4.lo reshape_r8.lo reshape_r10.lo reshape_r16.lo \
|
||||
reshape_c4.lo reshape_c8.lo reshape_c10.lo reshape_c16.lo
|
||||
am__objects_24 = in_pack_i4.lo in_pack_i8.lo in_pack_i16.lo \
|
||||
am__objects_21 = in_pack_i4.lo in_pack_i8.lo in_pack_i16.lo \
|
||||
in_pack_c4.lo in_pack_c8.lo in_pack_c10.lo in_pack_c16.lo
|
||||
am__objects_25 = in_unpack_i4.lo in_unpack_i8.lo in_unpack_i16.lo \
|
||||
am__objects_22 = in_unpack_i4.lo in_unpack_i8.lo in_unpack_i16.lo \
|
||||
in_unpack_c4.lo in_unpack_c8.lo in_unpack_c10.lo \
|
||||
in_unpack_c16.lo
|
||||
am__objects_26 = exponent_r4.lo exponent_r8.lo exponent_r10.lo \
|
||||
am__objects_23 = exponent_r4.lo exponent_r8.lo exponent_r10.lo \
|
||||
exponent_r16.lo
|
||||
am__objects_27 = fraction_r4.lo fraction_r8.lo fraction_r10.lo \
|
||||
am__objects_24 = fraction_r4.lo fraction_r8.lo fraction_r10.lo \
|
||||
fraction_r16.lo
|
||||
am__objects_28 = nearest_r4.lo nearest_r8.lo nearest_r10.lo \
|
||||
am__objects_25 = nearest_r4.lo nearest_r8.lo nearest_r10.lo \
|
||||
nearest_r16.lo
|
||||
am__objects_29 = set_exponent_r4.lo set_exponent_r8.lo \
|
||||
am__objects_26 = set_exponent_r4.lo set_exponent_r8.lo \
|
||||
set_exponent_r10.lo set_exponent_r16.lo
|
||||
am__objects_30 = pow_i4_i4.lo pow_i8_i4.lo pow_i16_i4.lo pow_r4_i4.lo \
|
||||
am__objects_27 = pow_i4_i4.lo pow_i8_i4.lo pow_i16_i4.lo pow_r4_i4.lo \
|
||||
pow_r8_i4.lo pow_r10_i4.lo pow_r16_i4.lo pow_c4_i4.lo \
|
||||
pow_c8_i4.lo pow_c10_i4.lo pow_c16_i4.lo pow_i4_i8.lo \
|
||||
pow_i8_i8.lo pow_i16_i8.lo pow_r4_i8.lo pow_r8_i8.lo \
|
||||
@ -154,7 +149,7 @@ am__objects_30 = pow_i4_i4.lo pow_i8_i4.lo pow_i16_i4.lo pow_r4_i4.lo \
|
||||
pow_i16_i16.lo pow_r4_i16.lo pow_r8_i16.lo pow_r10_i16.lo \
|
||||
pow_r16_i16.lo pow_c4_i16.lo pow_c8_i16.lo pow_c10_i16.lo \
|
||||
pow_c16_i16.lo
|
||||
am__objects_31 = $(am__objects_2) $(am__objects_3) $(am__objects_4) \
|
||||
am__objects_28 = $(am__objects_2) $(am__objects_3) $(am__objects_4) \
|
||||
$(am__objects_5) $(am__objects_6) $(am__objects_7) \
|
||||
$(am__objects_8) $(am__objects_9) $(am__objects_10) \
|
||||
$(am__objects_11) $(am__objects_12) $(am__objects_13) \
|
||||
@ -162,12 +157,11 @@ am__objects_31 = $(am__objects_2) $(am__objects_3) $(am__objects_4) \
|
||||
$(am__objects_17) $(am__objects_18) $(am__objects_19) \
|
||||
$(am__objects_20) $(am__objects_21) $(am__objects_22) \
|
||||
$(am__objects_23) $(am__objects_24) $(am__objects_25) \
|
||||
$(am__objects_26) $(am__objects_27) $(am__objects_28) \
|
||||
$(am__objects_29) $(am__objects_30)
|
||||
am__objects_32 = close.lo file_pos.lo format.lo inquire.lo \
|
||||
$(am__objects_26) $(am__objects_27)
|
||||
am__objects_29 = close.lo file_pos.lo format.lo inquire.lo \
|
||||
list_read.lo lock.lo open.lo read.lo size_from_kind.lo \
|
||||
transfer.lo unit.lo unix.lo write.lo
|
||||
am__objects_33 = associated.lo abort.lo args.lo bessel.lo \
|
||||
am__objects_30 = associated.lo abort.lo args.lo bessel.lo \
|
||||
c99_functions.lo chdir.lo cpu_time.lo cshift0.lo ctime.lo \
|
||||
date_and_time.lo env.lo erf.lo eoshift0.lo eoshift2.lo \
|
||||
etime.lo exit.lo fget.lo flush.lo fnum.lo ftell.lo gerror.lo \
|
||||
@ -180,8 +174,8 @@ am__objects_33 = associated.lo abort.lo args.lo bessel.lo \
|
||||
system_clock.lo time.lo transpose_generic.lo tty.lo umask.lo \
|
||||
unlink.lo unpack_generic.lo in_pack_generic.lo \
|
||||
in_unpack_generic.lo normalize.lo
|
||||
am__objects_34 =
|
||||
am__objects_35 = _abs_c4.lo _abs_c8.lo _abs_c10.lo _abs_c16.lo \
|
||||
am__objects_31 =
|
||||
am__objects_32 = _abs_c4.lo _abs_c8.lo _abs_c10.lo _abs_c16.lo \
|
||||
_abs_i4.lo _abs_i8.lo _abs_i16.lo _abs_r4.lo _abs_r8.lo \
|
||||
_abs_r10.lo _abs_r16.lo _exp_r4.lo _exp_r8.lo _exp_r10.lo \
|
||||
_exp_r16.lo _exp_c4.lo _exp_c8.lo _exp_c10.lo _exp_c16.lo \
|
||||
@ -201,17 +195,17 @@ am__objects_35 = _abs_c4.lo _abs_c8.lo _abs_c10.lo _abs_c16.lo \
|
||||
_conjg_c4.lo _conjg_c8.lo _conjg_c10.lo _conjg_c16.lo \
|
||||
_aint_r4.lo _aint_r8.lo _aint_r10.lo _aint_r16.lo _anint_r4.lo \
|
||||
_anint_r8.lo _anint_r10.lo _anint_r16.lo
|
||||
am__objects_36 = _sign_i4.lo _sign_i8.lo _sign_i16.lo _sign_r4.lo \
|
||||
am__objects_33 = _sign_i4.lo _sign_i8.lo _sign_i16.lo _sign_r4.lo \
|
||||
_sign_r8.lo _sign_r10.lo _sign_r16.lo _dim_i4.lo _dim_i8.lo \
|
||||
_dim_i16.lo _dim_r4.lo _dim_r8.lo _dim_r10.lo _dim_r16.lo \
|
||||
_atan2_r4.lo _atan2_r8.lo _atan2_r10.lo _atan2_r16.lo \
|
||||
_mod_i4.lo _mod_i8.lo _mod_i16.lo _mod_r4.lo _mod_r8.lo \
|
||||
_mod_r10.lo _mod_r16.lo
|
||||
am__objects_37 = $(am__objects_35) $(am__objects_36) dprod_r8.lo \
|
||||
am__objects_34 = $(am__objects_32) $(am__objects_33) dprod_r8.lo \
|
||||
f2c_specifics.lo
|
||||
am_libgfortran_la_OBJECTS = $(am__objects_1) $(am__objects_31) \
|
||||
$(am__objects_32) $(am__objects_33) $(am__objects_34) \
|
||||
$(am__objects_37)
|
||||
am_libgfortran_la_OBJECTS = $(am__objects_1) $(am__objects_28) \
|
||||
$(am__objects_29) $(am__objects_30) $(am__objects_31) \
|
||||
$(am__objects_34)
|
||||
libgfortran_la_OBJECTS = $(am_libgfortran_la_OBJECTS)
|
||||
libgfortranbegin_la_LIBADD =
|
||||
am_libgfortranbegin_la_OBJECTS = fmain.lo
|
||||
@ -322,6 +316,7 @@ bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_libsubdir = @build_libsubdir@
|
||||
build_os = @build_os@
|
||||
build_subdir = @build_subdir@
|
||||
build_vendor = @build_vendor@
|
||||
@ -619,26 +614,6 @@ generated/product_c8.c \
|
||||
generated/product_c10.c \
|
||||
generated/product_c16.c
|
||||
|
||||
i_dotprod_c = \
|
||||
generated/dotprod_i4.c \
|
||||
generated/dotprod_i8.c \
|
||||
generated/dotprod_i16.c \
|
||||
generated/dotprod_r4.c \
|
||||
generated/dotprod_r8.c \
|
||||
generated/dotprod_r10.c \
|
||||
generated/dotprod_r16.c
|
||||
|
||||
i_dotprodl_c = \
|
||||
generated/dotprod_l4.c \
|
||||
generated/dotprod_l8.c \
|
||||
generated/dotprod_l16.c
|
||||
|
||||
i_dotprodc_c = \
|
||||
generated/dotprod_c4.c \
|
||||
generated/dotprod_c8.c \
|
||||
generated/dotprod_c10.c \
|
||||
generated/dotprod_c16.c
|
||||
|
||||
i_matmul_c = \
|
||||
generated/matmul_i4.c \
|
||||
generated/matmul_i8.c \
|
||||
@ -783,7 +758,7 @@ generated/pow_c16_i16.c
|
||||
m4_files = m4/iparm.m4 m4/ifunction.m4 m4/iforeach.m4 m4/all.m4 \
|
||||
m4/any.m4 m4/count.m4 m4/maxloc0.m4 m4/maxloc1.m4 m4/maxval.m4 \
|
||||
m4/minloc0.m4 m4/minloc1.m4 m4/minval.m4 m4/product.m4 m4/sum.m4 \
|
||||
m4/dotprod.m4 m4/dotprodl.m4 m4/dotprodc.m4 m4/matmul.m4 m4/matmull.m4 \
|
||||
m4/matmul.m4 m4/matmull.m4 \
|
||||
m4/ctrig.m4 m4/cexp.m4 m4/chyp.m4 m4/mtype.m4 \
|
||||
m4/specific.m4 m4/specific2.m4 m4/head.m4 m4/shape.m4 m4/reshape.m4 \
|
||||
m4/transpose.m4 m4/eoshift1.m4 m4/eoshift3.m4 m4/exponent.m4 \
|
||||
@ -791,7 +766,7 @@ m4_files = m4/iparm.m4 m4/ifunction.m4 m4/iforeach.m4 m4/all.m4 \
|
||||
|
||||
gfor_built_src = $(i_all_c) $(i_any_c) $(i_count_c) $(i_maxloc0_c) \
|
||||
$(i_maxloc1_c) $(i_maxval_c) $(i_minloc0_c) $(i_minloc1_c) $(i_minval_c) \
|
||||
$(i_product_c) $(i_sum_c) $(i_dotprod_c) $(i_dotprodl_c) $(i_dotprodc_c) \
|
||||
$(i_product_c) $(i_sum_c) \
|
||||
$(i_matmul_c) $(i_matmull_c) $(i_transpose_c) $(i_shape_c) $(i_eoshift1_c) \
|
||||
$(i_eoshift3_c) $(i_cshift1_c) $(i_reshape_c) $(in_pack_c) $(in_unpack_c) \
|
||||
$(i_exponent_c) $(i_fraction_c) $(i_nearest_c) $(i_set_exponent_c) \
|
||||
@ -1850,48 +1825,6 @@ sum_c10.lo: generated/sum_c10.c
|
||||
sum_c16.lo: generated/sum_c16.c
|
||||
$(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sum_c16.lo `test -f 'generated/sum_c16.c' || echo '$(srcdir)/'`generated/sum_c16.c
|
||||
|
||||
dotprod_i4.lo: generated/dotprod_i4.c
|
||||
$(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dotprod_i4.lo `test -f 'generated/dotprod_i4.c' || echo '$(srcdir)/'`generated/dotprod_i4.c
|
||||
|
||||
dotprod_i8.lo: generated/dotprod_i8.c
|
||||
$(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dotprod_i8.lo `test -f 'generated/dotprod_i8.c' || echo '$(srcdir)/'`generated/dotprod_i8.c
|
||||
|
||||
dotprod_i16.lo: generated/dotprod_i16.c
|
||||
$(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dotprod_i16.lo `test -f 'generated/dotprod_i16.c' || echo '$(srcdir)/'`generated/dotprod_i16.c
|
||||
|
||||
dotprod_r4.lo: generated/dotprod_r4.c
|
||||
$(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dotprod_r4.lo `test -f 'generated/dotprod_r4.c' || echo '$(srcdir)/'`generated/dotprod_r4.c
|
||||
|
||||
dotprod_r8.lo: generated/dotprod_r8.c
|
||||
$(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dotprod_r8.lo `test -f 'generated/dotprod_r8.c' || echo '$(srcdir)/'`generated/dotprod_r8.c
|
||||
|
||||
dotprod_r10.lo: generated/dotprod_r10.c
|
||||
$(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dotprod_r10.lo `test -f 'generated/dotprod_r10.c' || echo '$(srcdir)/'`generated/dotprod_r10.c
|
||||
|
||||
dotprod_r16.lo: generated/dotprod_r16.c
|
||||
$(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dotprod_r16.lo `test -f 'generated/dotprod_r16.c' || echo '$(srcdir)/'`generated/dotprod_r16.c
|
||||
|
||||
dotprod_l4.lo: generated/dotprod_l4.c
|
||||
$(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dotprod_l4.lo `test -f 'generated/dotprod_l4.c' || echo '$(srcdir)/'`generated/dotprod_l4.c
|
||||
|
||||
dotprod_l8.lo: generated/dotprod_l8.c
|
||||
$(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dotprod_l8.lo `test -f 'generated/dotprod_l8.c' || echo '$(srcdir)/'`generated/dotprod_l8.c
|
||||
|
||||
dotprod_l16.lo: generated/dotprod_l16.c
|
||||
$(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dotprod_l16.lo `test -f 'generated/dotprod_l16.c' || echo '$(srcdir)/'`generated/dotprod_l16.c
|
||||
|
||||
dotprod_c4.lo: generated/dotprod_c4.c
|
||||
$(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dotprod_c4.lo `test -f 'generated/dotprod_c4.c' || echo '$(srcdir)/'`generated/dotprod_c4.c
|
||||
|
||||
dotprod_c8.lo: generated/dotprod_c8.c
|
||||
$(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dotprod_c8.lo `test -f 'generated/dotprod_c8.c' || echo '$(srcdir)/'`generated/dotprod_c8.c
|
||||
|
||||
dotprod_c10.lo: generated/dotprod_c10.c
|
||||
$(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dotprod_c10.lo `test -f 'generated/dotprod_c10.c' || echo '$(srcdir)/'`generated/dotprod_c10.c
|
||||
|
||||
dotprod_c16.lo: generated/dotprod_c16.c
|
||||
$(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dotprod_c16.lo `test -f 'generated/dotprod_c16.c' || echo '$(srcdir)/'`generated/dotprod_c16.c
|
||||
|
||||
matmul_i4.lo: generated/matmul_i4.c
|
||||
$(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o matmul_i4.lo `test -f 'generated/matmul_i4.c' || echo '$(srcdir)/'`generated/matmul_i4.c
|
||||
|
||||
@ -2819,15 +2752,6 @@ fpu-target.h: $(srcdir)/$(FPU_HOST_HEADER)
|
||||
@MAINTAINER_MODE_TRUE@$(i_sum_c): m4/sum.m4 $(I_M4_DEPS1)
|
||||
@MAINTAINER_MODE_TRUE@ m4 -Dfile=$@ -I$(srcdir)/m4 sum.m4 > $(srcdir)/$@
|
||||
|
||||
@MAINTAINER_MODE_TRUE@$(i_dotprod_c): m4/dotprod.m4 $(I_M4_DEPS)
|
||||
@MAINTAINER_MODE_TRUE@ m4 -Dfile=$@ -I$(srcdir)/m4 dotprod.m4 > $(srcdir)/$@
|
||||
|
||||
@MAINTAINER_MODE_TRUE@$(i_dotprodl_c): m4/dotprodl.m4 $(I_M4_DEPS)
|
||||
@MAINTAINER_MODE_TRUE@ m4 -Dfile=$@ -I$(srcdir)/m4 dotprodl.m4 > $(srcdir)/$@
|
||||
|
||||
@MAINTAINER_MODE_TRUE@$(i_dotprodc_c): m4/dotprodc.m4 $(I_M4_DEPS)
|
||||
@MAINTAINER_MODE_TRUE@ m4 -Dfile=$@ -I$(srcdir)/m4 dotprodc.m4 > $(srcdir)/$@
|
||||
|
||||
@MAINTAINER_MODE_TRUE@$(i_matmul_c): m4/matmul.m4 $(I_M4_DEPS)
|
||||
@MAINTAINER_MODE_TRUE@ m4 -Dfile=$@ -I$(srcdir)/m4 matmul.m4 > $(srcdir)/$@
|
||||
|
||||
|
@ -1,81 +0,0 @@
|
||||
/* Implementation of the DOT_PRODUCT intrinsic
|
||||
Copyright 2002 Free Software Foundation, Inc.
|
||||
Contributed by Paul Brook <paul@nowt.org>
|
||||
and Feng Wang <fengwang@nudt.edu.cn>
|
||||
|
||||
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 2 of the License, or (at your option) any later version.
|
||||
|
||||
In addition to the permissions in the GNU General Public License, the
|
||||
Free Software Foundation gives you unlimited permission to link the
|
||||
compiled version of this file into combinations with other programs,
|
||||
and to distribute those combinations without any restriction coming
|
||||
from the use of this file. (The General Public License restrictions
|
||||
do apply in other respects; for example, they cover modification of
|
||||
the file, and distribution when not linked into a combine
|
||||
executable.)
|
||||
|
||||
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.
|
||||
|
||||
You should have received a copy of the GNU General Public
|
||||
License along with libgfortran; see the file COPYING. If not,
|
||||
write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA. */
|
||||
|
||||
#include "config.h"
|
||||
#include <stdlib.h>
|
||||
#include <assert.h>
|
||||
#include "libgfortran.h"
|
||||
|
||||
#if defined (HAVE_GFC_COMPLEX_10)
|
||||
|
||||
typedef GFC_ARRAY_DESCRIPTOR(GFC_MAX_DIMENSIONS, char) char_array;
|
||||
|
||||
extern GFC_COMPLEX_10 dot_product_c10 (gfc_array_c10 * const restrict a,
|
||||
gfc_array_c10 * const restrict b);
|
||||
export_proto(dot_product_c10);
|
||||
|
||||
/* Both parameters will already have been converted to the result type. */
|
||||
GFC_COMPLEX_10
|
||||
dot_product_c10 (gfc_array_c10 * const restrict a, gfc_array_c10 * const restrict b)
|
||||
{
|
||||
const GFC_COMPLEX_10 * restrict pa;
|
||||
const GFC_COMPLEX_10 * restrict pb;
|
||||
GFC_COMPLEX_10 res;
|
||||
index_type count;
|
||||
index_type astride;
|
||||
index_type bstride;
|
||||
|
||||
assert (GFC_DESCRIPTOR_RANK (a) == 1
|
||||
&& GFC_DESCRIPTOR_RANK (b) == 1);
|
||||
|
||||
if (a->dim[0].stride == 0)
|
||||
a->dim[0].stride = 1;
|
||||
if (b->dim[0].stride == 0)
|
||||
b->dim[0].stride = 1;
|
||||
|
||||
astride = a->dim[0].stride;
|
||||
bstride = b->dim[0].stride;
|
||||
count = a->dim[0].ubound + 1 - a->dim[0].lbound;
|
||||
res = 0;
|
||||
pa = a->data;
|
||||
pb = b->data;
|
||||
|
||||
while (count--)
|
||||
{
|
||||
res += __builtin_conjl (*pa) * *pb;
|
||||
pa += astride;
|
||||
pb += bstride;
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
#endif
|
@ -1,81 +0,0 @@
|
||||
/* Implementation of the DOT_PRODUCT intrinsic
|
||||
Copyright 2002 Free Software Foundation, Inc.
|
||||
Contributed by Paul Brook <paul@nowt.org>
|
||||
and Feng Wang <fengwang@nudt.edu.cn>
|
||||
|
||||
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 2 of the License, or (at your option) any later version.
|
||||
|
||||
In addition to the permissions in the GNU General Public License, the
|
||||
Free Software Foundation gives you unlimited permission to link the
|
||||
compiled version of this file into combinations with other programs,
|
||||
and to distribute those combinations without any restriction coming
|
||||
from the use of this file. (The General Public License restrictions
|
||||
do apply in other respects; for example, they cover modification of
|
||||
the file, and distribution when not linked into a combine
|
||||
executable.)
|
||||
|
||||
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.
|
||||
|
||||
You should have received a copy of the GNU General Public
|
||||
License along with libgfortran; see the file COPYING. If not,
|
||||
write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA. */
|
||||
|
||||
#include "config.h"
|
||||
#include <stdlib.h>
|
||||
#include <assert.h>
|
||||
#include "libgfortran.h"
|
||||
|
||||
#if defined (HAVE_GFC_COMPLEX_16)
|
||||
|
||||
typedef GFC_ARRAY_DESCRIPTOR(GFC_MAX_DIMENSIONS, char) char_array;
|
||||
|
||||
extern GFC_COMPLEX_16 dot_product_c16 (gfc_array_c16 * const restrict a,
|
||||
gfc_array_c16 * const restrict b);
|
||||
export_proto(dot_product_c16);
|
||||
|
||||
/* Both parameters will already have been converted to the result type. */
|
||||
GFC_COMPLEX_16
|
||||
dot_product_c16 (gfc_array_c16 * const restrict a, gfc_array_c16 * const restrict b)
|
||||
{
|
||||
const GFC_COMPLEX_16 * restrict pa;
|
||||
const GFC_COMPLEX_16 * restrict pb;
|
||||
GFC_COMPLEX_16 res;
|
||||
index_type count;
|
||||
index_type astride;
|
||||
index_type bstride;
|
||||
|
||||
assert (GFC_DESCRIPTOR_RANK (a) == 1
|
||||
&& GFC_DESCRIPTOR_RANK (b) == 1);
|
||||
|
||||
if (a->dim[0].stride == 0)
|
||||
a->dim[0].stride = 1;
|
||||
if (b->dim[0].stride == 0)
|
||||
b->dim[0].stride = 1;
|
||||
|
||||
astride = a->dim[0].stride;
|
||||
bstride = b->dim[0].stride;
|
||||
count = a->dim[0].ubound + 1 - a->dim[0].lbound;
|
||||
res = 0;
|
||||
pa = a->data;
|
||||
pb = b->data;
|
||||
|
||||
while (count--)
|
||||
{
|
||||
res += __builtin_conjl (*pa) * *pb;
|
||||
pa += astride;
|
||||
pb += bstride;
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
#endif
|
@ -1,81 +0,0 @@
|
||||
/* Implementation of the DOT_PRODUCT intrinsic
|
||||
Copyright 2002 Free Software Foundation, Inc.
|
||||
Contributed by Paul Brook <paul@nowt.org>
|
||||
and Feng Wang <fengwang@nudt.edu.cn>
|
||||
|
||||
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 2 of the License, or (at your option) any later version.
|
||||
|
||||
In addition to the permissions in the GNU General Public License, the
|
||||
Free Software Foundation gives you unlimited permission to link the
|
||||
compiled version of this file into combinations with other programs,
|
||||
and to distribute those combinations without any restriction coming
|
||||
from the use of this file. (The General Public License restrictions
|
||||
do apply in other respects; for example, they cover modification of
|
||||
the file, and distribution when not linked into a combine
|
||||
executable.)
|
||||
|
||||
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.
|
||||
|
||||
You should have received a copy of the GNU General Public
|
||||
License along with libgfortran; see the file COPYING. If not,
|
||||
write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA. */
|
||||
|
||||
#include "config.h"
|
||||
#include <stdlib.h>
|
||||
#include <assert.h>
|
||||
#include "libgfortran.h"
|
||||
|
||||
#if defined (HAVE_GFC_COMPLEX_4)
|
||||
|
||||
typedef GFC_ARRAY_DESCRIPTOR(GFC_MAX_DIMENSIONS, char) char_array;
|
||||
|
||||
extern GFC_COMPLEX_4 dot_product_c4 (gfc_array_c4 * const restrict a,
|
||||
gfc_array_c4 * const restrict b);
|
||||
export_proto(dot_product_c4);
|
||||
|
||||
/* Both parameters will already have been converted to the result type. */
|
||||
GFC_COMPLEX_4
|
||||
dot_product_c4 (gfc_array_c4 * const restrict a, gfc_array_c4 * const restrict b)
|
||||
{
|
||||
const GFC_COMPLEX_4 * restrict pa;
|
||||
const GFC_COMPLEX_4 * restrict pb;
|
||||
GFC_COMPLEX_4 res;
|
||||
index_type count;
|
||||
index_type astride;
|
||||
index_type bstride;
|
||||
|
||||
assert (GFC_DESCRIPTOR_RANK (a) == 1
|
||||
&& GFC_DESCRIPTOR_RANK (b) == 1);
|
||||
|
||||
if (a->dim[0].stride == 0)
|
||||
a->dim[0].stride = 1;
|
||||
if (b->dim[0].stride == 0)
|
||||
b->dim[0].stride = 1;
|
||||
|
||||
astride = a->dim[0].stride;
|
||||
bstride = b->dim[0].stride;
|
||||
count = a->dim[0].ubound + 1 - a->dim[0].lbound;
|
||||
res = 0;
|
||||
pa = a->data;
|
||||
pb = b->data;
|
||||
|
||||
while (count--)
|
||||
{
|
||||
res += __builtin_conjf (*pa) * *pb;
|
||||
pa += astride;
|
||||
pb += bstride;
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
#endif
|
@ -1,81 +0,0 @@
|
||||
/* Implementation of the DOT_PRODUCT intrinsic
|
||||
Copyright 2002 Free Software Foundation, Inc.
|
||||
Contributed by Paul Brook <paul@nowt.org>
|
||||
and Feng Wang <fengwang@nudt.edu.cn>
|
||||
|
||||
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 2 of the License, or (at your option) any later version.
|
||||
|
||||
In addition to the permissions in the GNU General Public License, the
|
||||
Free Software Foundation gives you unlimited permission to link the
|
||||
compiled version of this file into combinations with other programs,
|
||||
and to distribute those combinations without any restriction coming
|
||||
from the use of this file. (The General Public License restrictions
|
||||
do apply in other respects; for example, they cover modification of
|
||||
the file, and distribution when not linked into a combine
|
||||
executable.)
|
||||
|
||||
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.
|
||||
|
||||
You should have received a copy of the GNU General Public
|
||||
License along with libgfortran; see the file COPYING. If not,
|
||||
write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA. */
|
||||
|
||||
#include "config.h"
|
||||
#include <stdlib.h>
|
||||
#include <assert.h>
|
||||
#include "libgfortran.h"
|
||||
|
||||
#if defined (HAVE_GFC_COMPLEX_8)
|
||||
|
||||
typedef GFC_ARRAY_DESCRIPTOR(GFC_MAX_DIMENSIONS, char) char_array;
|
||||
|
||||
extern GFC_COMPLEX_8 dot_product_c8 (gfc_array_c8 * const restrict a,
|
||||
gfc_array_c8 * const restrict b);
|
||||
export_proto(dot_product_c8);
|
||||
|
||||
/* Both parameters will already have been converted to the result type. */
|
||||
GFC_COMPLEX_8
|
||||
dot_product_c8 (gfc_array_c8 * const restrict a, gfc_array_c8 * const restrict b)
|
||||
{
|
||||
const GFC_COMPLEX_8 * restrict pa;
|
||||
const GFC_COMPLEX_8 * restrict pb;
|
||||
GFC_COMPLEX_8 res;
|
||||
index_type count;
|
||||
index_type astride;
|
||||
index_type bstride;
|
||||
|
||||
assert (GFC_DESCRIPTOR_RANK (a) == 1
|
||||
&& GFC_DESCRIPTOR_RANK (b) == 1);
|
||||
|
||||
if (a->dim[0].stride == 0)
|
||||
a->dim[0].stride = 1;
|
||||
if (b->dim[0].stride == 0)
|
||||
b->dim[0].stride = 1;
|
||||
|
||||
astride = a->dim[0].stride;
|
||||
bstride = b->dim[0].stride;
|
||||
count = a->dim[0].ubound + 1 - a->dim[0].lbound;
|
||||
res = 0;
|
||||
pa = a->data;
|
||||
pb = b->data;
|
||||
|
||||
while (count--)
|
||||
{
|
||||
res += __builtin_conj (*pa) * *pb;
|
||||
pa += astride;
|
||||
pb += bstride;
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
#endif
|
@ -1,80 +0,0 @@
|
||||
/* Implementation of the DOT_PRODUCT intrinsic
|
||||
Copyright 2002 Free Software Foundation, Inc.
|
||||
Contributed by Paul Brook <paul@nowt.org>
|
||||
|
||||
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 2 of the License, or (at your option) any later version.
|
||||
|
||||
In addition to the permissions in the GNU General Public License, the
|
||||
Free Software Foundation gives you unlimited permission to link the
|
||||
compiled version of this file into combinations with other programs,
|
||||
and to distribute those combinations without any restriction coming
|
||||
from the use of this file. (The General Public License restrictions
|
||||
do apply in other respects; for example, they cover modification of
|
||||
the file, and distribution when not linked into a combine
|
||||
executable.)
|
||||
|
||||
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.
|
||||
|
||||
You should have received a copy of the GNU General Public
|
||||
License along with libgfortran; see the file COPYING. If not,
|
||||
write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA. */
|
||||
|
||||
#include "config.h"
|
||||
#include <stdlib.h>
|
||||
#include <assert.h>
|
||||
#include "libgfortran.h"
|
||||
|
||||
#if defined (HAVE_GFC_INTEGER_16)
|
||||
|
||||
typedef GFC_ARRAY_DESCRIPTOR(GFC_MAX_DIMENSIONS, char) char_array;
|
||||
|
||||
extern GFC_INTEGER_16 dot_product_i16 (gfc_array_i16 * const restrict a,
|
||||
gfc_array_i16 * const restrict b);
|
||||
export_proto(dot_product_i16);
|
||||
|
||||
/* Both parameters will already have been converted to the result type. */
|
||||
GFC_INTEGER_16
|
||||
dot_product_i16 (gfc_array_i16 * const restrict a, gfc_array_i16 * const restrict b)
|
||||
{
|
||||
const GFC_INTEGER_16 * restrict pa;
|
||||
const GFC_INTEGER_16 * restrict pb;
|
||||
GFC_INTEGER_16 res;
|
||||
index_type count;
|
||||
index_type astride;
|
||||
index_type bstride;
|
||||
|
||||
assert (GFC_DESCRIPTOR_RANK (a) == 1
|
||||
&& GFC_DESCRIPTOR_RANK (b) == 1);
|
||||
|
||||
if (a->dim[0].stride == 0)
|
||||
a->dim[0].stride = 1;
|
||||
if (b->dim[0].stride == 0)
|
||||
b->dim[0].stride = 1;
|
||||
|
||||
astride = a->dim[0].stride;
|
||||
bstride = b->dim[0].stride;
|
||||
count = a->dim[0].ubound + 1 - a->dim[0].lbound;
|
||||
res = 0;
|
||||
pa = a->data;
|
||||
pb = b->data;
|
||||
|
||||
while (count--)
|
||||
{
|
||||
res += *pa * *pb;
|
||||
pa += astride;
|
||||
pb += bstride;
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
#endif
|
@ -1,80 +0,0 @@
|
||||
/* Implementation of the DOT_PRODUCT intrinsic
|
||||
Copyright 2002 Free Software Foundation, Inc.
|
||||
Contributed by Paul Brook <paul@nowt.org>
|
||||
|
||||
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 2 of the License, or (at your option) any later version.
|
||||
|
||||
In addition to the permissions in the GNU General Public License, the
|
||||
Free Software Foundation gives you unlimited permission to link the
|
||||
compiled version of this file into combinations with other programs,
|
||||
and to distribute those combinations without any restriction coming
|
||||
from the use of this file. (The General Public License restrictions
|
||||
do apply in other respects; for example, they cover modification of
|
||||
the file, and distribution when not linked into a combine
|
||||
executable.)
|
||||
|
||||
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.
|
||||
|
||||
You should have received a copy of the GNU General Public
|
||||
License along with libgfortran; see the file COPYING. If not,
|
||||
write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA. */
|
||||
|
||||
#include "config.h"
|
||||
#include <stdlib.h>
|
||||
#include <assert.h>
|
||||
#include "libgfortran.h"
|
||||
|
||||
#if defined (HAVE_GFC_INTEGER_4)
|
||||
|
||||
typedef GFC_ARRAY_DESCRIPTOR(GFC_MAX_DIMENSIONS, char) char_array;
|
||||
|
||||
extern GFC_INTEGER_4 dot_product_i4 (gfc_array_i4 * const restrict a,
|
||||
gfc_array_i4 * const restrict b);
|
||||
export_proto(dot_product_i4);
|
||||
|
||||
/* Both parameters will already have been converted to the result type. */
|
||||
GFC_INTEGER_4
|
||||
dot_product_i4 (gfc_array_i4 * const restrict a, gfc_array_i4 * const restrict b)
|
||||
{
|
||||
const GFC_INTEGER_4 * restrict pa;
|
||||
const GFC_INTEGER_4 * restrict pb;
|
||||
GFC_INTEGER_4 res;
|
||||
index_type count;
|
||||
index_type astride;
|
||||
index_type bstride;
|
||||
|
||||
assert (GFC_DESCRIPTOR_RANK (a) == 1
|
||||
&& GFC_DESCRIPTOR_RANK (b) == 1);
|
||||
|
||||
if (a->dim[0].stride == 0)
|
||||
a->dim[0].stride = 1;
|
||||
if (b->dim[0].stride == 0)
|
||||
b->dim[0].stride = 1;
|
||||
|
||||
astride = a->dim[0].stride;
|
||||
bstride = b->dim[0].stride;
|
||||
count = a->dim[0].ubound + 1 - a->dim[0].lbound;
|
||||
res = 0;
|
||||
pa = a->data;
|
||||
pb = b->data;
|
||||
|
||||
while (count--)
|
||||
{
|
||||
res += *pa * *pb;
|
||||
pa += astride;
|
||||
pb += bstride;
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
#endif
|
@ -1,80 +0,0 @@
|
||||
/* Implementation of the DOT_PRODUCT intrinsic
|
||||
Copyright 2002 Free Software Foundation, Inc.
|
||||
Contributed by Paul Brook <paul@nowt.org>
|
||||
|
||||
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 2 of the License, or (at your option) any later version.
|
||||
|
||||
In addition to the permissions in the GNU General Public License, the
|
||||
Free Software Foundation gives you unlimited permission to link the
|
||||
compiled version of this file into combinations with other programs,
|
||||
and to distribute those combinations without any restriction coming
|
||||
from the use of this file. (The General Public License restrictions
|
||||
do apply in other respects; for example, they cover modification of
|
||||
the file, and distribution when not linked into a combine
|
||||
executable.)
|
||||
|
||||
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.
|
||||
|
||||
You should have received a copy of the GNU General Public
|
||||
License along with libgfortran; see the file COPYING. If not,
|
||||
write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA. */
|
||||
|
||||
#include "config.h"
|
||||
#include <stdlib.h>
|
||||
#include <assert.h>
|
||||
#include "libgfortran.h"
|
||||
|
||||
#if defined (HAVE_GFC_INTEGER_8)
|
||||
|
||||
typedef GFC_ARRAY_DESCRIPTOR(GFC_MAX_DIMENSIONS, char) char_array;
|
||||
|
||||
extern GFC_INTEGER_8 dot_product_i8 (gfc_array_i8 * const restrict a,
|
||||
gfc_array_i8 * const restrict b);
|
||||
export_proto(dot_product_i8);
|
||||
|
||||
/* Both parameters will already have been converted to the result type. */
|
||||
GFC_INTEGER_8
|
||||
dot_product_i8 (gfc_array_i8 * const restrict a, gfc_array_i8 * const restrict b)
|
||||
{
|
||||
const GFC_INTEGER_8 * restrict pa;
|
||||
const GFC_INTEGER_8 * restrict pb;
|
||||
GFC_INTEGER_8 res;
|
||||
index_type count;
|
||||
index_type astride;
|
||||
index_type bstride;
|
||||
|
||||
assert (GFC_DESCRIPTOR_RANK (a) == 1
|
||||
&& GFC_DESCRIPTOR_RANK (b) == 1);
|
||||
|
||||
if (a->dim[0].stride == 0)
|
||||
a->dim[0].stride = 1;
|
||||
if (b->dim[0].stride == 0)
|
||||
b->dim[0].stride = 1;
|
||||
|
||||
astride = a->dim[0].stride;
|
||||
bstride = b->dim[0].stride;
|
||||
count = a->dim[0].ubound + 1 - a->dim[0].lbound;
|
||||
res = 0;
|
||||
pa = a->data;
|
||||
pb = b->data;
|
||||
|
||||
while (count--)
|
||||
{
|
||||
res += *pa * *pb;
|
||||
pa += astride;
|
||||
pb += bstride;
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
#endif
|
@ -1,91 +0,0 @@
|
||||
/* Implementation of the DOT_PRODUCT intrinsic
|
||||
Copyright 2002 Free Software Foundation, Inc.
|
||||
Contributed by Paul Brook <paul@nowt.org>
|
||||
|
||||
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 2 of the License, or (at your option) any later version.
|
||||
|
||||
In addition to the permissions in the GNU General Public License, the
|
||||
Free Software Foundation gives you unlimited permission to link the
|
||||
compiled version of this file into combinations with other programs,
|
||||
and to distribute those combinations without any restriction coming
|
||||
from the use of this file. (The General Public License restrictions
|
||||
do apply in other respects; for example, they cover modification of
|
||||
the file, and distribution when not linked into a combine
|
||||
executable.)
|
||||
|
||||
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.
|
||||
|
||||
You should have received a copy of the GNU General Public
|
||||
License along with libgfortran; see the file COPYING. If not,
|
||||
write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA. */
|
||||
|
||||
#include "config.h"
|
||||
#include <stdlib.h>
|
||||
#include <assert.h>
|
||||
#include "libgfortran.h"
|
||||
|
||||
#if defined (HAVE_GFC_LOGICAL_16)
|
||||
|
||||
extern GFC_LOGICAL_16 dot_product_l16 (gfc_array_l4 * const restrict,
|
||||
gfc_array_l4 * const restrict);
|
||||
export_proto(dot_product_l16);
|
||||
|
||||
GFC_LOGICAL_16
|
||||
dot_product_l16 (gfc_array_l4 * const restrict a,
|
||||
gfc_array_l4 * const restrict b)
|
||||
{
|
||||
const GFC_LOGICAL_4 * restrict pa;
|
||||
const GFC_LOGICAL_4 * restrict pb;
|
||||
index_type count;
|
||||
index_type astride;
|
||||
index_type bstride;
|
||||
|
||||
assert (GFC_DESCRIPTOR_RANK (a) == 1
|
||||
&& GFC_DESCRIPTOR_RANK (b) == 1);
|
||||
|
||||
if (a->dim[0].stride == 0)
|
||||
a->dim[0].stride = 1;
|
||||
if (b->dim[0].stride == 0)
|
||||
b->dim[0].stride = 1;
|
||||
|
||||
astride = a->dim[0].stride;
|
||||
bstride = b->dim[0].stride;
|
||||
count = a->dim[0].ubound + 1 - a->dim[0].lbound;
|
||||
|
||||
pa = a->data;
|
||||
if (GFC_DESCRIPTOR_SIZE (a) != 4)
|
||||
{
|
||||
assert (GFC_DESCRIPTOR_SIZE (a) == 8);
|
||||
pa = GFOR_POINTER_L8_TO_L4 (pa);
|
||||
astride <<= 1;
|
||||
}
|
||||
pb = b->data;
|
||||
if (GFC_DESCRIPTOR_SIZE (b) != 4)
|
||||
{
|
||||
assert (GFC_DESCRIPTOR_SIZE (b) == 8);
|
||||
pb = GFOR_POINTER_L8_TO_L4 (pb);
|
||||
bstride <<= 1;
|
||||
}
|
||||
|
||||
while (count--)
|
||||
{
|
||||
if (*pa && *pb)
|
||||
return 1;
|
||||
|
||||
pa += astride;
|
||||
pb += bstride;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
@ -1,91 +0,0 @@
|
||||
/* Implementation of the DOT_PRODUCT intrinsic
|
||||
Copyright 2002 Free Software Foundation, Inc.
|
||||
Contributed by Paul Brook <paul@nowt.org>
|
||||
|
||||
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 2 of the License, or (at your option) any later version.
|
||||
|
||||
In addition to the permissions in the GNU General Public License, the
|
||||
Free Software Foundation gives you unlimited permission to link the
|
||||
compiled version of this file into combinations with other programs,
|
||||
and to distribute those combinations without any restriction coming
|
||||
from the use of this file. (The General Public License restrictions
|
||||
do apply in other respects; for example, they cover modification of
|
||||
the file, and distribution when not linked into a combine
|
||||
executable.)
|
||||
|
||||
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.
|
||||
|
||||
You should have received a copy of the GNU General Public
|
||||
License along with libgfortran; see the file COPYING. If not,
|
||||
write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA. */
|
||||
|
||||
#include "config.h"
|
||||
#include <stdlib.h>
|
||||
#include <assert.h>
|
||||
#include "libgfortran.h"
|
||||
|
||||
#if defined (HAVE_GFC_LOGICAL_4)
|
||||
|
||||
extern GFC_LOGICAL_4 dot_product_l4 (gfc_array_l4 * const restrict,
|
||||
gfc_array_l4 * const restrict);
|
||||
export_proto(dot_product_l4);
|
||||
|
||||
GFC_LOGICAL_4
|
||||
dot_product_l4 (gfc_array_l4 * const restrict a,
|
||||
gfc_array_l4 * const restrict b)
|
||||
{
|
||||
const GFC_LOGICAL_4 * restrict pa;
|
||||
const GFC_LOGICAL_4 * restrict pb;
|
||||
index_type count;
|
||||
index_type astride;
|
||||
index_type bstride;
|
||||
|
||||
assert (GFC_DESCRIPTOR_RANK (a) == 1
|
||||
&& GFC_DESCRIPTOR_RANK (b) == 1);
|
||||
|
||||
if (a->dim[0].stride == 0)
|
||||
a->dim[0].stride = 1;
|
||||
if (b->dim[0].stride == 0)
|
||||
b->dim[0].stride = 1;
|
||||
|
||||
astride = a->dim[0].stride;
|
||||
bstride = b->dim[0].stride;
|
||||
count = a->dim[0].ubound + 1 - a->dim[0].lbound;
|
||||
|
||||
pa = a->data;
|
||||
if (GFC_DESCRIPTOR_SIZE (a) != 4)
|
||||
{
|
||||
assert (GFC_DESCRIPTOR_SIZE (a) == 8);
|
||||
pa = GFOR_POINTER_L8_TO_L4 (pa);
|
||||
astride <<= 1;
|
||||
}
|
||||
pb = b->data;
|
||||
if (GFC_DESCRIPTOR_SIZE (b) != 4)
|
||||
{
|
||||
assert (GFC_DESCRIPTOR_SIZE (b) == 8);
|
||||
pb = GFOR_POINTER_L8_TO_L4 (pb);
|
||||
bstride <<= 1;
|
||||
}
|
||||
|
||||
while (count--)
|
||||
{
|
||||
if (*pa && *pb)
|
||||
return 1;
|
||||
|
||||
pa += astride;
|
||||
pb += bstride;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
@ -1,91 +0,0 @@
|
||||
/* Implementation of the DOT_PRODUCT intrinsic
|
||||
Copyright 2002 Free Software Foundation, Inc.
|
||||
Contributed by Paul Brook <paul@nowt.org>
|
||||
|
||||
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 2 of the License, or (at your option) any later version.
|
||||
|
||||
In addition to the permissions in the GNU General Public License, the
|
||||
Free Software Foundation gives you unlimited permission to link the
|
||||
compiled version of this file into combinations with other programs,
|
||||
and to distribute those combinations without any restriction coming
|
||||
from the use of this file. (The General Public License restrictions
|
||||
do apply in other respects; for example, they cover modification of
|
||||
the file, and distribution when not linked into a combine
|
||||
executable.)
|
||||
|
||||
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.
|
||||
|
||||
You should have received a copy of the GNU General Public
|
||||
License along with libgfortran; see the file COPYING. If not,
|
||||
write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA. */
|
||||
|
||||
#include "config.h"
|
||||
#include <stdlib.h>
|
||||
#include <assert.h>
|
||||
#include "libgfortran.h"
|
||||
|
||||
#if defined (HAVE_GFC_LOGICAL_8)
|
||||
|
||||
extern GFC_LOGICAL_8 dot_product_l8 (gfc_array_l4 * const restrict,
|
||||
gfc_array_l4 * const restrict);
|
||||
export_proto(dot_product_l8);
|
||||
|
||||
GFC_LOGICAL_8
|
||||
dot_product_l8 (gfc_array_l4 * const restrict a,
|
||||
gfc_array_l4 * const restrict b)
|
||||
{
|
||||
const GFC_LOGICAL_4 * restrict pa;
|
||||
const GFC_LOGICAL_4 * restrict pb;
|
||||
index_type count;
|
||||
index_type astride;
|
||||
index_type bstride;
|
||||
|
||||
assert (GFC_DESCRIPTOR_RANK (a) == 1
|
||||
&& GFC_DESCRIPTOR_RANK (b) == 1);
|
||||
|
||||
if (a->dim[0].stride == 0)
|
||||
a->dim[0].stride = 1;
|
||||
if (b->dim[0].stride == 0)
|
||||
b->dim[0].stride = 1;
|
||||
|
||||
astride = a->dim[0].stride;
|
||||
bstride = b->dim[0].stride;
|
||||
count = a->dim[0].ubound + 1 - a->dim[0].lbound;
|
||||
|
||||
pa = a->data;
|
||||
if (GFC_DESCRIPTOR_SIZE (a) != 4)
|
||||
{
|
||||
assert (GFC_DESCRIPTOR_SIZE (a) == 8);
|
||||
pa = GFOR_POINTER_L8_TO_L4 (pa);
|
||||
astride <<= 1;
|
||||
}
|
||||
pb = b->data;
|
||||
if (GFC_DESCRIPTOR_SIZE (b) != 4)
|
||||
{
|
||||
assert (GFC_DESCRIPTOR_SIZE (b) == 8);
|
||||
pb = GFOR_POINTER_L8_TO_L4 (pb);
|
||||
bstride <<= 1;
|
||||
}
|
||||
|
||||
while (count--)
|
||||
{
|
||||
if (*pa && *pb)
|
||||
return 1;
|
||||
|
||||
pa += astride;
|
||||
pb += bstride;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
@ -1,80 +0,0 @@
|
||||
/* Implementation of the DOT_PRODUCT intrinsic
|
||||
Copyright 2002 Free Software Foundation, Inc.
|
||||
Contributed by Paul Brook <paul@nowt.org>
|
||||
|
||||
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 2 of the License, or (at your option) any later version.
|
||||
|
||||
In addition to the permissions in the GNU General Public License, the
|
||||
Free Software Foundation gives you unlimited permission to link the
|
||||
compiled version of this file into combinations with other programs,
|
||||
and to distribute those combinations without any restriction coming
|
||||
from the use of this file. (The General Public License restrictions
|
||||
do apply in other respects; for example, they cover modification of
|
||||
the file, and distribution when not linked into a combine
|
||||
executable.)
|
||||
|
||||
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.
|
||||
|
||||
You should have received a copy of the GNU General Public
|
||||
License along with libgfortran; see the file COPYING. If not,
|
||||
write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA. */
|
||||
|
||||
#include "config.h"
|
||||
#include <stdlib.h>
|
||||
#include <assert.h>
|
||||
#include "libgfortran.h"
|
||||
|
||||
#if defined (HAVE_GFC_REAL_10)
|
||||
|
||||
typedef GFC_ARRAY_DESCRIPTOR(GFC_MAX_DIMENSIONS, char) char_array;
|
||||
|
||||
extern GFC_REAL_10 dot_product_r10 (gfc_array_r10 * const restrict a,
|
||||
gfc_array_r10 * const restrict b);
|
||||
export_proto(dot_product_r10);
|
||||
|
||||
/* Both parameters will already have been converted to the result type. */
|
||||
GFC_REAL_10
|
||||
dot_product_r10 (gfc_array_r10 * const restrict a, gfc_array_r10 * const restrict b)
|
||||
{
|
||||
const GFC_REAL_10 * restrict pa;
|
||||
const GFC_REAL_10 * restrict pb;
|
||||
GFC_REAL_10 res;
|
||||
index_type count;
|
||||
index_type astride;
|
||||
index_type bstride;
|
||||
|
||||
assert (GFC_DESCRIPTOR_RANK (a) == 1
|
||||
&& GFC_DESCRIPTOR_RANK (b) == 1);
|
||||
|
||||
if (a->dim[0].stride == 0)
|
||||
a->dim[0].stride = 1;
|
||||
if (b->dim[0].stride == 0)
|
||||
b->dim[0].stride = 1;
|
||||
|
||||
astride = a->dim[0].stride;
|
||||
bstride = b->dim[0].stride;
|
||||
count = a->dim[0].ubound + 1 - a->dim[0].lbound;
|
||||
res = 0;
|
||||
pa = a->data;
|
||||
pb = b->data;
|
||||
|
||||
while (count--)
|
||||
{
|
||||
res += *pa * *pb;
|
||||
pa += astride;
|
||||
pb += bstride;
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
#endif
|
@ -1,80 +0,0 @@
|
||||
/* Implementation of the DOT_PRODUCT intrinsic
|
||||
Copyright 2002 Free Software Foundation, Inc.
|
||||
Contributed by Paul Brook <paul@nowt.org>
|
||||
|
||||
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 2 of the License, or (at your option) any later version.
|
||||
|
||||
In addition to the permissions in the GNU General Public License, the
|
||||
Free Software Foundation gives you unlimited permission to link the
|
||||
compiled version of this file into combinations with other programs,
|
||||
and to distribute those combinations without any restriction coming
|
||||
from the use of this file. (The General Public License restrictions
|
||||
do apply in other respects; for example, they cover modification of
|
||||
the file, and distribution when not linked into a combine
|
||||
executable.)
|
||||
|
||||
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.
|
||||
|
||||
You should have received a copy of the GNU General Public
|
||||
License along with libgfortran; see the file COPYING. If not,
|
||||
write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA. */
|
||||
|
||||
#include "config.h"
|
||||
#include <stdlib.h>
|
||||
#include <assert.h>
|
||||
#include "libgfortran.h"
|
||||
|
||||
#if defined (HAVE_GFC_REAL_16)
|
||||
|
||||
typedef GFC_ARRAY_DESCRIPTOR(GFC_MAX_DIMENSIONS, char) char_array;
|
||||
|
||||
extern GFC_REAL_16 dot_product_r16 (gfc_array_r16 * const restrict a,
|
||||
gfc_array_r16 * const restrict b);
|
||||
export_proto(dot_product_r16);
|
||||
|
||||
/* Both parameters will already have been converted to the result type. */
|
||||
GFC_REAL_16
|
||||
dot_product_r16 (gfc_array_r16 * const restrict a, gfc_array_r16 * const restrict b)
|
||||
{
|
||||
const GFC_REAL_16 * restrict pa;
|
||||
const GFC_REAL_16 * restrict pb;
|
||||
GFC_REAL_16 res;
|
||||
index_type count;
|
||||
index_type astride;
|
||||
index_type bstride;
|
||||
|
||||
assert (GFC_DESCRIPTOR_RANK (a) == 1
|
||||
&& GFC_DESCRIPTOR_RANK (b) == 1);
|
||||
|
||||
if (a->dim[0].stride == 0)
|
||||
a->dim[0].stride = 1;
|
||||
if (b->dim[0].stride == 0)
|
||||
b->dim[0].stride = 1;
|
||||
|
||||
astride = a->dim[0].stride;
|
||||
bstride = b->dim[0].stride;
|
||||
count = a->dim[0].ubound + 1 - a->dim[0].lbound;
|
||||
res = 0;
|
||||
pa = a->data;
|
||||
pb = b->data;
|
||||
|
||||
while (count--)
|
||||
{
|
||||
res += *pa * *pb;
|
||||
pa += astride;
|
||||
pb += bstride;
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
#endif
|
@ -1,80 +0,0 @@
|
||||
/* Implementation of the DOT_PRODUCT intrinsic
|
||||
Copyright 2002 Free Software Foundation, Inc.
|
||||
Contributed by Paul Brook <paul@nowt.org>
|
||||
|
||||
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 2 of the License, or (at your option) any later version.
|
||||
|
||||
In addition to the permissions in the GNU General Public License, the
|
||||
Free Software Foundation gives you unlimited permission to link the
|
||||
compiled version of this file into combinations with other programs,
|
||||
and to distribute those combinations without any restriction coming
|
||||
from the use of this file. (The General Public License restrictions
|
||||
do apply in other respects; for example, they cover modification of
|
||||
the file, and distribution when not linked into a combine
|
||||
executable.)
|
||||
|
||||
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.
|
||||
|
||||
You should have received a copy of the GNU General Public
|
||||
License along with libgfortran; see the file COPYING. If not,
|
||||
write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA. */
|
||||
|
||||
#include "config.h"
|
||||
#include <stdlib.h>
|
||||
#include <assert.h>
|
||||
#include "libgfortran.h"
|
||||
|
||||
#if defined (HAVE_GFC_REAL_4)
|
||||
|
||||
typedef GFC_ARRAY_DESCRIPTOR(GFC_MAX_DIMENSIONS, char) char_array;
|
||||
|
||||
extern GFC_REAL_4 dot_product_r4 (gfc_array_r4 * const restrict a,
|
||||
gfc_array_r4 * const restrict b);
|
||||
export_proto(dot_product_r4);
|
||||
|
||||
/* Both parameters will already have been converted to the result type. */
|
||||
GFC_REAL_4
|
||||
dot_product_r4 (gfc_array_r4 * const restrict a, gfc_array_r4 * const restrict b)
|
||||
{
|
||||
const GFC_REAL_4 * restrict pa;
|
||||
const GFC_REAL_4 * restrict pb;
|
||||
GFC_REAL_4 res;
|
||||
index_type count;
|
||||
index_type astride;
|
||||
index_type bstride;
|
||||
|
||||
assert (GFC_DESCRIPTOR_RANK (a) == 1
|
||||
&& GFC_DESCRIPTOR_RANK (b) == 1);
|
||||
|
||||
if (a->dim[0].stride == 0)
|
||||
a->dim[0].stride = 1;
|
||||
if (b->dim[0].stride == 0)
|
||||
b->dim[0].stride = 1;
|
||||
|
||||
astride = a->dim[0].stride;
|
||||
bstride = b->dim[0].stride;
|
||||
count = a->dim[0].ubound + 1 - a->dim[0].lbound;
|
||||
res = 0;
|
||||
pa = a->data;
|
||||
pb = b->data;
|
||||
|
||||
while (count--)
|
||||
{
|
||||
res += *pa * *pb;
|
||||
pa += astride;
|
||||
pb += bstride;
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
#endif
|
@ -1,80 +0,0 @@
|
||||
/* Implementation of the DOT_PRODUCT intrinsic
|
||||
Copyright 2002 Free Software Foundation, Inc.
|
||||
Contributed by Paul Brook <paul@nowt.org>
|
||||
|
||||
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 2 of the License, or (at your option) any later version.
|
||||
|
||||
In addition to the permissions in the GNU General Public License, the
|
||||
Free Software Foundation gives you unlimited permission to link the
|
||||
compiled version of this file into combinations with other programs,
|
||||
and to distribute those combinations without any restriction coming
|
||||
from the use of this file. (The General Public License restrictions
|
||||
do apply in other respects; for example, they cover modification of
|
||||
the file, and distribution when not linked into a combine
|
||||
executable.)
|
||||
|
||||
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.
|
||||
|
||||
You should have received a copy of the GNU General Public
|
||||
License along with libgfortran; see the file COPYING. If not,
|
||||
write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA. */
|
||||
|
||||
#include "config.h"
|
||||
#include <stdlib.h>
|
||||
#include <assert.h>
|
||||
#include "libgfortran.h"
|
||||
|
||||
#if defined (HAVE_GFC_REAL_8)
|
||||
|
||||
typedef GFC_ARRAY_DESCRIPTOR(GFC_MAX_DIMENSIONS, char) char_array;
|
||||
|
||||
extern GFC_REAL_8 dot_product_r8 (gfc_array_r8 * const restrict a,
|
||||
gfc_array_r8 * const restrict b);
|
||||
export_proto(dot_product_r8);
|
||||
|
||||
/* Both parameters will already have been converted to the result type. */
|
||||
GFC_REAL_8
|
||||
dot_product_r8 (gfc_array_r8 * const restrict a, gfc_array_r8 * const restrict b)
|
||||
{
|
||||
const GFC_REAL_8 * restrict pa;
|
||||
const GFC_REAL_8 * restrict pb;
|
||||
GFC_REAL_8 res;
|
||||
index_type count;
|
||||
index_type astride;
|
||||
index_type bstride;
|
||||
|
||||
assert (GFC_DESCRIPTOR_RANK (a) == 1
|
||||
&& GFC_DESCRIPTOR_RANK (b) == 1);
|
||||
|
||||
if (a->dim[0].stride == 0)
|
||||
a->dim[0].stride = 1;
|
||||
if (b->dim[0].stride == 0)
|
||||
b->dim[0].stride = 1;
|
||||
|
||||
astride = a->dim[0].stride;
|
||||
bstride = b->dim[0].stride;
|
||||
count = a->dim[0].ubound + 1 - a->dim[0].lbound;
|
||||
res = 0;
|
||||
pa = a->data;
|
||||
pb = b->data;
|
||||
|
||||
while (count--)
|
||||
{
|
||||
res += *pa * *pb;
|
||||
pa += astride;
|
||||
pb += bstride;
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
#endif
|
@ -1,82 +0,0 @@
|
||||
`/* Implementation of the DOT_PRODUCT intrinsic
|
||||
Copyright 2002 Free Software Foundation, Inc.
|
||||
Contributed by Paul Brook <paul@nowt.org>
|
||||
|
||||
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 2 of the License, or (at your option) any later version.
|
||||
|
||||
In addition to the permissions in the GNU General Public License, the
|
||||
Free Software Foundation gives you unlimited permission to link the
|
||||
compiled version of this file into combinations with other programs,
|
||||
and to distribute those combinations without any restriction coming
|
||||
from the use of this file. (The General Public License restrictions
|
||||
do apply in other respects; for example, they cover modification of
|
||||
the file, and distribution when not linked into a combine
|
||||
executable.)
|
||||
|
||||
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.
|
||||
|
||||
You should have received a copy of the GNU General Public
|
||||
License along with libgfortran; see the file COPYING. If not,
|
||||
write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA. */
|
||||
|
||||
#include "config.h"
|
||||
#include <stdlib.h>
|
||||
#include <assert.h>
|
||||
#include "libgfortran.h"'
|
||||
include(iparm.m4)dnl
|
||||
|
||||
`#if defined (HAVE_'rtype_name`)'
|
||||
|
||||
typedef GFC_ARRAY_DESCRIPTOR(GFC_MAX_DIMENSIONS, char) char_array;
|
||||
|
||||
extern rtype_name dot_product_`'rtype_code (rtype * const restrict a,
|
||||
rtype * const restrict b);
|
||||
export_proto(dot_product_`'rtype_code);
|
||||
|
||||
/* Both parameters will already have been converted to the result type. */
|
||||
rtype_name
|
||||
dot_product_`'rtype_code (rtype * const restrict a, rtype * const restrict b)
|
||||
{
|
||||
const rtype_name * restrict pa;
|
||||
const rtype_name * restrict pb;
|
||||
rtype_name res;
|
||||
index_type count;
|
||||
index_type astride;
|
||||
index_type bstride;
|
||||
|
||||
assert (GFC_DESCRIPTOR_RANK (a) == 1
|
||||
&& GFC_DESCRIPTOR_RANK (b) == 1);
|
||||
|
||||
if (a->dim[0].stride == 0)
|
||||
a->dim[0].stride = 1;
|
||||
if (b->dim[0].stride == 0)
|
||||
b->dim[0].stride = 1;
|
||||
|
||||
astride = a->dim[0].stride;
|
||||
bstride = b->dim[0].stride;
|
||||
count = a->dim[0].ubound + 1 - a->dim[0].lbound;
|
||||
res = 0;
|
||||
pa = a->data;
|
||||
pb = b->data;
|
||||
sinclude(`dotprod_asm_'rtype_code`.m4')dnl
|
||||
|
||||
while (count--)
|
||||
{
|
||||
res += *pa * *pb;
|
||||
pa += astride;
|
||||
pb += bstride;
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
#endif
|
@ -1,84 +0,0 @@
|
||||
`/* Implementation of the DOT_PRODUCT intrinsic
|
||||
Copyright 2002 Free Software Foundation, Inc.
|
||||
Contributed by Paul Brook <paul@nowt.org>
|
||||
and Feng Wang <fengwang@nudt.edu.cn>
|
||||
|
||||
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 2 of the License, or (at your option) any later version.
|
||||
|
||||
In addition to the permissions in the GNU General Public License, the
|
||||
Free Software Foundation gives you unlimited permission to link the
|
||||
compiled version of this file into combinations with other programs,
|
||||
and to distribute those combinations without any restriction coming
|
||||
from the use of this file. (The General Public License restrictions
|
||||
do apply in other respects; for example, they cover modification of
|
||||
the file, and distribution when not linked into a combine
|
||||
executable.)
|
||||
|
||||
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.
|
||||
|
||||
You should have received a copy of the GNU General Public
|
||||
License along with libgfortran; see the file COPYING. If not,
|
||||
write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA. */
|
||||
|
||||
#include "config.h"
|
||||
#include <stdlib.h>
|
||||
#include <assert.h>
|
||||
#include "libgfortran.h"'
|
||||
include(iparm.m4)dnl
|
||||
include(mtype.m4)dnl
|
||||
|
||||
`#if defined (HAVE_'rtype_name`)'
|
||||
|
||||
typedef GFC_ARRAY_DESCRIPTOR(GFC_MAX_DIMENSIONS, char) char_array;
|
||||
|
||||
extern rtype_name dot_product_`'rtype_code (rtype * const restrict a,
|
||||
rtype * const restrict b);
|
||||
export_proto(dot_product_`'rtype_code);
|
||||
|
||||
/* Both parameters will already have been converted to the result type. */
|
||||
rtype_name
|
||||
dot_product_`'rtype_code (rtype * const restrict a, rtype * const restrict b)
|
||||
{
|
||||
const rtype_name * restrict pa;
|
||||
const rtype_name * restrict pb;
|
||||
rtype_name res;
|
||||
index_type count;
|
||||
index_type astride;
|
||||
index_type bstride;
|
||||
|
||||
assert (GFC_DESCRIPTOR_RANK (a) == 1
|
||||
&& GFC_DESCRIPTOR_RANK (b) == 1);
|
||||
|
||||
if (a->dim[0].stride == 0)
|
||||
a->dim[0].stride = 1;
|
||||
if (b->dim[0].stride == 0)
|
||||
b->dim[0].stride = 1;
|
||||
|
||||
astride = a->dim[0].stride;
|
||||
bstride = b->dim[0].stride;
|
||||
count = a->dim[0].ubound + 1 - a->dim[0].lbound;
|
||||
res = 0;
|
||||
pa = a->data;
|
||||
pb = b->data;
|
||||
sinclude(`dotprod_asm_'rtype_code`.m4')dnl
|
||||
|
||||
while (count--)
|
||||
{
|
||||
res += __builtin_conj`'q (*pa) * *pb;
|
||||
pa += astride;
|
||||
pb += bstride;
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
#endif
|
@ -1,92 +0,0 @@
|
||||
`/* Implementation of the DOT_PRODUCT intrinsic
|
||||
Copyright 2002 Free Software Foundation, Inc.
|
||||
Contributed by Paul Brook <paul@nowt.org>
|
||||
|
||||
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 2 of the License, or (at your option) any later version.
|
||||
|
||||
In addition to the permissions in the GNU General Public License, the
|
||||
Free Software Foundation gives you unlimited permission to link the
|
||||
compiled version of this file into combinations with other programs,
|
||||
and to distribute those combinations without any restriction coming
|
||||
from the use of this file. (The General Public License restrictions
|
||||
do apply in other respects; for example, they cover modification of
|
||||
the file, and distribution when not linked into a combine
|
||||
executable.)
|
||||
|
||||
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.
|
||||
|
||||
You should have received a copy of the GNU General Public
|
||||
License along with libgfortran; see the file COPYING. If not,
|
||||
write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA. */
|
||||
|
||||
#include "config.h"
|
||||
#include <stdlib.h>
|
||||
#include <assert.h>
|
||||
#include "libgfortran.h"'
|
||||
include(iparm.m4)dnl
|
||||
|
||||
`#if defined (HAVE_'rtype_name`)'
|
||||
|
||||
extern rtype_name dot_product_`'rtype_code (gfc_array_l4 * const restrict,
|
||||
gfc_array_l4 * const restrict);
|
||||
export_proto(dot_product_`'rtype_code);
|
||||
|
||||
rtype_name
|
||||
dot_product_`'rtype_code (gfc_array_l4 * const restrict a,
|
||||
gfc_array_l4 * const restrict b)
|
||||
{
|
||||
const GFC_LOGICAL_4 * restrict pa;
|
||||
const GFC_LOGICAL_4 * restrict pb;
|
||||
index_type count;
|
||||
index_type astride;
|
||||
index_type bstride;
|
||||
|
||||
assert (GFC_DESCRIPTOR_RANK (a) == 1
|
||||
&& GFC_DESCRIPTOR_RANK (b) == 1);
|
||||
|
||||
if (a->dim[0].stride == 0)
|
||||
a->dim[0].stride = 1;
|
||||
if (b->dim[0].stride == 0)
|
||||
b->dim[0].stride = 1;
|
||||
|
||||
astride = a->dim[0].stride;
|
||||
bstride = b->dim[0].stride;
|
||||
count = a->dim[0].ubound + 1 - a->dim[0].lbound;
|
||||
|
||||
pa = a->data;
|
||||
if (GFC_DESCRIPTOR_SIZE (a) != 4)
|
||||
{
|
||||
assert (GFC_DESCRIPTOR_SIZE (a) == 8);
|
||||
pa = GFOR_POINTER_L8_TO_L4 (pa);
|
||||
astride <<= 1;
|
||||
}
|
||||
pb = b->data;
|
||||
if (GFC_DESCRIPTOR_SIZE (b) != 4)
|
||||
{
|
||||
assert (GFC_DESCRIPTOR_SIZE (b) == 8);
|
||||
pb = GFOR_POINTER_L8_TO_L4 (pb);
|
||||
bstride <<= 1;
|
||||
}
|
||||
|
||||
while (count--)
|
||||
{
|
||||
if (*pa && *pb)
|
||||
return 1;
|
||||
|
||||
pa += astride;
|
||||
pb += bstride;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue
Block a user