2 ! Test for run-time simplification of maxval
5 integer, dimension(2,3), parameter :: i
= &
6 & reshape([-1,2,-3,5,-7,11], shape(i
))
7 integer, dimension(3), parameter :: im1
= maxval(i
,dim
=1)
8 integer, parameter :: im2
= maxval(i
,mask
=i
<0)
9 integer, dimension(2), parameter :: im3
= maxval(i
,dim
=2)
10 integer, parameter :: im4
= maxval(i
, mask
=i
<-1)
11 integer, dimension(3), parameter :: im5
= maxval(i
,dim
=1,mask
=i
<-2)
12 integer, dimension(2), parameter :: im6
= maxval(i
,dim
=2,mask
=i
<0)
14 real, dimension(2,3), parameter :: r
= &
15 & reshape([-1.,2.,-3.,5.,-7.,11.], shape(r
))
16 real, dimension(3), parameter :: rm1
= maxval(r
,dim
=1)
17 real, parameter :: rm2
= maxval(r
,mask
=r
<0)
18 real, dimension(2), parameter :: rm3
= maxval(r
,dim
=2)
19 real, parameter :: rm4
= maxval(r
, mask
=r
<-1)
20 real, dimension(3), parameter :: rm5
= maxval(r
,dim
=1,mask
=r
<-2)
21 real, dimension(2), parameter :: rm6
= maxval(r
,dim
=2,mask
=r
<0)
23 character(len
=3), parameter :: minv
= achar(0) // achar(0) // achar(0)
24 character(len
=3), dimension(2,3), parameter :: c
= &
25 reshape(["asd", "fgh", "qwe", "jkl", "ert", "zui"], shape(c
))
26 character(len
=3), parameter :: cm1
= maxval(c
)
27 character(len
=3), dimension(3), parameter :: cm2
= maxval(c
,dim
=1)
28 character(len
=3), dimension(2), parameter :: cm3
= maxval(c
,dim
=2)
29 character(len
=3), parameter :: cm4
= maxval (c
, c
<"g")
30 character(len
=3), dimension(3), parameter :: cm5
= maxval(c
,dim
=1,mask
=c
<"p")
32 if (any (im1
/= [ 2, 5, 11])) STOP 1
34 if (any (im3
/= [ -1,11])) STOP 3
36 if (any (im5
/= [-huge(im5
)-1, -3, -7])) STOP 5! { dg-warning "Integer outside symmetric range" }
37 if (any (im6
/= [-1, -huge(im6
)-1])) STOP 6! { dg-warning "Integer outside symmetric range" }
39 if (any (rm1
/= [ 2., 5., 11.])) STOP 7
40 if (rm2
/= -1.) STOP 8
41 if (any (rm3
/= [ -1.,11.])) STOP 9
42 if (rm4
/= -3.) STOP 10
43 if (any (rm5
/= [-huge(rm5
), -3., -7.])) STOP 11
44 if (any (rm6
/= [-1.,-huge(rm6
)])) STOP 12
46 if (cm1
/= "zui") STOP 13
47 if (any (cm2
/= ["fgh", "qwe", "zui" ])) STOP 14
48 if (any (cm3
/= ["qwe", "zui" ])) STOP 15
49 if (cm4
/= "fgh") STOP 16
50 if (any(cm5
/= [ "fgh", "jkl", "ert" ] )) STOP 17