问题描述
英特尔C ++编译器和/或GCC是否支持以下内在函数,如自2012/2013年以来的MSVC?
Does Intel C++ compiler and/or GCC support the following intrinsics, like MSVC does since 2012 / 2013?
int _rdrand16_step(uint16_t*);
int _rdrand32_step(uint32_t*);
int _rdrand64_step(uint64_t*);
int _rdseed16_step(uint16_t*);
int _rdseed32_step(uint32_t*);
int _rdseed64_step(uint64_t*);
如果支持这些内在函数,因为它们支持哪些版本(使用编译时常数)?
And if these intrinsics are supported, since which version are they supported (with compile-time-constant please)?
推荐答案
GCC和英特尔编译器都支持它们。 GCC支持在2010年年底引入。它们需要标题< immintrin.h>
。
Both GCC and Intel compiler support them. GCC support was introduced at the end of 2010. They require the header <immintrin.h>
.
GCC支持至少已经存在4.6版本,但似乎没有任何特定的编译时常数 - 你可以检查 __ GNUC_MAJOR__> 4 || (__GNUC_MAJOR__ == 4&& __GNUC_MINOR__> = 6)
。
GCC support has been present since at least version 4.6, but there doesn't seem to be any specific compile-time constant - you can just check __GNUC_MAJOR__ > 4 || (__GNUC_MAJOR__ == 4 && __GNUC_MINOR__ >= 6)
.
这篇关于RDRAND和RDSEED内在函数GCC和Intel C ++的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!