1! { dg-do compile }
2! { dg-options "-O3 -ffast-math" }
3
4      SUBROUTINE ZUNG2L( M, N, K, A, LDA, TAU, WORK, INFO )
5      COMPLEX*16         A( LDA, * ), TAU( * ), WORK( * )
6      IF( M.LT.0 ) THEN
7      END IF
8         CALL ZLARF( 'LEFT', M-N+II, II-1, A( 1, II ), 1, TAU( I ), A,
9     $               LDA, WORK )
10         CALL ZSCAL( M-N+II-1, -TAU( I ), A( 1, II ), 1 )
11         A( M-N+II, II ) = ONE - TAU( I )
12      END
13      SUBROUTINE ZLARF( SIDE, M, N, V, INCV, TAU, C, LDC, WORK )
14      CHARACTER         SIDE(*)
15      LOGICAL            LSAME
16      COMPLEX*16         C( LDC, * ), V(*), WORK(*), TAU
17      IF( LSAME( SIDE, 'L' ) ) THEN
18         IF( TAU.NE.ZERO ) THEN
19            CALL ZGEMV( 'CONJUGATE TRANSPOSE', M, N, ONE, C, LDC, V,
20     $                  INCV, ZERO, WORK, 1 )
21         END IF
22      END IF
23      END
24      LOGICAL          FUNCTION LSAME( CA, CB )
25      CHARACTER         CA(*), CB(*)
26      END
27      SUBROUTINE ZGEMV ( TRANS, M, N, ALPHA, A, LDA, X, INCX,
28     $                   BETA, Y, INCY )
29      COMPLEX*16         A( LDA, * ), X( * ), Y( * )
30      CHARACTER         TRANS(*)
31      LOGICAL            LSAME
32      IF( LSAME( TRANS, 'N' ) )THEN
33         IF( INCY.EQ.1 )THEN
34               IF( X( JX ).NE.ZERO )THEN
35                     Y( I ) = Y( I ) + TEMP*A( I, J )
36               END IF
37         END IF
38      END IF
39      END
40      SUBROUTINE  ZSCAL(N,ZA,ZX,INCX)
41      COMPLEX*16 ZA,ZX(1)
42      IF( N.LE.0 .OR. INCX.LE.0 )RETURN
43   20 DO 30 I = 1,N
44        ZX(I) = ZA*ZX(I)
45   30 CONTINUE
46      END
47