aboutsummaryrefslogtreecommitdiff
path: root/libgfortran
diff options
context:
space:
mode:
authorThomas Koenig <tkoenig@gcc.gnu.org>2007-12-25 10:12:41 +0000
committerThomas Koenig <tkoenig@gcc.gnu.org>2007-12-25 10:12:41 +0000
commit54a838424ea995d251eb361f86794e5215fbe574 (patch)
treec1fe36d9fd32f8ae0900595a250297afb4db485e /libgfortran
parent9c1ebeefcbbde83cc791557c9047eb42e9aeed2a (diff)
downloadgcc-54a838424ea995d251eb361f86794e5215fbe574.zip
gcc-54a838424ea995d251eb361f86794e5215fbe574.tar.gz
gcc-54a838424ea995d251eb361f86794e5215fbe574.tar.bz2
re PR fortran/34566 (Matmul of logical values)
2007-12-25 Thomas Koenig <tkoenig@gcc.gnu.org> PR libfortran/34566 * m4/matmull.m4: Multiply xstride and ystride by correct kind. * generated/matmul_l4.c: Regenerated. * generated/matmul_l8.c: Regenerated. * generated/matmul_l16.c: Regenerated. 2007-12-25 Thomas Koenig <tkoenig@gcc.gnu.org> PR libfortran/34566 * gfortran.dg/matmul_6.f90: New test. From-SVN: r131167
Diffstat (limited to 'libgfortran')
-rw-r--r--libgfortran/ChangeLog8
-rw-r--r--libgfortran/generated/matmul_l16.c4
-rw-r--r--libgfortran/generated/matmul_l4.c4
-rw-r--r--libgfortran/generated/matmul_l8.c4
-rw-r--r--libgfortran/m4/matmull.m44
5 files changed, 16 insertions, 8 deletions
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index 9d84e1b..8f32ca0 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,3 +1,11 @@
+2007-12-25 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR libfortran/34566
+ * m4/matmull.m4: Multiply xstride and ystride by correct kind.
+ * generated/matmul_l4.c: Regenerated.
+ * generated/matmul_l8.c: Regenerated.
+ * generated/matmul_l16.c: Regenerated.
+
2007-12-19 Tobias Burnus <burnus@net-b.de>
PR fortran/34530
diff --git a/libgfortran/generated/matmul_l16.c b/libgfortran/generated/matmul_l16.c
index c3cabdb..b2b86ec 100644
--- a/libgfortran/generated/matmul_l16.c
+++ b/libgfortran/generated/matmul_l16.c
@@ -152,7 +152,7 @@ matmul_l16 (gfc_array_l16 * const restrict retarray,
{
astride = a->dim[1].stride * a_kind;
count = a->dim[1].ubound + 1 - a->dim[1].lbound;
- xstride = a->dim[0].stride;
+ xstride = a->dim[0].stride * a_kind;
xcount = a->dim[0].ubound + 1 - a->dim[0].lbound;
}
if (GFC_DESCRIPTOR_RANK (b) == 1)
@@ -167,7 +167,7 @@ matmul_l16 (gfc_array_l16 * const restrict retarray,
{
bstride = b->dim[0].stride * b_kind;
assert(count == b->dim[0].ubound + 1 - b->dim[0].lbound);
- ystride = b->dim[1].stride;
+ ystride = b->dim[1].stride * b_kind;
ycount = b->dim[1].ubound + 1 - b->dim[1].lbound;
}
diff --git a/libgfortran/generated/matmul_l4.c b/libgfortran/generated/matmul_l4.c
index 531603b..9a6cb1d 100644
--- a/libgfortran/generated/matmul_l4.c
+++ b/libgfortran/generated/matmul_l4.c
@@ -152,7 +152,7 @@ matmul_l4 (gfc_array_l4 * const restrict retarray,
{
astride = a->dim[1].stride * a_kind;
count = a->dim[1].ubound + 1 - a->dim[1].lbound;
- xstride = a->dim[0].stride;
+ xstride = a->dim[0].stride * a_kind;
xcount = a->dim[0].ubound + 1 - a->dim[0].lbound;
}
if (GFC_DESCRIPTOR_RANK (b) == 1)
@@ -167,7 +167,7 @@ matmul_l4 (gfc_array_l4 * const restrict retarray,
{
bstride = b->dim[0].stride * b_kind;
assert(count == b->dim[0].ubound + 1 - b->dim[0].lbound);
- ystride = b->dim[1].stride;
+ ystride = b->dim[1].stride * b_kind;
ycount = b->dim[1].ubound + 1 - b->dim[1].lbound;
}
diff --git a/libgfortran/generated/matmul_l8.c b/libgfortran/generated/matmul_l8.c
index 0b9b0be..7d4e35e 100644
--- a/libgfortran/generated/matmul_l8.c
+++ b/libgfortran/generated/matmul_l8.c
@@ -152,7 +152,7 @@ matmul_l8 (gfc_array_l8 * const restrict retarray,
{
astride = a->dim[1].stride * a_kind;
count = a->dim[1].ubound + 1 - a->dim[1].lbound;
- xstride = a->dim[0].stride;
+ xstride = a->dim[0].stride * a_kind;
xcount = a->dim[0].ubound + 1 - a->dim[0].lbound;
}
if (GFC_DESCRIPTOR_RANK (b) == 1)
@@ -167,7 +167,7 @@ matmul_l8 (gfc_array_l8 * const restrict retarray,
{
bstride = b->dim[0].stride * b_kind;
assert(count == b->dim[0].ubound + 1 - b->dim[0].lbound);
- ystride = b->dim[1].stride;
+ ystride = b->dim[1].stride * b_kind;
ycount = b->dim[1].ubound + 1 - b->dim[1].lbound;
}
diff --git a/libgfortran/m4/matmull.m4 b/libgfortran/m4/matmull.m4
index b488632..54afa8a 100644
--- a/libgfortran/m4/matmull.m4
+++ b/libgfortran/m4/matmull.m4
@@ -154,7 +154,7 @@ sinclude(`matmul_asm_'rtype_code`.m4')dnl
{
astride = a->dim[1].stride * a_kind;
count = a->dim[1].ubound + 1 - a->dim[1].lbound;
- xstride = a->dim[0].stride;
+ xstride = a->dim[0].stride * a_kind;
xcount = a->dim[0].ubound + 1 - a->dim[0].lbound;
}
if (GFC_DESCRIPTOR_RANK (b) == 1)
@@ -169,7 +169,7 @@ sinclude(`matmul_asm_'rtype_code`.m4')dnl
{
bstride = b->dim[0].stride * b_kind;
assert(count == b->dim[0].ubound + 1 - b->dim[0].lbound);
- ystride = b->dim[1].stride;
+ ystride = b->dim[1].stride * b_kind;
ycount = b->dim[1].ubound + 1 - b->dim[1].lbound;
}