[patch, libfortran] Add AVX-specific matmul

Thomas Koenig tkoenig@netcologne.de
Wed Nov 16 21:30:00 GMT 2016


Hello world,

the attached patch adds an AVX-specific version of the matmul
intrinsic to the Fortran library.  This works by using the target_clones
attribute.

For testing, I compiled this on powerpc64-unknown-linux-gnu,
without any ill effects.

Also, a resulting binary reached around 15 GFlops for larger matrices
on a 3.4 GHz i7-2600 CPU.  I am currently building/regtesting on
that machine. This can give another 40% speed increase  for large
matrices on AVX.

OK for trunk?

Regards

	Thomas

2016-11-16  Thomas Koenig  <tkoenig@gcc.gnu.org>

         PR fortran/78379
         * m4/matmul.m4:  For x86_64, make the work function for matmul
         static with target_clones for AVX and default, and create
         a wrapper function to call it.
         * generated/matmul_c10.c
         * 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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pavx-1.diff
Type: text/x-patch
Size: 23098 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/fortran/attachments/20161116/135b7e53/attachment.bin>


More information about the Fortran mailing list