aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/pr104528.f
blob: 5b43feba97bca589a739b967d7b2c1fae0157ce5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
! { dg-do compile }
! { dg-options "-O2 -fpeel-loops -ftree-loop-vectorize -fno-tree-scev-cprop --param iv-max-considered-uses=2" }
      REAL               FUNCTION FOO(M, N, A, W)

      INTEGER            M, N

      REAL               W(*)
      COMPLEX            A(*)

      INTEGER            II, JI, JJ, KK, LL, MP

      EXTERNAL           BAR

      INTEGER            QUX
      EXTERNAL           QUX

      CALL BAR(II)

      IF (M .EQ. 0) THEN
         IF (N .EQ. 0) THEN
            DO 140 KK = II, II + MP
               W(KK) = 0
 140        CONTINUE
         ELSE
            KK = II + MP
         END IF

         DO 130 JI = KK, KK + MP
            DO 120 LL = JJ, JJ + MP
               DO 110 KK = II, II + MP
                  W(KK) = (A(KK))
 110           CONTINUE
 120        CONTINUE
 130     CONTINUE

         IF (W(KK) .EQ. 0) THEN
            FOO = W(QUX(MP, W, 1))
         END IF

      END IF

      RETURN

      END