PR target/83368
[official-gcc.git] / gcc / testsuite / gfortran.dg / graphite / pr68279.f90
blobe68d6e71118d77a0a4fcd7b796d544ce2ce13ea4
1 ! { dg-options "-std=legacy -floop-nest-optimize -O2" }
3 MODULE dbcsr_mm_accdrv
4 INTEGER, SAVE :: accdrv_binning_nbins = 4096
5 INTEGER, SAVE :: accdrv_binning_binsize = 16
6 INTEGER, PARAMETER, PUBLIC :: dbcsr_ps_width = 7
7 CONTAINS
8 SUBROUTINE stack_binning(params_in, params_out, stack_size)
9 INTEGER, INTENT(IN) :: stack_size
10 INTEGER, DIMENSION(dbcsr_ps_width, &
11 stack_size), INTENT(OUT) :: params_out
12 INTEGER, DIMENSION(dbcsr_ps_width, &
13 stack_size), INTENT(IN) :: params_in
14 INTEGER, DIMENSION(accdrv_binning_nbins) :: bin_top
15 INTEGER, DIMENSION(dbcsr_ps_width) :: val
16 INTEGER, DIMENSION(dbcsr_ps_width, &
17 accdrv_binning_binsize, &
18 accdrv_binning_nbins) :: bin_arr
19 DO i=1,stack_size
20 val(:) = params_in(:,i)
21 IF(bin_top(bin_id) > accdrv_binning_binsize) THEN
22 params_out(:, top:top+bin_top(bin_id)-2) = bin_arr(:, 1:bin_top(bin_id)-1, bin_id)
23 ENDIF
24 bin_arr(:, bin_top(bin_id), bin_id) = val(:)
25 bin_top(bin_id) = bin_top(bin_id) + 1
26 END DO
27 END SUBROUTINE stack_binning
28 END MODULE