C++ “x86intrin.h”的cpu要求?

C++ “x86intrin.h”的cpu要求?,c++,random,intel,intrinsics,C++,Random,Intel,Intrinsics,您好,我认为运行x86intrin.h的最低CPU要求是英特尔第三代处理器 但是,当我运行此代码时 _rdseed64_step(&temp2); 我得到以下错误 error: inlining failed in call to always_inline 'int _rdseed64_step(long long unsigned int*)': target specific option mismatch _rdseed64_步进(无符号长*_\p) 我已将标志设置为marc

您好,我认为运行
x86intrin.h
的最低CPU要求是英特尔第三代处理器

但是,当我运行此代码时

_rdseed64_step(&temp2);
我得到以下错误

error: inlining failed in call to always_inline 'int _rdseed64_step(long long unsigned int*)': target specific option mismatch
_rdseed64_步进(无符号长*_\p)

我已将标志设置为
march=native
,仅在我使用台式机时出现,当我在运行第6代处理器的笔记本电脑上运行时,它工作正常。

来自:

对应的第四代Intel®Core™ 指令是种子


因此,您似乎无法在第三代处理器上使用它。

请提供一个,并注意您的编译器及其版本。“英特尔第三代处理器”通常被视为英特尔系列(如果不计算在内,则第三代处理器为第三代处理器)。你是说第三代架构吗?第三代处理器的RDSEED有什么等价物?@albusSimba我想没有等价物。您可能希望在调用之前执行功能检查。参见@albusSimba:rdrand有
rdrand
(IvyBridge和更新版本,我认为还有一些AMD),但它并没有提供那么有力的保证。使用多个
rdrand
结果可能不适合植入PRNG的状态,至少在理论上,如果它需要加密安全的话。但是,
rdrand
可以安全地为状态只有64位或更少的PRNG设定种子。