PR tree-optimization/86415 - strlen() not folded for substrings within constant arrays
[official-gcc.git] / gcc / testsuite / gfortran.dg / minloc_1.f90
blobfe12cae9140f96622c6ea5640e01ea3e0de4c873
1 ! { dg-do run }
2 ! { dg-add-options ieee }
3 ! { dg-skip-if "NaN not supported" { spu-*-* } }
4 real :: a(3), nan, minf, pinf
5 integer :: ia(1)
6 real, allocatable :: c(:)
7 logical :: l
8 logical :: l2(3)
10 nan = 0.0
11 minf = 0.0
12 pinf = 0.0
13 nan = 0.0/nan
14 minf = -1.0/minf
15 pinf = 1.0/pinf
17 allocate (c(3))
18 a(:) = nan
19 ia = minloc (a)
20 if (ia(1).ne.1) STOP 1
21 a(:) = pinf
22 ia = minloc (a)
23 if (ia(1).ne.1) STOP 2
24 a(1:2) = nan
25 ia = minloc (a)
26 if (ia(1).ne.3) STOP 3
27 a(2) = 1.0
28 ia = minloc (a)
29 if (ia(1).ne.2) STOP 4
30 a(2) = minf
31 ia = minloc (a)
32 if (ia(1).ne.2) STOP 5
33 c(:) = nan
34 ia = minloc (c)
35 if (ia(1).ne.1) STOP 6
36 c(:) = pinf
37 ia = minloc (c)
38 if (ia(1).ne.1) STOP 7
39 c(1:2) = nan
40 ia = minloc (c)
41 if (ia(1).ne.3) STOP 8
42 c(2) = 1.0
43 ia = minloc (c)
44 if (ia(1).ne.2) STOP 9
45 c(2) = minf
46 ia = minloc (c)
47 if (ia(1).ne.2) STOP 10
48 l = .false.
49 l2(:) = .false.
50 a(:) = nan
51 ia = minloc (a, mask = l)
52 if (ia(1).ne.0) STOP 11
53 ia = minloc (a, mask = l2)
54 if (ia(1).ne.0) STOP 12
55 a(:) = pinf
56 ia = minloc (a, mask = l)
57 if (ia(1).ne.0) STOP 13
58 ia = minloc (a, mask = l2)
59 if (ia(1).ne.0) STOP 14
60 a(1:2) = nan
61 ia = minloc (a, mask = l)
62 if (ia(1).ne.0) STOP 15
63 ia = minloc (a, mask = l2)
64 if (ia(1).ne.0) STOP 16
65 a(2) = 1.0
66 ia = minloc (a, mask = l)
67 if (ia(1).ne.0) STOP 17
68 ia = minloc (a, mask = l2)
69 if (ia(1).ne.0) STOP 18
70 a(2) = minf
71 ia = minloc (a, mask = l)
72 if (ia(1).ne.0) STOP 19
73 ia = minloc (a, mask = l2)
74 if (ia(1).ne.0) STOP 20
75 c(:) = nan
76 ia = minloc (c, mask = l)
77 if (ia(1).ne.0) STOP 21
78 ia = minloc (c, mask = l2)
79 if (ia(1).ne.0) STOP 22
80 c(:) = pinf
81 ia = minloc (c, mask = l)
82 if (ia(1).ne.0) STOP 23
83 ia = minloc (c, mask = l2)
84 if (ia(1).ne.0) STOP 24
85 c(1:2) = nan
86 ia = minloc (c, mask = l)
87 if (ia(1).ne.0) STOP 25
88 ia = minloc (c, mask = l2)
89 if (ia(1).ne.0) STOP 26
90 c(2) = 1.0
91 ia = minloc (c, mask = l)
92 if (ia(1).ne.0) STOP 27
93 ia = minloc (c, mask = l2)
94 if (ia(1).ne.0) STOP 28
95 c(2) = minf
96 ia = minloc (c, mask = l)
97 if (ia(1).ne.0) STOP 29
98 ia = minloc (c, mask = l2)
99 if (ia(1).ne.0) STOP 30
100 l = .true.
101 l2(:) = .true.
102 a(:) = nan
103 ia = minloc (a, mask = l)
104 if (ia(1).ne.1) STOP 31
105 ia = minloc (a, mask = l2)
106 if (ia(1).ne.1) STOP 32
107 a(:) = pinf
108 ia = minloc (a, mask = l)
109 if (ia(1).ne.1) STOP 33
110 ia = minloc (a, mask = l2)
111 if (ia(1).ne.1) STOP 34
112 a(1:2) = nan
113 ia = minloc (a, mask = l)
114 if (ia(1).ne.3) STOP 35
115 ia = minloc (a, mask = l2)
116 if (ia(1).ne.3) STOP 36
117 a(2) = 1.0
118 ia = minloc (a, mask = l)
119 if (ia(1).ne.2) STOP 37
120 ia = minloc (a, mask = l2)
121 if (ia(1).ne.2) STOP 38
122 a(2) = minf
123 ia = minloc (a, mask = l)
124 if (ia(1).ne.2) STOP 39
125 ia = minloc (a, mask = l2)
126 if (ia(1).ne.2) STOP 40
127 c(:) = nan
128 ia = minloc (c, mask = l)
129 if (ia(1).ne.1) STOP 41
130 ia = minloc (c, mask = l2)
131 if (ia(1).ne.1) STOP 42
132 c(:) = pinf
133 ia = minloc (c, mask = l)
134 if (ia(1).ne.1) STOP 43
135 ia = minloc (c, mask = l2)
136 if (ia(1).ne.1) STOP 44
137 c(1:2) = nan
138 ia = minloc (c, mask = l)
139 if (ia(1).ne.3) STOP 45
140 ia = minloc (c, mask = l2)
141 if (ia(1).ne.3) STOP 46
142 c(2) = 1.0
143 ia = minloc (c, mask = l)
144 if (ia(1).ne.2) STOP 47
145 ia = minloc (c, mask = l2)
146 if (ia(1).ne.2) STOP 48
147 c(2) = minf
148 ia = minloc (c, mask = l)
149 if (ia(1).ne.2) STOP 49
150 ia = minloc (c, mask = l2)
151 if (ia(1).ne.2) STOP 50
152 deallocate (c)
153 allocate (c(-2:-3))
154 ia = minloc (c)
155 if (ia(1).ne.0) STOP 51