RISC-V: Refactor Dynamic LMUL codes
[official-gcc.git] / gcc / testsuite / gfortran.dg / matmul_15.f90
blob9e731ed57be3d8f77012de9c790b791bcc83640b
1 ! { dg-do run }
2 ! { dg-options "-finline-matmul-limit=0" }
3 ! Stress-test the matmul blocking code with sizes close to or
4 ! equal to powers ot two.
6 program main
7 implicit none
8 integer, dimension(*), parameter :: nn = &
9 & [2,3,4,5, 7,8,9, 15,16,17, 31,32,33, 63,64,65, &
10 127 ,228,129, 255,256,257];
11 integer, parameter :: s = size(nn)
12 real, dimension(:,:),allocatable :: a, b, c
13 integer :: i1, i2, i3
14 integer :: nx, ny, count
15 real :: sm
17 sm = 0.0
18 do i1=1, s
19 nx = nn(i1)
20 do i2=1,s
21 ny = nn(i2)
22 do i3=1,s
23 count = nn(i3)
24 allocate (a(nx,ny), b(ny,count), c(nx,count))
25 call random_number(a)
26 call random_number(b)
27 c = matmul(a,b)
28 sm = sm + sum(c)
29 deallocate(a,b,c)
30 end do
31 end do
32 end do
34 end program main