On Tue, Aug 23, 2005 at 04:32:42PM -0400, Paul Koning wrote: > 1. Why do _builtin_ia32_paddusb and similar functions take signed > vector arguments, when the hardware primitive is defined to operate > on unsigned vectors?
Because the interface you're actually supposed to be using is _mm_adds_pu8, which uses an opaque type. The underlying builtins all use signed vectors because it was simple to make them all the same. > 2. Why are there no sse equivalents of those functions, ones that > operate on 128 bit values (i.e., paddusb for v16qi vectors)? There are. See _mm_adds_epu8 in emmintrin.h. r~