diff options
author | Thomas Koenig <tkoenig@gcc.gnu.org> | 2017-06-06 19:18:37 +0000 |
---|---|---|
committer | Thomas Koenig <tkoenig@gcc.gnu.org> | 2017-06-06 19:18:37 +0000 |
commit | bbf974160054c4b8aa3f0f49084bb46521195a51 (patch) | |
tree | e57ebf929cb76799e8529696691471054a402b8e /gcc | |
parent | dc949728324201174ce6000933435a8d0392799e (diff) | |
download | gcc-bbf974160054c4b8aa3f0f49084bb46521195a51.zip gcc-bbf974160054c4b8aa3f0f49084bb46521195a51.tar.gz gcc-bbf974160054c4b8aa3f0f49084bb46521195a51.tar.bz2 |
re PR fortran/80975 (matmul for zero-length arrays)
2017-06-06 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/80975
* m4/matmul_internal.m4: Move zeroing before early return.
* generated/matmul_c10.c: Regenerated.
* generated/matmul_c16.c: Regenerated.
* generated/matmul_c4.c: Regenerated.
* generated/matmul_c8.c: Regenerated.
* 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_r4.c: Regenerated.
* generated/matmul_r8.c: Regenerated.
* generated/matmulavx128_c10.c: Regenerated.
* generated/matmulavx128_c16.c: Regenerated.
* generated/matmulavx128_c4.c: Regenerated.
* generated/matmulavx128_c8.c: Regenerated.
* generated/matmulavx128_i1.c: Regenerated.
* generated/matmulavx128_i16.c: Regenerated.
* generated/matmulavx128_i2.c: Regenerated.
* generated/matmulavx128_i4.c: Regenerated.
* generated/matmulavx128_i8.c: Regenerated.
* generated/matmulavx128_r10.c: Regenerated.
* generated/matmulavx128_r16.c: Regenerated.
* generated/matmulavx128_r4.c: Regenerated.
* generated/matmulavx128_r8.c: Regenerated.
2017-06-06 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/80975
* gfortran.dg/matmul_16.f90: New test.
* gfortran.dg/inline_matmul_18.f90: New test.
From-SVN: r248932
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/inline_matmul_18.f90 | 16 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/matmul_16.f90 | 13 |
3 files changed, 35 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index bdd579a..74c974c 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2017-06-06 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/80975 + * gfortran.dg/matmul_16.f90: New test. + * gfortran.dg/inline_matmul_18.f90: New test. + 2017-06-06 Marek Polacek <polacek@redhat.com> PR c/79983 diff --git a/gcc/testsuite/gfortran.dg/inline_matmul_18.f90 b/gcc/testsuite/gfortran.dg/inline_matmul_18.f90 new file mode 100644 index 0000000..c846733 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/inline_matmul_18.f90 @@ -0,0 +1,16 @@ +! { dg-do run } +! { dg-options "-O -finline-matmul-limit=100 -fdump-tree-optimized" } +! PR 80975 - this did not zero the result array in the library version; +! make sure this also doesn't happen in the inline version. +program bogus_matmul + implicit none + real :: M(3,0), v(0), w(3) + + w = 7 + w = matmul(M,v) + if( any(w .ne. 0) ) then + call abort + end if +end program bogus_matmul +! { dg-final { scan-tree-dump-times "matmul_r4" 0 "optimized" } } + diff --git a/gcc/testsuite/gfortran.dg/matmul_16.f90 b/gcc/testsuite/gfortran.dg/matmul_16.f90 new file mode 100644 index 0000000..9def133 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/matmul_16.f90 @@ -0,0 +1,13 @@ +! { dg-do run } +! { dg-options "-finline-matmul-limit=0" } +! PR 80975 - this did not zero the result array +program bogus_matmul + implicit none + real :: M(3,0), v(0), w(3) + + w = 7 + w = matmul(M,v) + if( any(w .ne. 0) ) then + call abort + end if +end program bogus_matmul |