@@ -54,10 +54,11 @@ @property (class, readonly, nonatomic) bool supportsSSE42; @property (class, readonly, nonatomic) bool supportsAVX; @property (class, readonly, nonatomic) bool supportsAVX2; @property (class, readonly, nonatomic) bool supportsAESNI; @property (class, readonly, nonatomic) bool supportsSHAExtensions; +@property (class, readonly, nonatomic) bool supportsF16C; @property (class, readonly, nonatomic) bool supportsAVX512Foundation; @property (class, readonly, nonatomic) bool supportsAVX512ConflictDetectionInstructions; @property (class, readonly, nonatomic) bool supportsAVX512ExponentialAndReciprocalInstructions; @@ -77,10 +78,12 @@ @property (class, readonly, nonatomic) bool supportsAVX512VectorNeuralNetworkInstructions; @property (class, readonly, nonatomic) bool supportsAVX512VectorByteManipulationInstructions2; @property (class, readonly, nonatomic) bool supportsAVX512BitAlgorithms; +@property (class, readonly, nonatomic) bool supportsAVX512Float16Instructions; +@property (class, readonly, nonatomic) bool supportsAVX512BFloat16Instructions; # endif # if defined(OF_POWERPC) || defined(OF_POWERPC64) || defined(DOXYGEN) @property (class, readonly, nonatomic) bool supportsAltiVec; # endif # if defined(OF_WINDOWS) || defined(DOXYGEN) @@ -337,10 +340,19 @@ * * @return Whether the CPU supports Intel SHA Extensions */ + (bool)supportsSHAExtensions; +/** + * @brief Returns whether the CPU supports F16C. + * + * @note This method is only available on AMD64 and x86. + * + * @return Whether the CPU supports F16C + */ ++ (bool)supportsF16C; + /** * @brief Returns whether the CPU supports AVX-512 Foundation. * * @note This method is only available on AMD64 and x86. * @@ -464,10 +476,28 @@ * @note This method is only available on AMD64 and x86. * * @return Whether the CPU supports AVX-512 Bit Algorithms */ + (bool)supportsAVX512BitAlgorithms; + +/** + * @brief Returns whether the CPU supports AVX-512 Float16 Instructions. + * + * @note This method is only available on AMD64 and x86. + * + * @return Whether the CPU supports AVX-512 Float16 Instructions + */ ++ (bool)supportsAVX512Float16Instructions; + +/** + * @brief Returns whether the CPU supports AVX-512 BFloat16 Instructions. + * + * @note This method is only available on AMD64 and x86. + * + * @return Whether the CPU supports AVX-512 BFloat16 Instructions + */ ++ (bool)supportsAVX512BFloat16Instructions; #endif #if defined(OF_POWERPC) || defined(OF_POWERPC64) || defined(DOXYGEN) /** * @brief Returns whether the CPU and OS support AltiVec.