Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
Regression test for illegal modification of Y in DGEMV observed with …
…Apple vecLib.
  • Loading branch information
matcross committed Sep 19, 2021
commit 6d10d14731b3d8b4f33373e3b0389c4a5d81f61f
63 changes: 62 additions & 1 deletion BLAS/TESTING/dblat2.f
Original file line number Diff line number Diff line change
Expand Up @@ -469,7 +469,7 @@ SUBROUTINE DCHK1( SNAME, EPS, THRESH, NOUT, NTRA, TRACE, REWI,
LOGICAL LDE, LDERES
EXTERNAL LDE, LDERES
* .. External Subroutines ..
EXTERNAL DGBMV, DGEMV, DMAKE, DMVCH
EXTERNAL DGBMV, DGEMV, DMAKE, DMVCH, DREGR1
* .. Intrinsic Functions ..
INTRINSIC ABS, MAX, MIN
* .. Scalars in Common ..
Expand Down Expand Up @@ -724,6 +724,34 @@ SUBROUTINE DCHK1( SNAME, EPS, THRESH, NOUT, NTRA, TRACE, REWI,
*
120 CONTINUE
*
* Regression test to verify preservation of y when m zero, n nonzero.
*
CALL DREGR1( TRANS, M, N, LY, KL, KU, ALPHA, AA, LDA, XX, INCX,
$ BETA, YY, INCY, YS )
IF( FULL )THEN
IF( TRACE )
$ WRITE( NTRA, FMT = 9994 )NC, SNAME, TRANS, M, N, ALPHA, LDA,
$ INCX, BETA, INCY
IF( REWI )
$ REWIND NTRA
CALL DGEMV( TRANS, M, N, ALPHA, AA, LDA, XX, INCX, BETA, YY,
$ INCY )
ELSE IF( BANDED )THEN
IF( TRACE )
$ WRITE( NTRA, FMT = 9995 )NC, SNAME, TRANS, M, N, KL, KU,
$ ALPHA, LDA, INCX, BETA, INCY
IF( REWI )
$ REWIND NTRA
CALL DGBMV( TRANS, M, N, KL, KU, ALPHA, AA, LDA, XX, INCX,
$ BETA, YY, INCY )
END IF
NC = NC + 1
IF( .NOT.LDE( YS, YY, LY ) )THEN
WRITE( NOUT, FMT = 9998 )NARGS - 1
FATAL = .TRUE.
GO TO 130
END IF
*
* Report result.
*
IF( ERRMAX.LT.THRESH )THEN
Expand Down Expand Up @@ -3116,6 +3144,39 @@ SUBROUTINE CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
*
* End of CHKXER
*
END
SUBROUTINE DREGR1( TRANS, M, N, LY, KL, KU, ALPHA, A, LDA, X,
$ INCX, BETA, Y, INCY, YS )
*
* Input initialization for regression test.
*
* .. Scalar Arguments ..
CHARACTER*1 TRANS
INTEGER LY, M, N, KL, KU, LDA, INCX, INCY
DOUBLE PRECISION ALPHA, BETA
* .. Array Arguments ..
DOUBLE PRECISION A(LDA,*), X(*), Y(*), YS(*)
* .. Local Scalars ..
INTEGER I
* .. Intrinsic Functions ..
INTRINSIC DBLE
* .. Executable Statements ..
TRANS = 'T'
M = 0
N = 5
KL = 0
KU = 0
ALPHA = 1.0D0
LDA = MAX( 1, M )
INCX = 1
BETA = -0.7D0
INCY = 1
LY = ABS( INCY )*N
DO 10 I = 1, LY
Y( I ) = 42.0D0 + DBLE( I )
YS( I ) = Y( I )
10 CONTINUE
RETURN
END
SUBROUTINE XERBLA( SRNAME, INFO )
*
Expand Down