aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hongjiu.lu@intel.com>2014-11-10 18:08:00 +0000
committerH.J. Lu <hjl@gcc.gnu.org>2014-11-10 10:08:00 -0800
commitb488ccab7973bd29e4cd37f59df82dacd77c0f7e (patch)
treebfe95d420c48720add8efceb94fb5d58cd6a30dd
parent202d59415f19e3bb8a85abca3f79d952f8a4d54c (diff)
downloadgcc-b488ccab7973bd29e4cd37f59df82dacd77c0f7e.zip
gcc-b488ccab7973bd29e4cd37f59df82dacd77c0f7e.tar.gz
gcc-b488ccab7973bd29e4cd37f59df82dacd77c0f7e.tar.bz2
Add a testcase for PR tree-optimization/63778
PR tree-optimization/63778 * gfortran.dg/pr63778.f: New test. From-SVN: r217304
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/pr63778.f46
2 files changed, 51 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index ece3d52..4c14669 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2014-11-10 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR tree-optimization/63778
+ * gfortran.dg/pr63778.f: New test.
+
2014-11-10 Renlin Li <renlin.li@arm.com>
PR middle-end/61529
diff --git a/gcc/testsuite/gfortran.dg/pr63778.f b/gcc/testsuite/gfortran.dg/pr63778.f
new file mode 100644
index 0000000..11ce151
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr63778.f
@@ -0,0 +1,46 @@
+! { dg-do compile }
+! { dg-options "-O3 -ffast-math" }
+
+ SUBROUTINE ZUNG2L( M, N, K, A, LDA, TAU, WORK, INFO )
+ COMPLEX*16 A( LDA, * ), TAU( * ), WORK( * )
+ IF( M.LT.0 ) THEN
+ END IF
+ CALL ZLARF( 'LEFT', M-N+II, II-1, A( 1, II ), 1, TAU( I ), A,
+ $ LDA, WORK )
+ CALL ZSCAL( M-N+II-1, -TAU( I ), A( 1, II ), 1 )
+ A( M-N+II, II ) = ONE - TAU( I )
+ END
+ SUBROUTINE ZLARF( SIDE, M, N, V, INCV, TAU, C, LDC, WORK )
+ CHARACTER SIDE(*)
+ LOGICAL LSAME
+ COMPLEX*16 C( LDC, * ), V(*), WORK(*), TAU
+ IF( LSAME( SIDE, 'L' ) ) THEN
+ IF( TAU.NE.ZERO ) THEN
+ CALL ZGEMV( 'CONJUGATE TRANSPOSE', M, N, ONE, C, LDC, V,
+ $ INCV, ZERO, WORK, 1 )
+ END IF
+ END IF
+ END
+ LOGICAL FUNCTION LSAME( CA, CB )
+ CHARACTER CA(*), CB(*)
+ END
+ SUBROUTINE ZGEMV ( TRANS, M, N, ALPHA, A, LDA, X, INCX,
+ $ BETA, Y, INCY )
+ COMPLEX*16 A( LDA, * ), X( * ), Y( * )
+ CHARACTER TRANS(*)
+ LOGICAL LSAME
+ IF( LSAME( TRANS, 'N' ) )THEN
+ IF( INCY.EQ.1 )THEN
+ IF( X( JX ).NE.ZERO )THEN
+ Y( I ) = Y( I ) + TEMP*A( I, J )
+ END IF
+ END IF
+ END IF
+ END
+ SUBROUTINE ZSCAL(N,ZA,ZX,INCX)
+ COMPLEX*16 ZA,ZX(1)
+ IF( N.LE.0 .OR. INCX.LE.0 )RETURN
+ 20 DO 30 I = 1,N
+ ZX(I) = ZA*ZX(I)
+ 30 CONTINUE
+ END