打印 _mm_cmpeq_epi8 的输出(__m128i 类型)

Printing the output of _mm_cmpeq_epi8 (__m128i type)

Herein 建议使用一种比较两个字符数组的好方法(已接受的答案)。

vsvt 的输出可以用 this 打印到屏幕上,但是比较 v 的结果很奇怪(四个零和随机数)。

如果你想将 __m128i 矢量的内容打印到屏幕上,你可以使用这样的东西:

template<class T> inline void Log(const T * data, size_t size, const std::string & name)
{
    std::cout << name << " = { ";
    for (int i = 0; i < size; i++)
    {
        std::cout << int(data[i]) << " ";
    }
    std::cout << "} " << std::endl;
}

inline void LogU8(const __m128i & value, const std::string & name)
{
    uint8_t buffer[16];
    _mm_storeu_si128((__m128i*)buffer, value);
    Log(buffer, 16, name);
}