diff options
author | Janne Blomqvist <jb@gcc.gnu.org> | 2005-11-14 21:48:31 +0200 |
---|---|---|
committer | Janne Blomqvist <jb@gcc.gnu.org> | 2005-11-14 21:48:31 +0200 |
commit | 8520690170c14805001693fe2fb88bc7b58a8cbf (patch) | |
tree | ea9d35216d30a0f95f4bdaf4358cdd30d1cf0613 /libgfortran/generated/matmul_r16.c | |
parent | d0568f737a5f9e620a14a372a713a54ba1328764 (diff) | |
download | gcc-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.c | 24 |
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) |