Bill Ackerman <wbackerman@xxxxxxxxx> writes: > But with the "c = __builtin_ia32_paddd(a, b)" statement, it gets this: > > C:\wba\sd>g++ -O4 -msse -Wall t.cpp -o t.exe > t.cpp: In function `int main()': > t.cpp:60: error: cannot convert `int __vector__' to `int __vector__' for argument `1' to > `int __vector__ __builtin_ia32_paddd(int __vector__, int __vector__)' __builtin_ia32_paddd is an MMX operation which applies to V2SI (a 64-bit type), not to V4SI (a 128-bit type). The SSE instrinsic is __builtin_ia32_paddd128. Note that this operation requires -msse2, not just -msse. It's generally easier to avoid the MMX/SSE builtin functions, and to instead use the types and functions defined in mmintrin.h and friends. In this case, _mm_add_epi32, in emmintrin.h. Ian