이 프로그램은 샘플 프로그램(2-3)의 적용된 예입니다. SIMD 프로그래밍을 사용하면 특정 벡터 요소를 스칼라로 참조하거나 스칼라 블록을 단일 벡터로 참조해야 하는 경우가 많습니다. 이 섹션에서는 이러한 요구를 충족하는 참조 방법을 설명하며, 예를 들어 벡터의 세 번째 요소만 출력하거나 스칼라 배열 입력 데이터를 SIMD 처리에 적합한 벡터로 번들링할 수 있습니다. VMX는 개별 SIMD 지침에 대한 기본 제공 기능을 제공합니다. 위의 예에서 9번째 줄의 vec_add()는 VMX 추가 명령에 해당하는 기본 제공 함수를 나타냅니다. 우리는 gcc가 우리를 위해 네 가지 추가 사항을 핸드 코딩했다는 것을 나타내는 많은 반복적 인 지침을 참조하십시오. 이제 CPU의 gcc를 알리는 것을 다시 컴파일하고 다른 살펴 보겠습니다. 이 예제는 인텔에 특정하며 적절한 CPU 이름을 대체합니다. 결과는 G3에서 다르게 보이지만 본질적으로 비슷합니다. SIMD 작업은 비교 명령및 비트 선택 명령을 사용하여 조건부 분기를 제거합니다.

보다 구체적으로, vec_cmpgt() 함수의 비교 명령에 대응하는 내장 함수는 처음에 조건 평가를 위해 사용된다. 처리된 결과 선택의 경우 비트 선택 명령과 관련된 vec_sel() 함수가 사용됩니다. 단일 명령으로 여러 데이터를 처리할 수 있는 SIMD 작업은 멀티미디어 응용 프로그램의 3D 그래픽 및 오디오/비디오 처리에 널리 사용됩니다. 최근에 개발된 여러 프로세서에는 SIMD 작업에 대한 지침이 있습니다(이하 SIMD 지침이라고 함). 예를 들어 인텔 x86의 멀티미디어 확장에서는 SSE 명령및 MMX 명령어가 SIMD 명령으로 정의됩니다. 이 자습서에서 설명하는 셀에는 SPE에서 구현된 PE 및 SPU SIMD 명령어에 구현된 VMX 명령어인 두 가지 유형의 SIMD 명령이 포함되어 있습니다. SIMD 작업에 적합하지 않을 수 있는 데이터의 일반적인 예로는 이미지의 색상 데이터와 3D 그래픽용 3차원 데이터가 있습니다.