1 ! PR rtl
-optimization
/37243
3 ! { dg
-add
-options ieee
}
4 ! Check
if register allocator handles IR flattening correctly
.
5 SUBROUTINE SCHMD
(V
,M
,N
,LDV
)
6 IMPLICIT DOUBLE PRECISION(A
-H
,O
-Z
)
7 LOGICAL GOPARR
,DSKWRK
,MASWRK
9 COMMON /IOFILE
/ IR
,IW
,IP
,IS
,IPK
,IDAF
,NAV
,IODA
(400)
10 COMMON /PAR
/ ME
,MASTER
,NPROC
,IBTYP
,IPTIM
,GOPARR
,DSKWRK
,MASWRK
11 PARAMETER (ZERO
=0.0D
+00, ONE
=1.0D
+00, TOL
=1.0D
-10)
12 IF (M
.EQ
. 0) GO TO 180
16 100 DUMI
= DUMI
+V
(K
,I
)*V
(K
,I
) ! { dg
-warning
"Obsolescent feature: DO termination statement which is not END DO or CONTINUE" }
17 DUMI
= ONE
/ SQRT
(DUMI
)
19 120 V
(K
,I
) = V
(K
,I
)*DUMI
! { dg
-warning
"Obsolescent feature: DO termination statement which is not END DO or CONTINUE" }
20 IF (I
.EQ
. M
) GO TO 160
23 DUM
= -DDOT
(N
,V
(1,J
),1,V
(1,I
),1)
24 CALL DAXPY
(N
,DUM
,V
(1,I
),1,V
(1,J
),1)
35 IF (J
.GT
. N
) GO TO 320
37 240 V
(K
,I
) = ZERO
! { dg
-warning
"Obsolescent feature: DO termination statement which is not END DO or CONTINUE" }
38 CALL DAXPY
(N
,DUM
,V
(1,I
),1,V
(1,I
),1)
42 280 DUMI
= DUMI
+V
(K
,I
)*V
(K
,I
) ! { dg
-warning
"Obsolescent feature: DO termination statement which is not END DO or CONTINUE" }
43 IF ( ABS
(DUMI
) .LT
. TOL
) GO TO 220
45 300 V
(K
,I
) = V
(K
,I
)*DUMI
! { dg
-warning
"Obsolescent feature: DO termination statement which is not END DO or CONTINUE" }
53 call schmd
(V
, 1, 18, 18)
56 subroutine DAXPY
(N
,D
,V
,M
,W
,L
)
58 DOUBLE PRECISION D
, V
(1,1), W
(1,1)
61 FUNCTION DDOT
(N
,V
,M
,W
,L
)
63 DOUBLE PRECISION DDOT
, V
(1,1), W
(1,1)