如何通过char比较表与SSE 4.2获取两个字符串char?

时间:2012-04-23 14:11:36

标签: string sse string-matching intrinsics sse4

如何通过char比较表与SS中的SSE 4.2内在函数来获取两个字符串char?

_mm_cmpistrm返回重要位的掩码,即通过char比较表处理结果在char上聚合函数。

__m128i _mm_cmpistrm (
   __m128i a, 
   __m128i b, 
   const int mode
); 

如何通过char比较表提取char而不调用任何聚合函数? (也许_SIDD_UNIT_MASK ......)

示例:

      A T G A
    A 1 0 0 1
    G 0 0 1 0
    T 0 1 0 0
    C 0 0 0 0

此表格actually need

_mm_cmpistrm(在特定模式Equal_each上)的结果是掩码:

    (0 1 1 1)

1 个答案:

答案 0 :(得分:1)

SSE4.2指令不返回中间表,因为SSE寄存器中没有足够的位来保存所有结果。 (如果你只搜索一些项目,它们就可以了,但通常情况并非如此。)如果你想要表格,你需要一次一个地搜索垂直列中的每个字母并自己构建表格。 (对不起。)