From 9bcb73af22749534abd255a554c43b41bacdc0be Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Thu, 8 Sep 2022 16:46:13 +0200 Subject: [PATCH] Specialize qMulOverflow<2>(n) as qAddOverflow(n, n) Addition is always more efficient than multiplication. Task-number: QTBUG-104972 Change-Id: Ib945e7df88562a2f4aea00aa319ff837191b8df2 Reviewed-by: Thiago Macieira Reviewed-by: Edward Welbourne (cherry picked from commit 4b5b87c27b803c5bf0fed96c381c5e343b28d419) Reviewed-by: Qt Cherry-pick Bot --- src/corelib/global/qnumeric.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/corelib/global/qnumeric.h b/src/corelib/global/qnumeric.h index d3a74a33e57..337f1e8118b 100644 --- a/src/corelib/global/qnumeric.h +++ b/src/corelib/global/qnumeric.h @@ -312,6 +312,8 @@ template bool qMulOverflow(T v1, std::integral_constant bool qMulOverflow(T v1, T *r) { + if constexpr (V2 == 2) + return qAddOverflow(v1, v1, r); return qMulOverflow(v1, std::integral_constant{}, r); }