diff options
author | Thomas Koenig <Thomas.Koenig@online.de> | 2005-06-07 20:46:17 +0000 |
---|---|---|
committer | Thomas Koenig <tkoenig@gcc.gnu.org> | 2005-06-07 20:46:17 +0000 |
commit | ae740ccecdd59110782f3c0623486df14a57d7b7 (patch) | |
tree | fb2ff4924c094e8ef8e3cd32eee95a36428e940f /libgfortran/m4/matmul.m4 | |
parent | 108267cd5609ef326744e1593f878a36e3c09675 (diff) | |
download | gcc-ae740ccecdd59110782f3c0623486df14a57d7b7.zip gcc-ae740ccecdd59110782f3c0623486df14a57d7b7.tar.gz gcc-ae740ccecdd59110782f3c0623486df14a57d7b7.tar.bz2 |
re PR libfortran/21926 ([4.0 only] matmul does not deal with non-packed result)
2005-06-07 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/21926
* m4/matmul.m4: Correct zeroing of result for non-packed
arrays with lowest stride is one.
* generated/matmul_c4.c: Regenerated.
* generated/matmul_c8.c: Regenerated.
* generated/matmul_i4.c: Regenerated.
* generated/matmul_i8.c: Regenerated.
* generated/matmul_r4.c: Regenerated.
* generated/matmul_r8.c: Regenerated.
2005-06-07 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/21926
* gfortran.fortran-torture/execute/intrinsic_matmul.f90:
Test case where the return array has lowest stride one,
but isn't packed.
From-SVN: r100721
Diffstat (limited to 'libgfortran/m4/matmul.m4')
-rw-r--r-- | libgfortran/m4/matmul.m4 | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/libgfortran/m4/matmul.m4 b/libgfortran/m4/matmul.m4 index dd75cf7..1801583 100644 --- a/libgfortran/m4/matmul.m4 +++ b/libgfortran/m4/matmul.m4 @@ -180,7 +180,14 @@ sinclude(`matmul_asm_'rtype_code`.m4')dnl rtype_name *abase_n; rtype_name bbase_yn; - memset (dest, 0, (sizeof (rtype_name) * size0((array_t *) retarray))); + if (rystride == ycount) + memset (dest, 0, (sizeof (rtype_name) * size0((array_t *) retarray))); + else + { + for (y = 0; y < ycount; y++) + for (x = 0; x < xcount; x++) + dest[x + y*rystride] = (rtype_name)0; + } for (y = 0; y < ycount; y++) { |