aboutsummaryrefslogtreecommitdiff
path: root/libgfortran/generated/matmul_r16.c
diff options
context:
space:
mode:
authorJanne Blomqvist <jb@gcc.gnu.org>2005-11-14 21:48:31 +0200
committerJanne Blomqvist <jb@gcc.gnu.org>2005-11-14 21:48:31 +0200
commit8520690170c14805001693fe2fb88bc7b58a8cbf (patch)
treeea9d35216d30a0f95f4bdaf4358cdd30d1cf0613 /libgfortran/generated/matmul_r16.c
parentd0568f737a5f9e620a14a372a713a54ba1328764 (diff)
downloadgcc-8520690170c14805001693fe2fb88bc7b58a8cbf.zip
gcc-8520690170c14805001693fe2fb88bc7b58a8cbf.tar.gz
gcc-8520690170c14805001693fe2fb88bc7b58a8cbf.tar.bz2
re PR libfortran/21468 (vectorizing libfortran)
2005-11-14 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/21468 * Makefile.am: Add -ftree-vectorize for compiling matmul. * m4/matmul.m4: Add const and restrict to type declarations as appropriate. * m4/matmull.m4: Likewise. * Makefile.in: Regenerated. * generated/matmul_*.c: Likewise. From-SVN: r106898
Diffstat (limited to 'libgfortran/generated/matmul_r16.c')
-rw-r--r--libgfortran/generated/matmul_r16.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/libgfortran/generated/matmul_r16.c b/libgfortran/generated/matmul_r16.c
index 549f39e..313f8d2 100644
--- a/libgfortran/generated/matmul_r16.c
+++ b/libgfortran/generated/matmul_r16.c
@@ -48,15 +48,17 @@ Boston, MA 02110-1301, USA. */
C(I,J) = C(I,J)+A(I,K)*B(K,J)
*/
-extern void matmul_r16 (gfc_array_r16 * retarray, gfc_array_r16 * a, gfc_array_r16 * b);
+extern void matmul_r16 (gfc_array_r16 * const restrict retarray,
+ gfc_array_r16 * const restrict a, gfc_array_r16 * const restrict b);
export_proto(matmul_r16);
void
-matmul_r16 (gfc_array_r16 * retarray, gfc_array_r16 * a, gfc_array_r16 * b)
+matmul_r16 (gfc_array_r16 * const restrict retarray,
+ gfc_array_r16 * const restrict a, gfc_array_r16 * const restrict b)
{
- GFC_REAL_16 *abase;
- GFC_REAL_16 *bbase;
- GFC_REAL_16 *dest;
+ const GFC_REAL_16 * restrict abase;
+ const GFC_REAL_16 * restrict bbase;
+ GFC_REAL_16 * restrict dest;
index_type rxstride, rystride, axstride, aystride, bxstride, bystride;
index_type x, y, n, count, xcount, ycount;
@@ -105,12 +107,10 @@ matmul_r16 (gfc_array_r16 * retarray, gfc_array_r16 * a, gfc_array_r16 * b)
retarray->offset = 0;
}
- abase = a->data;
- bbase = b->data;
- dest = retarray->data;
-
if (retarray->dim[0].stride == 0)
retarray->dim[0].stride = 1;
+
+ /* This prevents constifying the input arguments. */
if (a->dim[0].stride == 0)
a->dim[0].stride = 1;
if (b->dim[0].stride == 0)
@@ -175,9 +175,9 @@ matmul_r16 (gfc_array_r16 * retarray, gfc_array_r16 * a, gfc_array_r16 * b)
if (rxstride == 1 && axstride == 1 && bxstride == 1)
{
- GFC_REAL_16 *bbase_y;
- GFC_REAL_16 *dest_y;
- GFC_REAL_16 *abase_n;
+ const GFC_REAL_16 * restrict bbase_y;
+ GFC_REAL_16 * restrict dest_y;
+ const GFC_REAL_16 * restrict abase_n;
GFC_REAL_16 bbase_yn;
if (rystride == ycount)