gpt4 book ai didi

c - _mm_cmpisrm SSE4.2 内在模式

转载 作者:行者123 更新时间:2023-12-04 06:23:17 25 4
gpt4 key购买 nike

我试图弄清楚如何为 _mm_cmpisrm SSE4.2 内在设置“模式”标志。我有一个常规的 C 字符串 (char*),我将它加载到带有 _mm_lddqu_si128 的 __m128i 类型中。我打算使用无符号字节进行常规字符串比较:

    _SIDD_UBYTE_OPS | _SIDD_CMP_EQUAL_EACH

但我对单位与位掩码的设置感到困惑。以下是 GCC 4.3.2 中 smmintrin.h 的宏:
    /* These macros specify the output selection in _mm_cmpXstrm ().  */
#define _SIDD_BIT_MASK 0x00
#define _SIDD_UNIT_MASK 0x40

我想我明白位掩码是什么:如果两个字符串之间该位置的字符不同,我将在位 0..15 中得到 1。但是单位掩码有什么作用呢?

最佳答案

对于 _SIDD_BIT_MASK,如果字符串相等,您将得到一个全为 1 的掩码,如果它们不相等,则全为 0;如果你在做 _SIDD_UBYTE_OPS 那么你会得到 16 返回(字符串中的每个字符一个)。

但是,使用 _SIDD_UNIT_MASK 您将获得相同的掩码,但会消耗到 16 字节 反而。例如,如果字符串中前两个字符的比较为真,则位 0..15 将全部为 1。以及字符二等的位 16..31。

关于c - _mm_cmpisrm SSE4.2 内在模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6315698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com