summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/pr91003.f90
blob: ed5063d6365d42b2ab649f6a0dda05dbea020c95 (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
! { dg-do compile }
! { dg-options "-Ofast" }
      SUBROUTINE FOO(N, A, B, C, D, E, F, G)
      COMPLEX A(*)
      LOGICAL H
      INTEGER G
      REAL I, C, J, F, F1, F2, K, E, L, M, B, D
      DO JC = 1, N
        K = F*REAL(A(JC))
        Z = F*AIMAG(A(JC))
        H = .FALSE.
        L = G
        IF(ABS(Z).LT.D .AND. I.GE. MAX(D, B*C, B*J)) THEN
          H = .TRUE.
          L = (D / F1) / MAX(D, F2*I)
        END IF
        IF(ABS(K).LT.D .AND. C.GE. MAX(D, B*I, B*J)) THEN
          L = MAX(L, (D / F1) / MAX(D, F2*C))
        END IF
        IF(ABS(E).LT.D .AND. J.GE. MAX(D, B*C, B*I)) THEN
          H = .TRUE.
          L = MAX(L, (D / BNRM1) / MAX(D, BNRM2*J))
        END IF
        IF(H) THEN
          M = (L*D)*MAX(ABS(K), ABS(Z), ABS(E))
        END IF
        IF(H) THEN
          K = (L*REAL(A(JC)))*F
          Z = (L*AIMAG(A(JC)))*F
        END IF
        A(JC) = CMPLX(K, Z)
      END DO
      END