1
SSE 명령어를 사용하여 정수 값을 곱하고 더하는 프로그램을 작성하고 있습니다. 나는 float로 같은 프로그램을했지만 내 정수 버전에 대한 설명이 빠져있다. 내 모든 작업을 완료 한 후 수레와SIMD 정수 저장소
는, 내가하고 일반 float 배열로 다시 드 값을 반환 :
_mm_store_ps(temp4,temp3);
temp4는 플로트 *이며, __m128을 TEMP3.
문제는 내가 intengers에 대한 비슷한 내장을 찾을 수 없다는 것입니다. 어떻게 값을 일반 배열로 반환해야합니까?
감사합니다 귀하의 답변에 대한 많은)
하지만 _mm_store_si128 (__m128i * p, __m128i)은 데이터를 _128i 유형으로 올바르게 이동하고 있습니까? _mm_store_ps를 사용하여 데이터를 플로트 배열로 이동했습니다. 정수 배열로 정수가 필요하면 _mm_store_si128을 사용할 수 있습니까? 나는 캐스트를 할 수 있다고 생각하지만 캐스트가 꽤 느립니다. 고맙습니다;) – Thudor
예, 저장하고 있던 포인터를 캐스팅해야합니다. 이 유형의 주조는 전적으로 무료입니다 (캐스트를 올바르게받을 의무가 있지만!). – gsg