2012-04-23 7 views
0

char에서 SSE와 테이블을 비교하여 두 개의 문자열 char을 얻는 방법 C에서 4.2 intrinsics를?SSE 4.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. SSE 충분한 비트 결과를 모두 보유하는 레지스터가 없기 때문에

(0 1 1 1) 
+0

예제 입력과 필요한 출력은 질문과 같이 명확하지 않습니다. –

+0

char 비교 테이블에 의한 char이란 무엇입니까? – CharlesB

+0

UPD 게시물 : 추가 된 예 – udjin

답변

1

SSE4.2 명령어가 중간 테이블을 반환하지 않는 (특정 모드 Equal_each)에 _mm_cmpistrm의

결과 마스크이며 . (몇 가지 항목 만 검색하는 것은 가능하지만 일반적으로 사실이 아닙니다.) 표를 원한다면 세로 열에있는 각 글자를 한 번에 하나씩 검색하여 직접 테이블을 작성해야합니다. (죄송합니다.)