[gcc(refs/users/mikael/heads/refactor_descriptor_v08)] Décalage indexs matmul

Mikael Morin mikael@gcc.gnu.org
Fri Sep 19 20:06:25 GMT 2025


https://gcc.gnu.org/g:dd753d551005cec0b6afc375017386b04855a55f

commit dd753d551005cec0b6afc375017386b04855a55f
Author: Mikael Morin <mikael@gcc.gnu.org>
Date:   Thu Sep 11 12:26:57 2025 +0200

    Décalage indexs matmul
    
    Suppression variables inutilisées

Diff:
---
 libgfortran/m4/matmul_internal.m4 | 76 ++++++++++++++++++---------------------
 1 file changed, 35 insertions(+), 41 deletions(-)

diff --git a/libgfortran/m4/matmul_internal.m4 b/libgfortran/m4/matmul_internal.m4
index d1ab0e06ce6c..5865d2584338 100644
--- a/libgfortran/m4/matmul_internal.m4
+++ b/libgfortran/m4/matmul_internal.m4
@@ -210,7 +210,7 @@ sinclude(`matmul_asm_'rtype_code`.m4')dnl
       const index_type m = xcount, n = ycount, k = count;
 
       /* System generated locals */
-      index_type a_dim1, a_offset, b_dim1, b_offset, c_dim1, c_offset,
+      index_type a_dim1, b_dim1, c_dim1,
 		 i1, i2, i3, i4, i5, i6;
 
       /* Local variables */
@@ -226,18 +226,12 @@ sinclude(`matmul_asm_'rtype_code`.m4')dnl
 
       /* Parameter adjustments */
       c_dim1 = rystride;
-      c_offset = 1 + c_dim1;
-      c -= c_offset;
       a_dim1 = aystride;
-      a_offset = 1 + a_dim1;
-      a -= a_offset;
       b_dim1 = bystride;
-      b_offset = 1 + b_dim1;
-      b -= b_offset;
 
       /* Empty c first.  */
-      for (j=1; j<=n; j++)
-	for (i=1; i<=m; i++)
+      for (j=0; j<n; j++)
+	for (i=0; i<m; i++)
 	  c[i + j * c_dim1] = ('rtype_name`)0;
 
       /* Early exit if possible */
@@ -259,35 +253,35 @@ sinclude(`matmul_asm_'rtype_code`.m4')dnl
 
       /* Start turning the crank. */
       i1 = n;
-      for (jj = 1; jj <= i1; jj += 512)
+      for (jj = 0; jj < i1; jj += 512)
 	{
 	  /* Computing MIN */
 	  i2 = 512;
-	  i3 = n - jj + 1;
+	  i3 = n - jj;
 	  jsec = min(i2,i3);
 	  ujsec = jsec - jsec % 4;
 	  i2 = k;
-	  for (ll = 1; ll <= i2; ll += 256)
+	  for (ll = 0; ll < i2; ll += 256)
 	    {
 	      /* Computing MIN */
 	      i3 = 256;
-	      i4 = k - ll + 1;
+	      i4 = k - ll;
 	      lsec = min(i3,i4);
 	      ulsec = lsec - lsec % 2;
 
 	      i3 = m;
-	      for (ii = 1; ii <= i3; ii += 256)
+	      for (ii = 0; ii < i3; ii += 256)
 		{
 		  /* Computing MIN */
 		  i4 = 256;
-		  i5 = m - ii + 1;
+		  i5 = m - ii;
 		  isec = min(i4,i5);
 		  uisec = isec - isec % 2;
-		  i4 = ll + ulsec - 1;
-		  for (l = ll; l <= i4; l += 2)
+		  i4 = ll + ulsec;
+		  for (l = ll; l < i4; l += 2)
 		    {
-		      i5 = ii + uisec - 1;
-		      for (i = ii; i <= i5; i += 2)
+		      i5 = ii + uisec;
+		      for (i = ii; i < i5; i += 2)
 			{
 			  t1[l - ll + 1 + ((i - ii + 1) << 8) - 257] =
 					a[i + l * a_dim1];
@@ -308,8 +302,8 @@ sinclude(`matmul_asm_'rtype_code`.m4')dnl
 		    }
 		  if (ulsec < lsec)
 		    {
-		      i4 = ii + isec - 1;
-		      for (i = ii; i<= i4; ++i)
+		      i4 = ii + isec;
+		      for (i = ii; i< i4; ++i)
 			{
 			  t1[lsec + ((i - ii + 1) << 8) - 257] =
 				    a[i + (ll + lsec - 1) * a_dim1];
@@ -317,11 +311,11 @@ sinclude(`matmul_asm_'rtype_code`.m4')dnl
 		    }
 
 		  uisec = isec - isec % 4;
-		  i4 = jj + ujsec - 1;
-		  for (j = jj; j <= i4; j += 4)
+		  i4 = jj + ujsec;
+		  for (j = jj; j < i4; j += 4)
 		    {
-		      i5 = ii + uisec - 1;
-		      for (i = ii; i <= i5; i += 4)
+		      i5 = ii + uisec;
+		      for (i = ii; i < i5; i += 4)
 			{
 			  f11 = c[i + j * c_dim1];
 			  f21 = c[i + 1 + j * c_dim1];
@@ -339,8 +333,8 @@ sinclude(`matmul_asm_'rtype_code`.m4')dnl
 			  f43 = c[i + 3 + (j + 2) * c_dim1];
 			  f34 = c[i + 2 + (j + 3) * c_dim1];
 			  f44 = c[i + 3 + (j + 3) * c_dim1];
-			  i6 = ll + lsec - 1;
-			  for (l = ll; l <= i6; ++l)
+			  i6 = ll + lsec;
+			  for (l = ll; l < i6; ++l)
 			    {
 			      f11 += t1[l - ll + 1 + ((i - ii + 1) << 8) - 257]
 				      * b[l + j * b_dim1];
@@ -394,15 +388,15 @@ sinclude(`matmul_asm_'rtype_code`.m4')dnl
 			}
 		      if (uisec < isec)
 			{
-			  i5 = ii + isec - 1;
-			  for (i = ii + uisec; i <= i5; ++i)
+			  i5 = ii + isec;
+			  for (i = ii + uisec; i < i5; ++i)
 			    {
 			      f11 = c[i + j * c_dim1];
 			      f12 = c[i + (j + 1) * c_dim1];
 			      f13 = c[i + (j + 2) * c_dim1];
 			      f14 = c[i + (j + 3) * c_dim1];
-			      i6 = ll + lsec - 1;
-			      for (l = ll; l <= i6; ++l)
+			      i6 = ll + lsec;
+			      for (l = ll; l < i6; ++l)
 				{
 				  f11 += t1[l - ll + 1 + ((i - ii + 1) << 8) -
 					  257] * b[l + j * b_dim1];
@@ -422,18 +416,18 @@ sinclude(`matmul_asm_'rtype_code`.m4')dnl
 		    }
 		  if (ujsec < jsec)
 		    {
-		      i4 = jj + jsec - 1;
-		      for (j = jj + ujsec; j <= i4; ++j)
+		      i4 = jj + jsec;
+		      for (j = jj + ujsec; j < i4; ++j)
 			{
-			  i5 = ii + uisec - 1;
-			  for (i = ii; i <= i5; i += 4)
+			  i5 = ii + uisec;
+			  for (i = ii; i < i5; i += 4)
 			    {
 			      f11 = c[i + j * c_dim1];
 			      f21 = c[i + 1 + j * c_dim1];
 			      f31 = c[i + 2 + j * c_dim1];
 			      f41 = c[i + 3 + j * c_dim1];
-			      i6 = ll + lsec - 1;
-			      for (l = ll; l <= i6; ++l)
+			      i6 = ll + lsec;
+			      for (l = ll; l < i6; ++l)
 				{
 				  f11 += t1[l - ll + 1 + ((i - ii + 1) << 8) -
 					  257] * b[l + j * b_dim1];
@@ -449,12 +443,12 @@ sinclude(`matmul_asm_'rtype_code`.m4')dnl
 			      c[i + 2 + j * c_dim1] = f31;
 			      c[i + 3 + j * c_dim1] = f41;
 			    }
-			  i5 = ii + isec - 1;
-			  for (i = ii + uisec; i <= i5; ++i)
+			  i5 = ii + isec;
+			  for (i = ii + uisec; i < i5; ++i)
 			    {
 			      f11 = c[i + j * c_dim1];
-			      i6 = ll + lsec - 1;
-			      for (l = ll; l <= i6; ++l)
+			      i6 = ll + lsec;
+			      for (l = ll; l < i6; ++l)
 				{
 				  f11 += t1[l - ll + 1 + ((i - ii + 1) << 8) -
 					  257] * b[l + j * b_dim1];


More information about the Gcc-cvs mailing list