https://gcc.gnu.org/bugzilla/show_bug.cgi?id=29550
--- Comment #16 from Thomas Koenig <tkoenig at gcc dot gnu.org> --- Author: tkoenig Date: Tue Sep 18 20:18:09 2018 New Revision: 264412 URL: https://gcc.gnu.org/viewcvs?rev=264412&root=gcc&view=rev Log: 2018-09-18 Thomas Koenig <tkoe...@gcc.gnu.org> PR fortran/29550 * gfortran.h (gfc_expr): Add external_blas flag. * frontend-passes.c (matrix_case): Add case A2TB2T. (optimize_namespace): Handle flag_external_blas by calling call_external_blas. (get_array_inq_function): Add argument okind. If it is nonzero, use it as the kind of argument to be used. (inline_limit_check): Remove m_case argument, add limit argument instead. Remove assert about m_case. Set the limit for inlining from the limit argument. (matmul_lhs_realloc): Handle case A2TB2T. (inline_matmul_assign): Handle inline limit for other cases with two rank-two matrices. Remove no-op calls to inline_limit_check. (call_external_blas): New function. * trans-intrinsic.c (gfc_conv_intrinsic_funcall): Do not add argument to external BLAS if external_blas is already set. 2018-09-18 Thomas Koenig <tkoe...@gcc.gnu.org> PR fortran/29550 * gfortran.dg/inline_matmul_13.f90: Adjust count for _gfortran_matmul. * gfortran.dg/inline_matmul_16.f90: Likewise. * gfortran.dg/promotion_2.f90: Add -fblas-matmul-limit=1. Scan for dgemm instead of dgemm_. Add call to random_number to make standard conforming. * gfortran.dg/matmul_blas_1.f90: New test. * gfortran.dg/matmul_bounds_14.f: New test. * gfortran.dg/matmul_bounds_15.f: New test. * gfortran.dg/matmul_bounds_16.f: New test. * gfortran.dg/blas_gemm_routines.f: New test / additional file for preceding tests. Added: trunk/gcc/testsuite/gfortran.dg/blas_gemm_routines.f trunk/gcc/testsuite/gfortran.dg/matmul_blas_1.f trunk/gcc/testsuite/gfortran.dg/matmul_bounds_14.f trunk/gcc/testsuite/gfortran.dg/matmul_bounds_15.f trunk/gcc/testsuite/gfortran.dg/matmul_bounds_16.f Modified: trunk/gcc/fortran/frontend-passes.c trunk/gcc/fortran/gfortran.h trunk/gcc/fortran/trans-intrinsic.c trunk/gcc/testsuite/gfortran.dg/inline_matmul_13.f90 trunk/gcc/testsuite/gfortran.dg/inline_matmul_16.f90 trunk/gcc/testsuite/gfortran.dg/promotion_2.f90