aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJerry DeLisle <jvdelisle@gcc.gnu.org>2016-11-15 23:03:00 +0000
committerJerry DeLisle <jvdelisle@gcc.gnu.org>2016-11-15 23:03:00 +0000
commit5d70ab07b65a3fda05fe3ea00434ab98a66e9272 (patch)
tree2043e90433038a86fd6bc5e64566a9569951e672 /gcc
parentfd0477ca84491b35875ab913f3b607fd33cb1258 (diff)
downloadgcc-5d70ab07b65a3fda05fe3ea00434ab98a66e9272.zip
gcc-5d70ab07b65a3fda05fe3ea00434ab98a66e9272.tar.gz
gcc-5d70ab07b65a3fda05fe3ea00434ab98a66e9272.tar.bz2
[multiple changes]
2016-11-15 Jerry DeLisle <jvdelisle@gcc.gnu.org> Thomas Koenig <tkoenig@gcc.gnu.org> PR libgfortran/51119 * Makefile.am: Add new optimization flags matmul. * Makefile.in: Regenerate. * m4/matmul.m4: For the case of all strides = 1, implement a fast blocked matrix multiply. Fix some whitespace. * generated/matmul_c10.c: Regenerate. * generated/matmul_c16.c: Regenerate. * generated/matmul_c4.c: Regenerate. * generated/matmul_c8.c: Regenerate. * generated/matmul_i1.c: Regenerate. * generated/matmul_i16.c: Regenerate. * generated/matmul_i2.c: Regenerate. * generated/matmul_i4.c: Regenerate. * generated/matmul_i8.c: Regenerate. * generated/matmul_r10.c: Regenerate. * generated/matmul_r16.c: Regenerate. * generated/matmul_r4.c: Regenerate. * generated/matmul_r8.c: Regenerate. 2016-11-15 Thomas Koenig <tkoenig@gcc.gnu.org> PR libgfortran/51119 * gfortran.dg/matmul_12.f90: New test case. From-SVN: r242462
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/matmul_12.f9022
2 files changed, 27 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 74a84a3..65dac88 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2016-11-15 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR libgfortran/51119
+ * gfortran.dg/matmul_12.f90: New test case.
+
2016-11-15 Uros Bizjak <ubizjak@gmail.com>
* gcc.target/i386/funcspec-56.inc: New file.
diff --git a/gcc/testsuite/gfortran.dg/matmul_12.f90 b/gcc/testsuite/gfortran.dg/matmul_12.f90
new file mode 100644
index 0000000..5badd3f
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/matmul_12.f90
@@ -0,0 +1,22 @@
+! { dg-do run }
+program main
+ integer, parameter :: sz=5, su=3
+ integer, parameter :: l=2
+ integer, parameter :: u=l-1+su
+ integer(kind=4), dimension(sz,sz) :: r,a,b
+ integer :: i,j
+ do i=1,4
+ do j=1,4
+ a(i,j) = i*10+j
+ b(i,j) = 100+i*10+j
+ end do
+ end do
+ r = -1
+ b(l:u,l:u) = reshape([(i,i=1,su*su)],[su,su]);
+ a(l:u,l:u) = reshape([(i,i=1,su*su)],[su,su]);
+
+ r(1:su,1:su) = matmul(a(l:u,l:u),b(l:u,l:u))
+ if (any(reshape(r,[sz*sz]) /= [30, 36, 42, -1, -1, 66, 81, 96, -1, -1,&
+ & 102, 126, 150, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1])) &
+ call abort
+end program main