Skip to content

Commit 6d10d14

Browse files
committed
Regression test for illegal modification of Y in DGEMV observed with Apple vecLib.
1 parent 85ef8de commit 6d10d14

File tree

1 file changed

+62
-1
lines changed

1 file changed

+62
-1
lines changed

BLAS/TESTING/dblat2.f

Lines changed: 62 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -469,7 +469,7 @@ SUBROUTINE DCHK1( SNAME, EPS, THRESH, NOUT, NTRA, TRACE, REWI,
469469
LOGICAL LDE, LDERES
470470
EXTERNAL LDE, LDERES
471471
* .. External Subroutines ..
472-
EXTERNAL DGBMV, DGEMV, DMAKE, DMVCH
472+
EXTERNAL DGBMV, DGEMV, DMAKE, DMVCH, DREGR1
473473
* .. Intrinsic Functions ..
474474
INTRINSIC ABS, MAX, MIN
475475
* .. Scalars in Common ..
@@ -724,6 +724,34 @@ SUBROUTINE DCHK1( SNAME, EPS, THRESH, NOUT, NTRA, TRACE, REWI,
724724
*
725725
120 CONTINUE
726726
*
727+
* Regression test to verify preservation of y when m zero, n nonzero.
728+
*
729+
CALL DREGR1( TRANS, M, N, LY, KL, KU, ALPHA, AA, LDA, XX, INCX,
730+
$ BETA, YY, INCY, YS )
731+
IF( FULL )THEN
732+
IF( TRACE )
733+
$ WRITE( NTRA, FMT = 9994 )NC, SNAME, TRANS, M, N, ALPHA, LDA,
734+
$ INCX, BETA, INCY
735+
IF( REWI )
736+
$ REWIND NTRA
737+
CALL DGEMV( TRANS, M, N, ALPHA, AA, LDA, XX, INCX, BETA, YY,
738+
$ INCY )
739+
ELSE IF( BANDED )THEN
740+
IF( TRACE )
741+
$ WRITE( NTRA, FMT = 9995 )NC, SNAME, TRANS, M, N, KL, KU,
742+
$ ALPHA, LDA, INCX, BETA, INCY
743+
IF( REWI )
744+
$ REWIND NTRA
745+
CALL DGBMV( TRANS, M, N, KL, KU, ALPHA, AA, LDA, XX, INCX,
746+
$ BETA, YY, INCY )
747+
END IF
748+
NC = NC + 1
749+
IF( .NOT.LDE( YS, YY, LY ) )THEN
750+
WRITE( NOUT, FMT = 9998 )NARGS - 1
751+
FATAL = .TRUE.
752+
GO TO 130
753+
END IF
754+
*
727755
* Report result.
728756
*
729757
IF( ERRMAX.LT.THRESH )THEN
@@ -3116,6 +3144,39 @@ SUBROUTINE CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
31163144
*
31173145
* End of CHKXER
31183146
*
3147+
END
3148+
SUBROUTINE DREGR1( TRANS, M, N, LY, KL, KU, ALPHA, A, LDA, X,
3149+
$ INCX, BETA, Y, INCY, YS )
3150+
*
3151+
* Input initialization for regression test.
3152+
*
3153+
* .. Scalar Arguments ..
3154+
CHARACTER*1 TRANS
3155+
INTEGER LY, M, N, KL, KU, LDA, INCX, INCY
3156+
DOUBLE PRECISION ALPHA, BETA
3157+
* .. Array Arguments ..
3158+
DOUBLE PRECISION A(LDA,*), X(*), Y(*), YS(*)
3159+
* .. Local Scalars ..
3160+
INTEGER I
3161+
* .. Intrinsic Functions ..
3162+
INTRINSIC DBLE
3163+
* .. Executable Statements ..
3164+
TRANS = 'T'
3165+
M = 0
3166+
N = 5
3167+
KL = 0
3168+
KU = 0
3169+
ALPHA = 1.0D0
3170+
LDA = MAX( 1, M )
3171+
INCX = 1
3172+
BETA = -0.7D0
3173+
INCY = 1
3174+
LY = ABS( INCY )*N
3175+
DO 10 I = 1, LY
3176+
Y( I ) = 42.0D0 + DBLE( I )
3177+
YS( I ) = Y( I )
3178+
10 CONTINUE
3179+
RETURN
31193180
END
31203181
SUBROUTINE XERBLA( SRNAME, INFO )
31213182
*

0 commit comments

Comments
 (0)