aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Koenig <tkoenig@gcc.gnu.org>2018-04-06 18:49:21 +0000
committerThomas Koenig <tkoenig@gcc.gnu.org>2018-04-06 18:49:21 +0000
commite889aa0a96c39b567b8d216d7ae73cd684c52b47 (patch)
tree5c44e4e08680bd096148fbd065459432464247b9
parenta58762287e1a75e29df3d6e80e7b22e3ff03a320 (diff)
downloadgcc-e889aa0a96c39b567b8d216d7ae73cd684c52b47.zip
gcc-e889aa0a96c39b567b8d216d7ae73cd684c52b47.tar.gz
gcc-e889aa0a96c39b567b8d216d7ae73cd684c52b47.tar.bz2
re PR libfortran/85253 (asan detects heap-buffer-overflow in matmul_r4.c)
2018-04-06 Thomas Koenig <tkoenig@gcc.gnu.org> PR libfortran/85253 * m4/matmul_internal.m4: If ycount == 1, add one more row to the internal buffer. * 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. From-SVN: r259188
-rw-r--r--libgfortran/ChangeLog32
-rw-r--r--libgfortran/generated/matmul_c10.c10
-rw-r--r--libgfortran/generated/matmul_c16.c10
-rw-r--r--libgfortran/generated/matmul_c4.c10
-rw-r--r--libgfortran/generated/matmul_c8.c10
-rw-r--r--libgfortran/generated/matmul_i1.c10
-rw-r--r--libgfortran/generated/matmul_i16.c10
-rw-r--r--libgfortran/generated/matmul_i2.c10
-rw-r--r--libgfortran/generated/matmul_i4.c10
-rw-r--r--libgfortran/generated/matmul_i8.c10
-rw-r--r--libgfortran/generated/matmul_r10.c10
-rw-r--r--libgfortran/generated/matmul_r16.c10
-rw-r--r--libgfortran/generated/matmul_r4.c10
-rw-r--r--libgfortran/generated/matmul_r8.c10
-rw-r--r--libgfortran/generated/matmulavx128_c10.c4
-rw-r--r--libgfortran/generated/matmulavx128_c16.c4
-rw-r--r--libgfortran/generated/matmulavx128_c4.c4
-rw-r--r--libgfortran/generated/matmulavx128_c8.c4
-rw-r--r--libgfortran/generated/matmulavx128_i1.c4
-rw-r--r--libgfortran/generated/matmulavx128_i16.c4
-rw-r--r--libgfortran/generated/matmulavx128_i2.c4
-rw-r--r--libgfortran/generated/matmulavx128_i4.c4
-rw-r--r--libgfortran/generated/matmulavx128_i8.c4
-rw-r--r--libgfortran/generated/matmulavx128_r10.c4
-rw-r--r--libgfortran/generated/matmulavx128_r16.c4
-rw-r--r--libgfortran/generated/matmulavx128_r4.c4
-rw-r--r--libgfortran/generated/matmulavx128_r8.c4
-rw-r--r--libgfortran/m4/matmul_internal.m42
28 files changed, 124 insertions, 92 deletions
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index 367c554..c7b3346 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,3 +1,35 @@
+2018-04-06 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR libfortran/85253
+ * m4/matmul_internal.m4: If ycount == 1, add one more row to
+ the internal buffer.
+ * 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.
+
2018-04-04 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/85166
diff --git a/libgfortran/generated/matmul_c10.c b/libgfortran/generated/matmul_c10.c
index c43501c..7cd8a6d 100644
--- a/libgfortran/generated/matmul_c10.c
+++ b/libgfortran/generated/matmul_c10.c
@@ -318,7 +318,7 @@ matmul_c10_avx (gfc_array_c10 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -870,7 +870,7 @@ matmul_c10_avx2 (gfc_array_c10 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -1422,7 +1422,7 @@ matmul_c10_avx512f (gfc_array_c10 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -1988,7 +1988,7 @@ matmul_c10_vanilla (gfc_array_c10 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -2614,7 +2614,7 @@ matmul_c10 (gfc_array_c10 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
diff --git a/libgfortran/generated/matmul_c16.c b/libgfortran/generated/matmul_c16.c
index c02e74b..d93099e 100644
--- a/libgfortran/generated/matmul_c16.c
+++ b/libgfortran/generated/matmul_c16.c
@@ -318,7 +318,7 @@ matmul_c16_avx (gfc_array_c16 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -870,7 +870,7 @@ matmul_c16_avx2 (gfc_array_c16 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -1422,7 +1422,7 @@ matmul_c16_avx512f (gfc_array_c16 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -1988,7 +1988,7 @@ matmul_c16_vanilla (gfc_array_c16 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -2614,7 +2614,7 @@ matmul_c16 (gfc_array_c16 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
diff --git a/libgfortran/generated/matmul_c4.c b/libgfortran/generated/matmul_c4.c
index d16f676..eeef369 100644
--- a/libgfortran/generated/matmul_c4.c
+++ b/libgfortran/generated/matmul_c4.c
@@ -318,7 +318,7 @@ matmul_c4_avx (gfc_array_c4 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -870,7 +870,7 @@ matmul_c4_avx2 (gfc_array_c4 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -1422,7 +1422,7 @@ matmul_c4_avx512f (gfc_array_c4 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -1988,7 +1988,7 @@ matmul_c4_vanilla (gfc_array_c4 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -2614,7 +2614,7 @@ matmul_c4 (gfc_array_c4 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
diff --git a/libgfortran/generated/matmul_c8.c b/libgfortran/generated/matmul_c8.c
index 17eb31c..7a73f67 100644
--- a/libgfortran/generated/matmul_c8.c
+++ b/libgfortran/generated/matmul_c8.c
@@ -318,7 +318,7 @@ matmul_c8_avx (gfc_array_c8 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -870,7 +870,7 @@ matmul_c8_avx2 (gfc_array_c8 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -1422,7 +1422,7 @@ matmul_c8_avx512f (gfc_array_c8 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -1988,7 +1988,7 @@ matmul_c8_vanilla (gfc_array_c8 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -2614,7 +2614,7 @@ matmul_c8 (gfc_array_c8 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
diff --git a/libgfortran/generated/matmul_i1.c b/libgfortran/generated/matmul_i1.c
index 1c945bf..f355916 100644
--- a/libgfortran/generated/matmul_i1.c
+++ b/libgfortran/generated/matmul_i1.c
@@ -318,7 +318,7 @@ matmul_i1_avx (gfc_array_i1 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -870,7 +870,7 @@ matmul_i1_avx2 (gfc_array_i1 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -1422,7 +1422,7 @@ matmul_i1_avx512f (gfc_array_i1 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -1988,7 +1988,7 @@ matmul_i1_vanilla (gfc_array_i1 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -2614,7 +2614,7 @@ matmul_i1 (gfc_array_i1 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
diff --git a/libgfortran/generated/matmul_i16.c b/libgfortran/generated/matmul_i16.c
index 5492fc4..c8a08eb 100644
--- a/libgfortran/generated/matmul_i16.c
+++ b/libgfortran/generated/matmul_i16.c
@@ -318,7 +318,7 @@ matmul_i16_avx (gfc_array_i16 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -870,7 +870,7 @@ matmul_i16_avx2 (gfc_array_i16 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -1422,7 +1422,7 @@ matmul_i16_avx512f (gfc_array_i16 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -1988,7 +1988,7 @@ matmul_i16_vanilla (gfc_array_i16 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -2614,7 +2614,7 @@ matmul_i16 (gfc_array_i16 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
diff --git a/libgfortran/generated/matmul_i2.c b/libgfortran/generated/matmul_i2.c
index d292cb0..ae8a459 100644
--- a/libgfortran/generated/matmul_i2.c
+++ b/libgfortran/generated/matmul_i2.c
@@ -318,7 +318,7 @@ matmul_i2_avx (gfc_array_i2 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -870,7 +870,7 @@ matmul_i2_avx2 (gfc_array_i2 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -1422,7 +1422,7 @@ matmul_i2_avx512f (gfc_array_i2 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -1988,7 +1988,7 @@ matmul_i2_vanilla (gfc_array_i2 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -2614,7 +2614,7 @@ matmul_i2 (gfc_array_i2 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
diff --git a/libgfortran/generated/matmul_i4.c b/libgfortran/generated/matmul_i4.c
index 7409c3f..9a3822b 100644
--- a/libgfortran/generated/matmul_i4.c
+++ b/libgfortran/generated/matmul_i4.c
@@ -318,7 +318,7 @@ matmul_i4_avx (gfc_array_i4 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -870,7 +870,7 @@ matmul_i4_avx2 (gfc_array_i4 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -1422,7 +1422,7 @@ matmul_i4_avx512f (gfc_array_i4 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -1988,7 +1988,7 @@ matmul_i4_vanilla (gfc_array_i4 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -2614,7 +2614,7 @@ matmul_i4 (gfc_array_i4 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
diff --git a/libgfortran/generated/matmul_i8.c b/libgfortran/generated/matmul_i8.c
index 995357c..88bfd62 100644
--- a/libgfortran/generated/matmul_i8.c
+++ b/libgfortran/generated/matmul_i8.c
@@ -318,7 +318,7 @@ matmul_i8_avx (gfc_array_i8 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -870,7 +870,7 @@ matmul_i8_avx2 (gfc_array_i8 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -1422,7 +1422,7 @@ matmul_i8_avx512f (gfc_array_i8 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -1988,7 +1988,7 @@ matmul_i8_vanilla (gfc_array_i8 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -2614,7 +2614,7 @@ matmul_i8 (gfc_array_i8 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
diff --git a/libgfortran/generated/matmul_r10.c b/libgfortran/generated/matmul_r10.c
index c4545e4..d4f1311 100644
--- a/libgfortran/generated/matmul_r10.c
+++ b/libgfortran/generated/matmul_r10.c
@@ -318,7 +318,7 @@ matmul_r10_avx (gfc_array_r10 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -870,7 +870,7 @@ matmul_r10_avx2 (gfc_array_r10 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -1422,7 +1422,7 @@ matmul_r10_avx512f (gfc_array_r10 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -1988,7 +1988,7 @@ matmul_r10_vanilla (gfc_array_r10 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -2614,7 +2614,7 @@ matmul_r10 (gfc_array_r10 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
diff --git a/libgfortran/generated/matmul_r16.c b/libgfortran/generated/matmul_r16.c
index f6289e2..f56d1c3 100644
--- a/libgfortran/generated/matmul_r16.c
+++ b/libgfortran/generated/matmul_r16.c
@@ -318,7 +318,7 @@ matmul_r16_avx (gfc_array_r16 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -870,7 +870,7 @@ matmul_r16_avx2 (gfc_array_r16 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -1422,7 +1422,7 @@ matmul_r16_avx512f (gfc_array_r16 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -1988,7 +1988,7 @@ matmul_r16_vanilla (gfc_array_r16 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -2614,7 +2614,7 @@ matmul_r16 (gfc_array_r16 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
diff --git a/libgfortran/generated/matmul_r4.c b/libgfortran/generated/matmul_r4.c
index 2e7520a..a5677b9 100644
--- a/libgfortran/generated/matmul_r4.c
+++ b/libgfortran/generated/matmul_r4.c
@@ -318,7 +318,7 @@ matmul_r4_avx (gfc_array_r4 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -870,7 +870,7 @@ matmul_r4_avx2 (gfc_array_r4 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -1422,7 +1422,7 @@ matmul_r4_avx512f (gfc_array_r4 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -1988,7 +1988,7 @@ matmul_r4_vanilla (gfc_array_r4 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -2614,7 +2614,7 @@ matmul_r4 (gfc_array_r4 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
diff --git a/libgfortran/generated/matmul_r8.c b/libgfortran/generated/matmul_r8.c
index b851916..d9acdd9 100644
--- a/libgfortran/generated/matmul_r8.c
+++ b/libgfortran/generated/matmul_r8.c
@@ -318,7 +318,7 @@ matmul_r8_avx (gfc_array_r8 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -870,7 +870,7 @@ matmul_r8_avx2 (gfc_array_r8 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -1422,7 +1422,7 @@ matmul_r8_avx512f (gfc_array_r8 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -1988,7 +1988,7 @@ matmul_r8_vanilla (gfc_array_r8 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -2614,7 +2614,7 @@ matmul_r8 (gfc_array_r8 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
diff --git a/libgfortran/generated/matmulavx128_c10.c b/libgfortran/generated/matmulavx128_c10.c
index d67a24a..69ad45b 100644
--- a/libgfortran/generated/matmulavx128_c10.c
+++ b/libgfortran/generated/matmulavx128_c10.c
@@ -283,7 +283,7 @@ matmul_c10_avx128_fma3 (gfc_array_c10 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -836,7 +836,7 @@ matmul_c10_avx128_fma4 (gfc_array_c10 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
diff --git a/libgfortran/generated/matmulavx128_c16.c b/libgfortran/generated/matmulavx128_c16.c
index 74e79dc..0bf8ba3 100644
--- a/libgfortran/generated/matmulavx128_c16.c
+++ b/libgfortran/generated/matmulavx128_c16.c
@@ -283,7 +283,7 @@ matmul_c16_avx128_fma3 (gfc_array_c16 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -836,7 +836,7 @@ matmul_c16_avx128_fma4 (gfc_array_c16 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
diff --git a/libgfortran/generated/matmulavx128_c4.c b/libgfortran/generated/matmulavx128_c4.c
index 4a81b83..0763d5d 100644
--- a/libgfortran/generated/matmulavx128_c4.c
+++ b/libgfortran/generated/matmulavx128_c4.c
@@ -283,7 +283,7 @@ matmul_c4_avx128_fma3 (gfc_array_c4 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -836,7 +836,7 @@ matmul_c4_avx128_fma4 (gfc_array_c4 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
diff --git a/libgfortran/generated/matmulavx128_c8.c b/libgfortran/generated/matmulavx128_c8.c
index f92d62a..d440784 100644
--- a/libgfortran/generated/matmulavx128_c8.c
+++ b/libgfortran/generated/matmulavx128_c8.c
@@ -283,7 +283,7 @@ matmul_c8_avx128_fma3 (gfc_array_c8 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -836,7 +836,7 @@ matmul_c8_avx128_fma4 (gfc_array_c8 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
diff --git a/libgfortran/generated/matmulavx128_i1.c b/libgfortran/generated/matmulavx128_i1.c
index 8a3195f9..efa3461 100644
--- a/libgfortran/generated/matmulavx128_i1.c
+++ b/libgfortran/generated/matmulavx128_i1.c
@@ -283,7 +283,7 @@ matmul_i1_avx128_fma3 (gfc_array_i1 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -836,7 +836,7 @@ matmul_i1_avx128_fma4 (gfc_array_i1 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
diff --git a/libgfortran/generated/matmulavx128_i16.c b/libgfortran/generated/matmulavx128_i16.c
index 0c27bf8..3c0e606 100644
--- a/libgfortran/generated/matmulavx128_i16.c
+++ b/libgfortran/generated/matmulavx128_i16.c
@@ -283,7 +283,7 @@ matmul_i16_avx128_fma3 (gfc_array_i16 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -836,7 +836,7 @@ matmul_i16_avx128_fma4 (gfc_array_i16 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
diff --git a/libgfortran/generated/matmulavx128_i2.c b/libgfortran/generated/matmulavx128_i2.c
index c780ce8..1da7f25 100644
--- a/libgfortran/generated/matmulavx128_i2.c
+++ b/libgfortran/generated/matmulavx128_i2.c
@@ -283,7 +283,7 @@ matmul_i2_avx128_fma3 (gfc_array_i2 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -836,7 +836,7 @@ matmul_i2_avx128_fma4 (gfc_array_i2 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
diff --git a/libgfortran/generated/matmulavx128_i4.c b/libgfortran/generated/matmulavx128_i4.c
index bc69426..ca7de54 100644
--- a/libgfortran/generated/matmulavx128_i4.c
+++ b/libgfortran/generated/matmulavx128_i4.c
@@ -283,7 +283,7 @@ matmul_i4_avx128_fma3 (gfc_array_i4 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -836,7 +836,7 @@ matmul_i4_avx128_fma4 (gfc_array_i4 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
diff --git a/libgfortran/generated/matmulavx128_i8.c b/libgfortran/generated/matmulavx128_i8.c
index c13f938..731e55d 100644
--- a/libgfortran/generated/matmulavx128_i8.c
+++ b/libgfortran/generated/matmulavx128_i8.c
@@ -283,7 +283,7 @@ matmul_i8_avx128_fma3 (gfc_array_i8 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -836,7 +836,7 @@ matmul_i8_avx128_fma4 (gfc_array_i8 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
diff --git a/libgfortran/generated/matmulavx128_r10.c b/libgfortran/generated/matmulavx128_r10.c
index 178b891..190e41c 100644
--- a/libgfortran/generated/matmulavx128_r10.c
+++ b/libgfortran/generated/matmulavx128_r10.c
@@ -283,7 +283,7 @@ matmul_r10_avx128_fma3 (gfc_array_r10 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -836,7 +836,7 @@ matmul_r10_avx128_fma4 (gfc_array_r10 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
diff --git a/libgfortran/generated/matmulavx128_r16.c b/libgfortran/generated/matmulavx128_r16.c
index 4db4655..2994ed3 100644
--- a/libgfortran/generated/matmulavx128_r16.c
+++ b/libgfortran/generated/matmulavx128_r16.c
@@ -283,7 +283,7 @@ matmul_r16_avx128_fma3 (gfc_array_r16 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -836,7 +836,7 @@ matmul_r16_avx128_fma4 (gfc_array_r16 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
diff --git a/libgfortran/generated/matmulavx128_r4.c b/libgfortran/generated/matmulavx128_r4.c
index d4338fa..4f18b50 100644
--- a/libgfortran/generated/matmulavx128_r4.c
+++ b/libgfortran/generated/matmulavx128_r4.c
@@ -283,7 +283,7 @@ matmul_r4_avx128_fma3 (gfc_array_r4 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -836,7 +836,7 @@ matmul_r4_avx128_fma4 (gfc_array_r4 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
diff --git a/libgfortran/generated/matmulavx128_r8.c b/libgfortran/generated/matmulavx128_r8.c
index 62877cd..443d742 100644
--- a/libgfortran/generated/matmulavx128_r8.c
+++ b/libgfortran/generated/matmulavx128_r8.c
@@ -283,7 +283,7 @@ matmul_r8_avx128_fma3 (gfc_array_r8 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
@@ -836,7 +836,7 @@ matmul_r8_avx128_fma4 (gfc_array_r8 * const restrict retarray,
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;
diff --git a/libgfortran/m4/matmul_internal.m4 b/libgfortran/m4/matmul_internal.m4
index e20f922..6860f60 100644
--- a/libgfortran/m4/matmul_internal.m4
+++ b/libgfortran/m4/matmul_internal.m4
@@ -234,7 +234,7 @@ sinclude(`matmul_asm_'rtype_code`.m4')dnl
/* Adjust size of t1 to what is needed. */
index_type t1_dim;
- t1_dim = (a_dim1-1) * 256 + b_dim1;
+ t1_dim = (a_dim1 - (ycount > 1)) * 256 + b_dim1;
if (t1_dim > 65536)
t1_dim = 65536;