2012-04-23 4 views
0

Как получить два строковых символа путем сравнения таблицы с встроенными функциями SSE 4.2 в C?Как получить два строковых символа путем сравнения таблицы с SSE 4.2?

_mm_cmpistrm возвращает маску важных бит, то есть агрегирует функцию на char путем сравнения результата обработки таблицы.

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

Как извлечь char путем сравнения таблицы без использования функции funcing 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

Просьба указать пример ввода и требуемый результат, так как ваш вопрос неясен, поскольку он стоит. –

+0

Что такое символ по таблице сравнения? – CharlesB

+0

UPD сообщение: добавлен пример – udjin

ответ

1

инструкции SSE4.2 не возвращают промежуточную таблицу, потому что не хватает биты в SSE регистр, содержащий все результаты , (Они могут, если вы ищете только несколько элементов, но обычно это не так.) Если вам нужна таблица, вам нужно будет искать каждую букву в вертикальном столбце по одному и строить таблицу самостоятельно. (извините.)

 Смежные вопросы

  • Нет связанных вопросов^_^