From 3070b502b5d63ce8c9770ca68ff88a3afa750a0d Mon Sep 17 00:00:00 2001 From: Cedric Nugteren Date: Sun, 18 Jun 2017 20:51:11 +0200 Subject: Fixed an overflow bug on 32-bit systems when chosing a GEMM kernel --- src/routines/level3/xgemm.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/routines/level3/xgemm.cpp b/src/routines/level3/xgemm.cpp index 658b22d0..30e5999c 100644 --- a/src/routines/level3/xgemm.cpp +++ b/src/routines/level3/xgemm.cpp @@ -102,7 +102,9 @@ void Xgemm::DoGemm(const Layout layout, TestMatrixC(c_one, c_two, c_buffer, c_offset, c_ld); // Selects which version of GEMM to run - const auto do_gemm_direct = (m * n * k < db_["XGEMM_MIN_INDIRECT_SIZE"]); + const auto m_n_k = static_cast(m) * static_cast(n) * + static_cast(k); + const auto do_gemm_direct = (m_n_k < static_cast(db_["XGEMM_MIN_INDIRECT_SIZE"])); if (do_gemm_direct) { // for small sizes (single kernel) GemmDirect(m, n, k, alpha, a_buffer, a_offset, a_ld, b_buffer, b_offset, b_ld, beta, -- cgit v1.2.3