From 35497819a63e892f4ebc5275ace4e659944192d3 Mon Sep 17 00:00:00 2001 From: Andrey Semashev Date: Sat, 10 Feb 2018 17:19:03 +0300 Subject: [PATCH] Microoptimization to reduce the number of branches in 128-bit operator==. --- include/boost/atomic/detail/storage_type.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/boost/atomic/detail/storage_type.hpp b/include/boost/atomic/detail/storage_type.hpp index dd37f49..2f21526 100644 --- a/include/boost/atomic/detail/storage_type.hpp +++ b/include/boost/atomic/detail/storage_type.hpp @@ -164,7 +164,7 @@ struct BOOST_ATOMIC_DETAIL_MAY_ALIAS storage128_t BOOST_FORCEINLINE bool operator== (storage128_t const& left, storage128_t const& right) BOOST_NOEXCEPT { - return left.data[0] == right.data[0] && left.data[1] == right.data[1]; + return ((left.data[0] ^ right.data[0]) | (left.data[1] ^ right.data[1])) == 0u; } BOOST_FORCEINLINE bool operator!= (storage128_t const& left, storage128_t const& right) BOOST_NOEXCEPT {