#pragma once #include "ehs/Types.h" namespace ehs { class AVX512 { public: /// Compares two unaligned 8 element vectors using 64-bit integers. /// @param [in] a First vector. /// @param [in] b Second vector. /// @returns True if all 8 elements are equal. False otherwise. static bool CompareUnaligned(const UInt_64 *a, const UInt_64 *b); /// Compares two unaligned 8 element vectors using 64-bit integers. /// @param [in] a First vector. /// @param [in] b Second vector. /// @returns True if all 8 elements are equal. False otherwise. static bool CompareUnaligned(const SInt_64 *a, const SInt_64 *b); /// Compares two aligned 8 element vectors using 64-bit integers. /// @param [in] a First vector. /// @param [in] b Second vector. /// @returns True if all 8 elements are equal. False otherwise. /// @note The parameters "a", and "b" must have alignas(32). static bool CompareAligned(const UInt_64 *a, const UInt_64 *b); /// Compares two aligned 8 element vectors using 64-bit integers. /// @param [in] a First vector. /// @param [in] b Second vector. /// @returns True if all 8 elements are equal. False otherwise. /// @note The parameters "a", and "b" must have alignas(32). static bool CompareAligned(const SInt_64 *a, const SInt_64 *b); }; }