2012-04-23 1 views
0

SSEとテーブルを比較するcharで2つの文字列charを取得する方法Cでのintrinsicsを使用するには?テーブルをSSE 4.2と比較して2つの文字列charを取得する方法は?

_mm_cmpistrm重要なビットのマスクを返します。これは、テーブル処理結果を比較するcharによるcharの集約関数です。

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

どのように集約funcを呼び出さずに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 

この表I actually need。 (特定のモードEqual_eachに)_mm_cmpistrmの

結果はマスクである:すべての結果を保持するためのSSEレジスタの十分なビットがないため

(0 1 1 1) 
+0

あなたの質問に入力例と必要な出力があるかどうかは不明です。 –

+0

char比較表によるcharとは? – CharlesB

+0

UPD投稿: – udjin

答えて

1

SSE4.2命令が中間テーブルを返しません。 (あなたはいくつかのアイテムだけを検索しているが、それは一般的に真実ではありません。)テーブルを必要とする場合は、縦の列の各文字を一度に1つずつ検索し、自分でテーブルを作成する必要があります。 (申し訳ありません)