gcc/libgfortran/m4
Thomas Koenig c2a0ee5886 Add modular exponentiation for UNSIGNED.
gcc/fortran/ChangeLog:

	* arith.cc (arith_power): Handle modular arithmetic for
	BT_UNSIGNED.
	(eval_intrinsic):  Error for unsigned exponentiation with
	-pedantic.
	* expr.cc (gfc_type_convert_binary): Use type of first
	argument for unsigned exponentiation.
	* gfortran.texi: Mention arithmetic exponentiation.
	* resolve.cc (resolve_operator): Allow unsigned exponentiation.
	* trans-decl.cc (gfc_build_intrinsic_function_decls): Build
	declarations for unsigned exponentiation.
	* trans-expr.cc (gfc_conv_cst_uint_power): New function.
	(gfc_conv_power_op): Call it.  Handle unsigned exponentiation.
	* trans.h (gfor_fndecl_unsigned_pow_list):  Add declaration.

libgfortran/ChangeLog:

	* Makefile.am: Add files for unsigned exponentiation.
	* Makefile.in: Regenerate.
	* gfortran.map: Add functions for unsigned exponentiation.
	* generated/pow_m16_m1.c: New file.
	* generated/pow_m16_m16.c: New file.
	* generated/pow_m16_m2.c: New file.
	* generated/pow_m16_m4.c: New file.
	* generated/pow_m16_m8.c: New file.
	* generated/pow_m1_m1.c: New file.
	* generated/pow_m1_m16.c: New file.
	* generated/pow_m1_m2.c: New file.
	* generated/pow_m1_m4.c: New file.
	* generated/pow_m1_m8.c: New file.
	* generated/pow_m2_m1.c: New file.
	* generated/pow_m2_m16.c: New file.
	* generated/pow_m2_m2.c: New file.
	* generated/pow_m2_m4.c: New file.
	* generated/pow_m2_m8.c: New file.
	* generated/pow_m4_m1.c: New file.
	* generated/pow_m4_m16.c: New file.
	* generated/pow_m4_m2.c: New file.
	* generated/pow_m4_m4.c: New file.
	* generated/pow_m4_m8.c: New file.
	* generated/pow_m8_m1.c: New file.
	* generated/pow_m8_m16.c: New file.
	* generated/pow_m8_m2.c: New file.
	* generated/pow_m8_m4.c: New file.
	* generated/pow_m8_m8.c: New file.
	* m4/powu.m4: New file.

gcc/testsuite/ChangeLog:

	* gfortran.dg/unsigned_15.f90: Adjust error messages.
	* gfortran.dg/unsigned_43.f90: New test.
	* gfortran.dg/unsigned_44.f90: New test.
2025-02-04 08:56:19 +01:00
..
all.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
any.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
bessel.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
count.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
cshift0.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
cshift1.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
cshift1a.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
eoshift1.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
eoshift3.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
findloc0.m4
findloc0s.m4
findloc1.m4
findloc1s.m4
findloc2s.m4
head.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
iall.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
iany.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
ifindloc0.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
ifindloc1.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
ifindloc2.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
iforeach-s.m4
iforeach-s2.m4
iforeach.m4
ifunc.m4
ifunction-s.m4 libgfortran: Remove empty array descriptor first dimension overwrite [PR112371] 2023-11-08 12:32:21 +01:00
ifunction-s2.m4 libgfortran: Remove empty array descriptor first dimension overwrite [PR112371] 2023-11-08 12:32:21 +01:00
ifunction.m4 Implement SUM and PRODUCT for unsigned. 2024-09-24 21:59:10 +02:00
ifunction_logical.m4 libgfortran: Remove empty array descriptor first dimension overwrite [PR112371] 2023-11-08 12:32:21 +01:00
in_pack.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
in_unpack.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
iparity.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
iparm.m4 Implement MATMUL and DOT_PRODUCT for unsigned. 2024-09-24 21:51:42 +02:00
matmul.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
matmul_internal.m4 Implement MATMUL and DOT_PRODUCT for unsigned. 2024-09-24 21:51:42 +02:00
matmulavx128.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
matmull.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
maxloc0.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
maxloc0s.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
maxloc1.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
maxloc1s.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
maxloc2s.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
maxval.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
maxval0s.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
maxval1s.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
minloc0.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
minloc0s.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
minloc1.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
minloc1s.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
minloc2s.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
minval.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
minval0s.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
minval1s.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
misc_specifics.m4
mtype.m4
norm2.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
pack.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
parity.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
pow.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
powu.m4 Add modular exponentiation for UNSIGNED. 2025-02-04 08:56:19 +01:00
product.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
reshape.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
shape.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
specific.m4
specific2.m4
spread.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
sum.m4 Update copyright years. 2025-01-02 11:59:57 +01:00
types.m4
unpack.m4 Update copyright years. 2025-01-02 11:59:57 +01:00