>>>>> "Richard" == Richard Henderson <[EMAIL PROTECTED]> writes:

 Richard> 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?

 Richard> Because the interface you're actually supposed to be using
 Richard> is _mm_adds_pu8, which uses an opaque type.  The underlying
 Richard> builtins all use signed vectors because it was simple to
 Richard> 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)?

 Richard> There are.  See _mm_adds_epu8 in emmintrin.h.

Thanks.

The puzzler is that this isn't in the gcc docs.  At least not in a
place I could find.  Not that the MMX builtins are easy to find,
either... 

          paul

Reply via email to