2012-04-23 36 views
0

如何获得两个字符串字符比较表与SSE 4.2内部函数在C?如何获取两个字符串字符比较表与SSE 4.2 char?

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

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

如何通过字符比较表提取字符而没有任何聚合func调用? (也许_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) 
+0

请给出示例输入和所需的输出,因为您的问题目前还不清楚。 – 2012-04-23 14:13:59

+0

什么是字符比较表的字符? – CharlesB 2012-04-23 14:21:02

+0

UPD帖子:新增示例 – udjin 2012-04-23 20:18:57

回答

1

的SSE4.2指令不返回中间表,因为没有在SSE足够的位寄存器,用来存放所有结果。 (如果您只搜索几个项目,但它通常不正确)。如果您需要该表格,则需要一次搜索垂直列中的每个字母并自行构建表格。 (对不起)