mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-08 19:20:44 +08:00
re PR fortran/37131 (inline matmul for small matrix sizes)
2015-05-17 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/37131 * gfortran.dg/matmul_bounds_6.f90: New test. * gfortran.dg/matmul_bounds_7.f90: New test. From-SVN: r223268
This commit is contained in:
parent
ebd5b3fd54
commit
2ea560b2b0
@ -1,3 +1,9 @@
|
||||
2015-05-17 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||||
|
||||
PR fortran/37131
|
||||
* gfortran.dg/matmul_bounds_6.f90: New test.
|
||||
* gfortran.dg/matmul_bounds_7.f90: New test.
|
||||
|
||||
2015-05-16 Jan Hubica <hubicka@ucw.cz>
|
||||
|
||||
* gfortran.dg/lto/20091028-2_1.c: Fix return value.
|
||||
|
26
gcc/testsuite/gfortran.dg/matmul_bounds_6.f90
Normal file
26
gcc/testsuite/gfortran.dg/matmul_bounds_6.f90
Normal file
@ -0,0 +1,26 @@
|
||||
! { dg-do run }
|
||||
program main
|
||||
real, dimension(3,2) :: a
|
||||
real, dimension(6) :: b
|
||||
real, dimension(3) :: res1
|
||||
real, dimension(:), allocatable :: c1, c2,c3
|
||||
real, dimension(2) :: res2
|
||||
|
||||
data a /-2., 3., -5., 7., -11., 13./
|
||||
data b /17., -23., 29., -31., 37., -41./
|
||||
data res1 /201., -320., 336./
|
||||
data res2 /158., -353./
|
||||
|
||||
c1 = matmul(a,[29.,37.])
|
||||
if (size(c1,1) /= 3) call abort
|
||||
if (any(c1/=res1)) call abort
|
||||
|
||||
c2 = matmul(a,pack(b,[b>20.]))
|
||||
if (size(c1,1) /= 3) call abort
|
||||
if (any(c1/=res1)) call abort
|
||||
|
||||
c3 = matmul(pack(b,[b<0.]),a)
|
||||
if (size(c3,1) /= 2) call abort
|
||||
if (any(c3 /= res2)) call abort
|
||||
|
||||
end program main
|
16
gcc/testsuite/gfortran.dg/matmul_bounds_7.f90
Normal file
16
gcc/testsuite/gfortran.dg/matmul_bounds_7.f90
Normal file
@ -0,0 +1,16 @@
|
||||
! { dg-do run }
|
||||
! { dg-additional-options "-fcheck=bounds" }
|
||||
! { dg-shouldfail "Fortran runtime error: dimension of array B incorrect in MATMUL intrinsic" }
|
||||
|
||||
program main
|
||||
real, dimension(3,2) :: a
|
||||
real, dimension(6) :: b
|
||||
real, dimension(:), allocatable :: c
|
||||
|
||||
data a /-2., 3., -5., 7., -11., 13./
|
||||
data b /17., -23., 29., -31., 37., -41./
|
||||
|
||||
c = matmul(pack(b,[b<20.]),a)
|
||||
print *,sum(c)
|
||||
|
||||
end program main
|
Loading…
x
Reference in New Issue
Block a user