我正在使用内部函数对Xeon Phi进行条件计算 . 我必须使用双值,所以我需要一个__mmask8 . 只要我使用一些比较函数对我来说没有问题,但如果我想修改这些掩码,我会遇到一些类型的冲突 . documentation给了我很多函数来修改用于单精度的__mmask16,没有一个函数可用于双精度 .
我想做一些像下面这样的事情:
int tmp = 0;
for(i = 0; i < 8; i++) {
tmp = index[i];
tmp = tmp << 1;
}
__mmask8 something = _mm512_int2mask(tmp);
该文档仅为__mmask16提供给定的函数 . 文档Vector Mask Intrinsic chapter中的所有操作函数都是如此 .
我也可以使用这些功能吗?
是否有像“使用__mmask16的每一秒”这样的约定?
提前致谢
1 回答
根据http://software.intel.com/en-us/articles/intel-xeon-phi-coprocessor-vector-microarchitecture
英特尔不提供任何用于操作__mmask8类型的内在函数;所有的内在函数都是__mmask16 . 因此,我假设我们只需使用__mmask16内在函数来操作__mask8类型 . 这似乎有效,但到目前为止我对这些方面的经验很少 .