Cached CPU features, added AVX2, and AVX512.
This commit is contained in:
36
include/ehs/system/AVX512.h
Normal file
36
include/ehs/system/AVX512.h
Normal file
@@ -0,0 +1,36 @@
|
||||
#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);
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user