diff --git a/include/bitcoin/system/impl/hash/sha/algorithm_konstant.ipp b/include/bitcoin/system/impl/hash/sha/algorithm_konstant.ipp index f82b9e4c4a..61ddee9f9b 100644 --- a/include/bitcoin/system/impl/hash/sha/algorithm_konstant.ipp +++ b/include/bitcoin/system/impl/hash/sha/algorithm_konstant.ipp @@ -257,7 +257,7 @@ konstant(buffer_t& buffer) NOEXCEPT ////{ //// konstant_(buffer); ////} - ////else if constexpr (vector && !with_clang) + ////else if constexpr (vector) ////{ //// vector_konstant(buffer); ////} diff --git a/include/bitcoin/system/impl/hash/sha/algorithm_parsing.ipp b/include/bitcoin/system/impl/hash/sha/algorithm_parsing.ipp index 6697e38053..4d5dea0a6c 100644 --- a/include/bitcoin/system/impl/hash/sha/algorithm_parsing.ipp +++ b/include/bitcoin/system/impl/hash/sha/algorithm_parsing.ipp @@ -59,14 +59,14 @@ input(buffer_t& buffer, const block_t& block) NOEXCEPT else if constexpr (bc::is_little_endian) { // This optimization is neutral in 4/8/16 lane sha256 perf. - ////if constexpr (have_lanes && !with_clang) + ////if constexpr (have_lanes) ////{ //// using xword_t = to_extended; //// const auto& in = array_cast(block); //// auto& out = array_cast(buffer); //// out[0] = byteswap(in[0]); ////} - ////else if constexpr (have_lanes && !with_clang) + ////else if constexpr (have_lanes) ////{ //// using xword_t = to_extended; //// const auto& in = array_cast(block); @@ -74,7 +74,7 @@ input(buffer_t& buffer, const block_t& block) NOEXCEPT //// out[0] = byteswap(in[0]); //// out[1] = byteswap(in[1]); ////} - ////else if constexpr (have_lanes && !with_clang) + ////else if constexpr (have_lanes) ////{ //// using xword_t = to_extended; //// const auto& in = array_cast(block); @@ -131,14 +131,14 @@ input_left(auto& buffer, const half_t& half) NOEXCEPT else if constexpr (bc::is_little_endian) { // This optimization is neutral in 4/8 lane sha256 perf. - ////if constexpr (have_lanes && !with_clang) + ////if constexpr (have_lanes) ////{ //// using xword_t = to_extended; //// const auto& in = array_cast(half); //// auto& out = array_cast(buffer); //// out[0] = byteswap(in[0]); ////} - ////else if constexpr (have_lanes && !with_clang) + ////else if constexpr (have_lanes) ////{ //// using xword_t = to_extended; //// const auto& in = array_cast(half); @@ -184,14 +184,14 @@ input_right(auto& buffer, const half_t& half) NOEXCEPT else if constexpr (bc::is_little_endian) { // This optimization is neutral in 4/8 lane sha256 perf. - ////if constexpr (have_lanes && !with_clang) + ////if constexpr (have_lanes) ////{ //// using xword_t = to_extended; //// const auto& in = array_cast(half); //// auto& out = array_cast(buffer); //// out[1] = byteswap(in[0]); ////} - ////else if constexpr (have_lanes && !with_clang) + ////else if constexpr (have_lanes) ////{ //// using xword_t = to_extended; //// const auto& in = array_cast(half); @@ -354,7 +354,7 @@ output(const state_t& state) NOEXCEPT if constexpr (SHA::strength != 160) { // This optimization is neutral in 4/8 lane sha256 perf. - ////if constexpr (have_lanes && !with_clang) + ////if constexpr (have_lanes) ////{ //// using xword_t = to_extended; //// const auto& in = array_cast(state); @@ -363,7 +363,7 @@ output(const state_t& state) NOEXCEPT //// byteswap(in[0]) //// }); ////} - ////else if constexpr (have_lanes && !with_clang) + ////else if constexpr (have_lanes) ////{ //// using xword_t = to_extended; //// const auto& in = array_cast(state); diff --git a/include/bitcoin/system/intrinsics/haves.hpp b/include/bitcoin/system/intrinsics/haves.hpp index 908f1aecd1..282c84f5e8 100644 --- a/include/bitcoin/system/intrinsics/haves.hpp +++ b/include/bitcoin/system/intrinsics/haves.hpp @@ -30,13 +30,6 @@ namespace libbitcoin { namespace system { -// HACK: work around vectorizations failing on non-xcode clang. -#if defined(HAVE_CLANG) && !defined(HAVE_XCODE) - constexpr auto with_clang = true; -#else - constexpr auto with_clang = false; -#endif - // Functions may only be constexpr conditionally. BC_PUSH_WARNING(USE_CONSTEXPR_FOR_FUNCTION)