annotate gcc/testsuite/gfortran.dg/minmaxloc_12.f90 @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents 84e7813d76e9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
131
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
1 ! { dg-do run }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
2 ! Test compile-time simplification of minloc and maxloc with BACK argument
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
3 program main
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
4 integer, parameter :: i1(*) = [ 1,2,3,1,2,3];
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
5 integer, parameter :: d1 = minloc(i1,dim=1,back=.true.)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
6 integer, parameter :: d2 = minloc(i1,dim=1,back=.false.)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
7 integer, parameter :: d3 = maxloc(i1,dim=1,back=.true.)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
8 integer, parameter :: d4 = maxloc(i1,dim=1,back=.false.)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
9 integer, parameter :: i2(4,4) = reshape([1,2,1,2,2,3,3,2,3,4,4,3,4,5,5,4], &
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
10 [4,4]);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
11 integer, parameter :: d5(2) = minloc(i2,back=.true.)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
12 integer, parameter :: d6(2) = maxloc(i2,back=.true.)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
13 integer, parameter :: d7(4) = minloc(i2,dim=1,back=.true.)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
14 integer, parameter :: d25(4) = minloc(i2,dim=2,mask=i2<2,back=.true.)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
15 integer, parameter :: d26(4) = maxloc(i2,dim=1,mask=i2<3,back=.true.)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
16
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
17 integer, parameter :: i3(4,4) = transpose(i2)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
18 integer, parameter :: d8(4) = minloc(i3,dim=2,back=.true.)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
19 integer, parameter :: i4(4,4) = reshape([1,2,1,2,2,1,2,1,1,2,1,2,2,1,2,1],&
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
20 ([4,4]))
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
21 integer, parameter :: d9(4) = minloc(i4,dim=1,mask=i4>1,back=.true.)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
22
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
23 integer, parameter :: d10(4) = maxloc(i4,dim=1,mask=i4>1,back=.true.)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
24 character(len=2), parameter :: c0(9) = ["aa", "bb", "aa", &
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
25 "cc", "bb", "cc", "aa", "bb", "aa"]
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
26 character(len=2), parameter :: c1 (3,3) = reshape(c0, [3,3]);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
27 integer, parameter :: d11(2) = minloc(c1,back=.true.)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
28 integer, parameter :: d12(2) = maxloc(c1,back=.true.)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
29 integer, parameter :: d13(2) = minloc(c1,mask=c1>"aa",back=.true.)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
30 integer, parameter :: d14(2) = maxloc(c1,mask=c1<"cc",back=.true.)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
31 integer, parameter :: d15(3) = minloc(c1,dim=1,back=.true.)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
32 integer, parameter :: d16(3) = maxloc(c1,dim=1,back=.true.)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
33 integer, parameter :: d17(3) = minloc(c1,dim=2,back=.true.)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
34 integer, parameter :: d18(3) = maxloc(c1,dim=2,back=.true.)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
35 integer, parameter :: d19 = minloc(c0,dim=1,back=.true.)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
36 integer, parameter :: d20 = maxloc(c0,dim=1,back=.true.)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
37 integer, parameter :: d21 = minloc(c0,dim=1,mask=c0>"aa",back=.true.)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
38 integer, parameter :: d22 = maxloc(c0,dim=1,mask=c0<"cc",back=.true.)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
39 integer, parameter :: d23(3) = minloc(c1,dim=2,mask=c1>"aa",back=.true.)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
40 integer, parameter :: d24(3) = maxloc(c1,dim=2,mask=c1<"cc",back=.true.)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
41
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
42 if (d1 /= 4) STOP 2078
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
43 if (d2 /= 1) STOP 2079
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
44 if (d3 /= 6) STOP 2080
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
45 if (d4 /= 3) STOP 2081
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
46 if (any (d5 /= [3,1])) STOP 2082
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
47 if (any (d6 /= [3,4])) STOP 2083
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
48 if (any (d7 /= [3,4,4,4])) STOP 2084
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
49 if (any (d8 /= d7)) STOP 2085
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
50 if (any (d9 /= [4,3,4,3])) STOP 2086
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
51 if (any (d10 /= d9)) STOP 2087
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
52 if (any(d11 /= [3,3])) STOP 2088
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
53 if (any(d12 /= [3,2])) STOP 2089
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
54 if (any(d13 /= [2,3])) STOP 2090
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
55 if (any(d14 /= [2,3])) STOP 2091
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
56 if (any(d15 /= [3,2,3])) STOP 2092
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
57 if (any(d16 /= [2,3,2])) STOP 2093
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
58 if (any(d17 /= [3,3,3])) STOP 2094
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
59 if (any(d18 /= [2,3,2])) STOP 2095
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
60 if (d19 /= 9) STOP 2096
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
61 if (d20 /= 6) STOP 2097
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
62 if (d21 /= 8 .or. d22 /= 8) STOP 2098
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
63 if (any(d23 /= [2,3,2])) STOP 2099
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
64 if (any(d24 /= 3)) STOP 2100
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
65 if (any(d25 /= [1,0,1,0])) STOP 2101
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
66 if (any(d26 /= [4,4,0,0])) STOP 2102
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
67 end program main