c++ - 打印 _mm_cmpeq_epi8 的输出(__m128i 类型)

标签 c++ sse simd

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

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

最佳答案

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

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);
}

关于c++ - 打印 _mm_cmpeq_epi8 的输出(__m128i 类型),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34191228/

相关文章:

c++ - 使用指针创建数组

c++ - 我应该如何将 __n128 转换为 __n64x2?

c++ - 在 QThread 中运行长时间操作并向主线程发送信号仍然会卡住 UI

c++ - 使用较新的 SIMD 版本时是否可以使用较旧的 SIMD 版本?

c - 无法检测为什么以下代码未矢量化

linux - .double 数组到 sse 向量和对它们的操作

x86 - SIMD 和 SSE 有什么区别?

c++ - AVX2:有没有办法实现 _mm256_mul_epi8 函数的 2 的恒定幂?

c++ - 使用 CLion 在不同文件中分离 Boost 测试套件的正确方法

c++ - 用boost spirit 完全解码http header value