(gmp.info.gz) Assembler SIMD Instructions
Info Catalog
(gmp.info.gz) Assembler Floating Point
(gmp.info.gz) Assembler Coding
(gmp.info.gz) Assembler Software Pipelining
SIMD Instructions
-----------------
The single-instruction multiple-data support in current microprocessors
is aimed at signal processing algorithms where each data point can be
treated more or less independently. There's generally not much support
for propagating the sort of carries that arise in GMP.
SIMD multiplications of say four 16x16 bit multiplies only do as much
work as one 32x32 from GMP's point of view, and need some shifts and
adds besides. But of course if say the SIMD form is fully pipelined
and uses less instruction decoding then it may still be worthwhile.
On the x86 chips, MMX has so far found a use in `mpn_rshift' and
`mpn_lshift', and is used in a special case for 16-bit multipliers in
the P55 `mpn_mul_1'. SSE2 is used for Pentium 4 `mpn_mul_1',
`mpn_addmul_1', and `mpn_submul_1'.
Info Catalog
(gmp.info.gz) Assembler Floating Point
(gmp.info.gz) Assembler Coding
(gmp.info.gz) Assembler Software Pipelining
automatically generated byinfo2html