Improvements to powerpc32 asm code

Torbjorn Granlund
01 Jun 2003 12:00:24 +0200

Mark Rodenkirch <> writes:

  I see that one of the tasks is the improve the mpn_add_n and
  mpn_sub_n (on powerpc32) to 3.25 cycles per limb.  I have made
  some changes and am in the process of testing them.  If someone
  else is already doing this, I will halt my effort.

In the current GMP development sources, we already have improved
code for addition and subtraction.  But perhaps your code is

  Here are the speed comparisons:


For which powerpc model did you get these timing results?
My code performs very similarly on G3 and the old G4, with
a slight advantage for your code for larger operands.

C                cycles/limb
C 603e:            ?
C 604e:            3.25
C 75x (G3):        3.5
C 7400,7410 (G4):  3.5
C 744x,745x (G4+): 4.25

  To test the changes, I am testing adds and subtracts on values
  from 1 to 30 limbs for base 2 and base 10 numbers.  If there is
  a better means to testing, I would like to know.

The best program to use is probably gmp/tests/devel/try.c.


"Many conspiracy theories are made up by the government.  The purpose
is to undermine public acceptance of genuine conspiracy theories."