re PR fortran/52473 (CSHIFT slow - inline it?)
authorThomas Koenig <tkoenig@gcc.gnu.org>
Sat, 24 Jun 2017 07:07:56 +0000 (07:07 +0000)
committerThomas Koenig <tkoenig@gcc.gnu.org>
Sat, 24 Jun 2017 07:07:56 +0000 (07:07 +0000)
commite56e3fda6092548f3cd5336d131b412be986b1e6
tree2c28733ee096cbdb641e42b511b18f7c28205330
parentef5b7d19b688bb92178f41f504133f0ee51bffc6
re PR fortran/52473 (CSHIFT slow - inline it?)

2017-06-24  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR fortran/52473
* Makefile.am:  Add i_cshift1a_c.  Add rules to generate files
from cshift1a.m4.
* Makefile.in: Regenerated.
* m4/cshift1a.m4: New file.
* m4/cshift.m4 (cshift1): Split up inner loop by removing
condition. Use memcpy where possible.  Call helper functions
based on dtype.
* libgfortran.h: Add prototypes for cshift1_16_c10,
cshift1_16_c16, cshift1_16_c4, cshift1_16_c8, cshift1_16_i1,
cshift1_16_i16, cshift1_16_i2, cshift1_16_i4, cshift1_16_i8,
cshift1_16_r10, cshift1_16_r16, cshift1_16_r4, cshift1_16_r8,
cshift1_4_c10, cshift1_4_c16, cshift1_4_c4, cshift1_4_c8,
cshift1_4_i1, cshift1_4_i16, cshift1_4_i2, cshift1_4_i4,
cshift1_4_i8, cshift1_4_r10, cshift1_4_r16, cshift1_4_r4,
cshift1_4_r8, cshift1_8_c10, cshift1_8_c16, cshift1_8_c4,
cshift1_8_c8, cshift1_8_i1, cshift1_8_i16, cshift1_8_i2,
cshift1_8_i4, cshift1_8_i8, cshift1_8_r10, cshift1_8_r16,
cshift1_8_r4 and cshift1_8_r8.
* generated/cshift1_16_c10.c: New file, generated from cshift1a.m4.
* generated/cshift1_16_c16.c: New file, generated from cshift1a.m4.
* generated/cshift1_16_c4.c: New file, generated from cshift1a.m4.
* generated/cshift1_16_c8.c: New file, generated from cshift1a.m4.
* generated/cshift1_16_i1.c: New file, generated from cshift1a.m4.
* generated/cshift1_16_i16.c: New file, generated from cshift1a.m4.
* generated/cshift1_16_i2.c: New file, generated from cshift1a.m4.
* generated/cshift1_16_i4.c: New file, generated from cshift1a.m4.
* generated/cshift1_16_i8.c: New file, generated from cshift1a.m4.
* generated/cshift1_16_r10.c: New file, generated from cshift1a.m4.
* generated/cshift1_16_r16.c: New file, generated from cshift1a.m4.
* generated/cshift1_16_r4.c: New file, generated from cshift1a.m4.
* generated/cshift1_16_r8.c: New file, generated from cshift1a.m4.
* generated/cshift1_4_c10.c: New file, generated from cshift1a.m4.
* generated/cshift1_4_c16.c: New file, generated from cshift1a.m4.
* generated/cshift1_4_c4.c: New file, generated from cshift1a.m4.
* generated/cshift1_4_c8.c: New file, generated from cshift1a.m4.
* generated/cshift1_4_i1.c: New file, generated from cshift1a.m4.
* generated/cshift1_4_i16.c: New file, generated from cshift1a.m4.
* generated/cshift1_4_i2.c: New file, generated from cshift1a.m4.
* generated/cshift1_4_i4.c: New file, generated from cshift1a.m4.
* generated/cshift1_4_i8.c: New file, generated from cshift1a.m4.
* generated/cshift1_4_r10.c: New file, generated from cshift1a.m4.
* generated/cshift1_4_r16.c: New file, generated from cshift1a.m4.
* generated/cshift1_4_r4.c: New file, generated from cshift1a.m4.
* generated/cshift1_4_r8.c: New file, generated from cshift1a.m4.
* generated/cshift1_8_c10.c: New file, generated from cshift1a.m4.
* generated/cshift1_8_c16.c: New file, generated from cshift1a.m4.
* generated/cshift1_8_c4.c: New file, generated from cshift1a.m4.
* generated/cshift1_8_c8.c: New file, generated from cshift1a.m4.
* generated/cshift1_8_i1.c: New file, generated from cshift1a.m4.
* generated/cshift1_8_i16.c: New file, generated from cshift1a.m4.
* generated/cshift1_8_i2.c: New file, generated from cshift1a.m4.
* generated/cshift1_8_i4.c: New file, generated from cshift1a.m4.
* generated/cshift1_8_i8.c: New file, generated from cshift1a.m4.
* generated/cshift1_8_r10.c: New file, generated from cshift1a.m4.
* generated/cshift1_8_r16.c: New file, generated from cshift1a.m4.
* generated/cshift1_8_r4.c: New file, generated from cshift1a.m4.
* generated/cshift1_8_r8.c: New file, generated from cshift1a.m4.

2017-06-24  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR fortran/52473
* gfortran.dg/cshift_2.f90:  New test.

From-SVN: r249620
50 files changed:
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/cshift_2.f90 [new file with mode: 0644]
libgfortran/ChangeLog
libgfortran/Makefile.am
libgfortran/Makefile.in
libgfortran/generated/cshift1_16.c
libgfortran/generated/cshift1_16_c10.c [new file with mode: 0644]
libgfortran/generated/cshift1_16_c16.c [new file with mode: 0644]
libgfortran/generated/cshift1_16_c4.c [new file with mode: 0644]
libgfortran/generated/cshift1_16_c8.c [new file with mode: 0644]
libgfortran/generated/cshift1_16_i1.c [new file with mode: 0644]
libgfortran/generated/cshift1_16_i16.c [new file with mode: 0644]
libgfortran/generated/cshift1_16_i2.c [new file with mode: 0644]
libgfortran/generated/cshift1_16_i4.c [new file with mode: 0644]
libgfortran/generated/cshift1_16_i8.c [new file with mode: 0644]
libgfortran/generated/cshift1_16_r10.c [new file with mode: 0644]
libgfortran/generated/cshift1_16_r16.c [new file with mode: 0644]
libgfortran/generated/cshift1_16_r4.c [new file with mode: 0644]
libgfortran/generated/cshift1_16_r8.c [new file with mode: 0644]
libgfortran/generated/cshift1_4.c
libgfortran/generated/cshift1_4_c10.c [new file with mode: 0644]
libgfortran/generated/cshift1_4_c16.c [new file with mode: 0644]
libgfortran/generated/cshift1_4_c4.c [new file with mode: 0644]
libgfortran/generated/cshift1_4_c8.c [new file with mode: 0644]
libgfortran/generated/cshift1_4_i1.c [new file with mode: 0644]
libgfortran/generated/cshift1_4_i16.c [new file with mode: 0644]
libgfortran/generated/cshift1_4_i2.c [new file with mode: 0644]
libgfortran/generated/cshift1_4_i4.c [new file with mode: 0644]
libgfortran/generated/cshift1_4_i8.c [new file with mode: 0644]
libgfortran/generated/cshift1_4_r10.c [new file with mode: 0644]
libgfortran/generated/cshift1_4_r16.c [new file with mode: 0644]
libgfortran/generated/cshift1_4_r4.c [new file with mode: 0644]
libgfortran/generated/cshift1_4_r8.c [new file with mode: 0644]
libgfortran/generated/cshift1_8.c
libgfortran/generated/cshift1_8_c10.c [new file with mode: 0644]
libgfortran/generated/cshift1_8_c16.c [new file with mode: 0644]
libgfortran/generated/cshift1_8_c4.c [new file with mode: 0644]
libgfortran/generated/cshift1_8_c8.c [new file with mode: 0644]
libgfortran/generated/cshift1_8_i1.c [new file with mode: 0644]
libgfortran/generated/cshift1_8_i16.c [new file with mode: 0644]
libgfortran/generated/cshift1_8_i2.c [new file with mode: 0644]
libgfortran/generated/cshift1_8_i4.c [new file with mode: 0644]
libgfortran/generated/cshift1_8_i8.c [new file with mode: 0644]
libgfortran/generated/cshift1_8_r10.c [new file with mode: 0644]
libgfortran/generated/cshift1_8_r16.c [new file with mode: 0644]
libgfortran/generated/cshift1_8_r4.c [new file with mode: 0644]
libgfortran/generated/cshift1_8_r8.c [new file with mode: 0644]
libgfortran/libgfortran.h
libgfortran/m4/cshift1.m4
libgfortran/m4/cshift1a.m4 [new file with mode: 0644]