]> git.ipfire.org Git - thirdparty/gcc.git/commit
Implement MATMUL and DOT_PRODUCT for unsigned.
authorThomas Koenig <tkoenig@gcc.gnu.org>
Tue, 24 Sep 2024 19:51:42 +0000 (21:51 +0200)
committerThomas Koenig <tkoenig@gcc.gnu.org>
Tue, 24 Sep 2024 19:51:42 +0000 (21:51 +0200)
commit5d98fe096b5d17021875806ffc32ba41ea0e87b0
tree03c4d94456c7c17ba3b5164ac17bf6a71cca4485
parent650e91566561870f3d1c8d5b92e6613296ee1a8d
Implement MATMUL and DOT_PRODUCT for unsigned.

gcc/fortran/ChangeLog:

* arith.cc (gfc_arith_uminus): Fix warning.
(gfc_arith_minus): Correctly truncate unsigneds.
* check.cc (gfc_check_dot_product): Handle unsigned arguments.
(gfc_check_matmul): Likewise.
* expr.cc (gfc_get_unsigned_expr): New function.
* gfortran.h (gfc_get_unsigned_expr): Add prototype.
* iresolve.cc (gfc_resolve_matmul): If using UNSIGNED, use the
signed integer version.
* gfortran.texi: Document MATMUL and DOT_PRODUCT for unsigned.
* simplify.cc (compute_dot_product): Handle unsigneds.

libgfortran/ChangeLog:

* m4/iparm.m4: Add UNSIGED if type is m.
* m4/matmul.m4: If type is GFC_INTEGER, use GFC_UINTEGER instead.
Whitespace fixes.
* m4/matmul_internal.m4: Whitespace fixes.

* generated/matmul_c10.c: Regenerated.
* generated/matmul_c16.c: Regenerated.
* generated/matmul_c17.c: Regenerated.
* generated/matmul_c4.c: Regenerated.
* generated/matmul_c8.c: Regeneraated.
* generated/matmul_i1.c: Regenerated.
* generated/matmul_i16.c: Regenerated.
* generated/matmul_i2.c: Regenerated.
* generated/matmul_i4.c: Regenerated.
* generated/matmul_i8.c: Regenerated.
* generated/matmul_r10.c: Regenerated.
* generated/matmul_r16.c: Regenerated.
* generated/matmul_r17.c: Regenerated.
* generated/matmul_r4.c: Regenerated.
* generated/matmul_r8.c: Regenerated.
* libgfortran.h: Add array types for unsiged.

gcc/testsuite/ChangeLog:

* gfortran.dg/unsigned_25.f90: New test.
* gfortran.dg/unsigned_26.f90: New test.
28 files changed:
gcc/fortran/arith.cc
gcc/fortran/check.cc
gcc/fortran/expr.cc
gcc/fortran/gfortran.h
gcc/fortran/gfortran.texi
gcc/fortran/iresolve.cc
gcc/fortran/simplify.cc
gcc/testsuite/gfortran.dg/unsigned_25.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/unsigned_26.f90 [new file with mode: 0644]
libgfortran/generated/matmul_c10.c
libgfortran/generated/matmul_c16.c
libgfortran/generated/matmul_c17.c
libgfortran/generated/matmul_c4.c
libgfortran/generated/matmul_c8.c
libgfortran/generated/matmul_i1.c
libgfortran/generated/matmul_i16.c
libgfortran/generated/matmul_i2.c
libgfortran/generated/matmul_i4.c
libgfortran/generated/matmul_i8.c
libgfortran/generated/matmul_r10.c
libgfortran/generated/matmul_r16.c
libgfortran/generated/matmul_r17.c
libgfortran/generated/matmul_r4.c
libgfortran/generated/matmul_r8.c
libgfortran/libgfortran.h
libgfortran/m4/iparm.m4
libgfortran/m4/matmul.m4
libgfortran/m4/matmul_internal.m4