SSE3

SSSE3

Supplemental Streaming SIMD Extensions 3 (SSE3 또는 SSE3S)는 인텔이 작성SIMD 명령어 세트로 SSE 테크놀로지의 4번째 반복입니다.

역사

SSE3는 2006년 6월 26일 코어 마이크로아키텍처를 기반으로 한 인텔 프로세서에서 Woodcrest Xeons와 함께 처음 도입되었습니다.

SSSE3는 TNI(Tejas New Instructions) 또는 MNI(Merom New Instructions)라는 코드네임으로 대응하고 있는 최초의 프로세서 설계에서 사용되고 있습니다.

기능

SSSE3에는 16개의 새로운 개별 명령이 포함되어 있습니다.각 명령은 64비트 MMX 또는 128비트 XMM 레지스터에서 작동할 수 있습니다.따라서 인텔의 자료에는 32개의 새로운 명령이 기재되어 있습니다.다음과 [1]같은 것이 있습니다.

  • 수평 덧셈 또는 뺄셈 연산을 수행하는 12개의 명령.
  • 절대값을 평가하는 여섯 가지 명령입니다.
  • 곱셈 및 덧셈 연산을 수행하는 두 가지 명령은 도트 제품의 평가를 가속화합니다.
  • 패킹된 정수 곱셈 연산을 가속화하고 스케일링을 통해 정수 값을 생성하는 두 가지 명령입니다.
  • 두 번째 셔플 제어 피연산자에 따라 바이트 단위로 in-place 셔플을 수행하는 두 가지 명령입니다.
  • 소스 피연산자의 대응하는 요소의 기호가 0보다 작은 경우, 수신처 피연산자의 패킹된 정수를 부정하는 6개의 명령.
  • 두 오퍼랜드의 합성 데이터를 정렬하는 두 가지 명령입니다.

SSSE3 탑재 CPU

새로운 순서

아래 표에서 satsw(X)는 부호 있는 정수 X를 취하여 -32768보다 작으면 -32768로 변환하고 32767보다 크면 +32767로 변환하며, 그렇지 않으면 변경되지 않습니다.인텔 아키텍처에서는 통상적으로 바이트는 8비트, 워드 16비트, 워드 32비트입니다.「register 」는 MMX 또는 XMM 벡터 [1]레지스터를 나타냅니다.

PSIGNB, PSIGNW, PSIGND 포장된 간판 다른 레지스터의 해당 요소의 부호가 음수인 경우 바이트, 워드 또는 드워드의 레지스터 요소를 부정합니다.
PABSB, PABSW, PABSD 절대 값 재료 바이트, 워드 또는 dwords의 또 다른 계산대의 요소의 절대 가치를 계산대의 요소들을 가득 채운다.
PALIGNR 가득하게 맞아 , 그들의 가치 concatenate고 즉각적인 값 명령에 인코딩에 의한 오프셋에서 register-length 부분을 끄집어 낸 두개 등록하세요.
PSHUFB 순서 섞기 바이트 재료 바이트 A=[a0 a1a2...]및 B=[b0 b1b2...]과[ab0ab1 ab2...]을 가진 대체됩니다;만약 bi복소수의 최고 비트 집합은이라는 것을 제외하면 그것은 0과 함께ith 진입한 레지스터를 감행한다.
PMULHRSW 재료 Pow고등, 스케일과. 레지스터 A와 B부호 있는 16비트 fixed-point 번호 −1.00000000과 +0.99996948 사이에 비어 있는 16비트 단어 처리하다...(예를 들어 0x4000과 0xA000 분무기로 −0.75으로 취급 받는다)여 정확한 라운딩과 함께를 곱하면 된다.
PMADDUBSW 곱셈과 추가 Packed과 Unsigned 바이트의 서명. 레지스터 A와 B에 함께 넣고 증식, 페어,signed-saturate고 가게를 추가한 바이트다.즉,[a0 a1a2…]pmaddubsw[b0 b1b2…])[satsw(a0b0+a1b1)satsw(a2b2+a3b3)…].
PHSUBW, PHSUBD 패킹된 수평 감산(Words 또는 Double Words) 는 레지스터 A = [a0 a1 a2 …]및 B = [b0 b1 b2 …]를 취득하여 [a0-a1 a2-a3 … b0-b1 b2-b3 …]를 출력합니다.
PHSUBSW 패킹된 수평 감산 및 포화 단어 PHSUBW와 비슷하지만 출력 [satsw(a0-a1) satsw(a2-a3) ...satsw(b0-b1) satsw(b2-b3) ...]
PADDW, PADDD 포장된 수평 추가(단어 또는 이중어) 는 레지스터 A = [a0 a1 a2 …]및 B = [b0 b1 b2 …]를 취득하여 [a0+a1 a2+a3 … b0+b1 b2+b3 …]를 출력합니다.
PADSW 포장된 수평 추가 및 포화 단어 PADDW와 비슷하지만 출력 [satsw(a0+a1) satsw(a2+a3) ...satsw(b0+b1) satsw(b2+b3) ...]

「 」를 참조해 주세요.

레퍼런스

  1. ^ a b "2.9.5". Intel 64 and IA-32 Architectures Optimization Reference Manual (PDF) (Technical report). Intel.com. 2016. pp. 92–93. Archived (PDF) from the original on June 20, 2018. Retrieved June 22, 2018.

외부 링크