Skip to content

Optimize Signed Division #18

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
8 of 9 tasks
mborland opened this issue Apr 11, 2025 · 10 comments · Fixed by #67 or #72
Closed
8 of 9 tasks

Optimize Signed Division #18

mborland opened this issue Apr 11, 2025 · 10 comments · Fixed by #67 or #72
Assignees
Labels
Optimization Make Something Faster

Comments

@mborland
Copy link
Member

mborland commented Apr 11, 2025

Optimization List:

  • ARM Mac
  • x64 Linux
  • x86 Linux
  • ARM64 Linux
  • ARM32 Linux
  • s390x Linux
  • x64 Windows
  • x86 Windows
  • PPC64LE Linux
@mborland mborland reopened this May 1, 2025
@mborland mborland self-assigned this May 1, 2025
@mborland mborland added the Optimization Make Something Faster label May 1, 2025
@mborland
Copy link
Member Author

mborland commented May 1, 2025

ARM (M4) Mac with clang-20:

====== BEGIN OUTPUT ======

---------------------------
Two Word Operations
---------------------------

EQ <builtin    >: 23024      us (s=0)
NE <builtin    >: 22998      us (s=99999995)
LT <builtin    >: 22949      us (s=49997340)
LE <builtin    >: 23001      us (s=49997340)
GT <builtin    >: 23371      us (s=50002655)
GE <builtin    >: 23200      us (s=50002655)
SUM<builtin    >: 138695     us (s=50002655)

EQ <library    >: 24420      us (s=0)
NE <library    >: 25745      us (s=99999995)
LT <library    >: 23949      us (s=49997340)
LE <library    >: 23903      us (s=49997340)
GT <library    >: 23004      us (s=50002655)
GE <library    >: 23151      us (s=50002655)
SUM<library    >: 144305     us (s=50002655)

EQ <mp::i128   >: 58817      us (s=0)
NE <mp::i128   >: 38706      us (s=99999995)
LT <mp::i128   >: 59884      us (s=49997340)
LE <mp::i128   >: 71124      us (s=49997340)
GT <mp::i128   >: 70155      us (s=50002655)
GE <mp::i128   >: 59037      us (s=50002655)
SUM<mp::i128   >: 357863     us (s=50002655)


add<Builtin    >: 36459      us (s=7061247353260042742)
add<Library    >: 17841      us (s=7061247353260042742)
add<mp::i128   >: 170905     us (s=-8643776743815040341)

sub<Builtin    >: 19667      us (s=-89144910062960076)
sub<Library    >: 17361      us (s=-89144910062960076)
sub<mp::i128   >: 164912     us (s=3175220422005773202)

mul<Builtin    >: 19922      us (s=1771533121646374909)
mul<Library    >: 18646      us (s=1771533121646374909)
mul<mp::i128   >: 77785      us (s=9223372036754775813)

div<Builtin    >: 396834     us (s=889346420)
div<Library    >: 399743     us (s=889346420)
div<mp::i128   >: 608243     us (s=889346420)


---------------------------
One Word Operations
---------------------------

EQ <builtin    >: 22414      us (s=0)
NE <builtin    >: 22063      us (s=99999995)
LT <builtin    >: 22030      us (s=49989400)
LE <builtin    >: 22029      us (s=49989400)
GT <builtin    >: 21495      us (s=50010595)
GE <builtin    >: 21726      us (s=50010595)
SUM<builtin    >: 131901     us (s=50010595)

EQ <library    >: 21861      us (s=0)
NE <library    >: 21876      us (s=99999995)
LT <library    >: 21865      us (s=49989400)
LE <library    >: 21895      us (s=49989400)
GT <library    >: 21928      us (s=50010595)
GE <library    >: 21897      us (s=50010595)
SUM<library    >: 131416     us (s=50010595)

EQ <mp::i128   >: 36433      us (s=0)
NE <mp::i128   >: 36391      us (s=99999995)
LT <mp::i128   >: 59739      us (s=49989400)
LE <mp::i128   >: 70438      us (s=49989400)
GT <mp::i128   >: 79805      us (s=50010595)
GE <mp::i128   >: 59213      us (s=50010595)
SUM<mp::i128   >: 342179     us (s=50010595)


add<Builtin    >: 20128      us (s=6185515908288643546)
add<Library    >: 17932      us (s=6185515908288643546)
add<mp::i128   >: 168580     us (s=9223372036754775813)

sub<Builtin    >: 20070      us (s=6843120887274356308)
sub<Library    >: 17570      us (s=6843120887274356308)
sub<mp::i128   >: 169826     us (s=9223372036804765213)

mul<Builtin    >: 19720      us (s=4541227745721732167)
mul<Library    >: 18243      us (s=4541227745721732167)
mul<mp::i128   >: 78533      us (s=9223372036754775813)

div<Builtin    >: 581960     us (s=750403075)
div<Library    >: 605686     us (s=750403075)
div<mp::i128   >: 859261     us (s=750403075)


---------------------------
Two-One Word Operations
---------------------------

EQ <builtin    >: 21984      us (s=0)
NE <builtin    >: 21849      us (s=99999995)
LT <builtin    >: 22289      us (s=49999995)
LE <builtin    >: 22846      us (s=49999995)
GT <builtin    >: 22358      us (s=50000000)
GE <builtin    >: 22290      us (s=50000000)
SUM<builtin    >: 133764     us (s=50000000)

EQ <library    >: 22357      us (s=0)
NE <library    >: 22284      us (s=99999995)
LT <library    >: 22276      us (s=49999995)
LE <library    >: 22256      us (s=49999995)
GT <library    >: 21989      us (s=50000000)
GE <library    >: 21506      us (s=50000000)
SUM<library    >: 132778     us (s=50000000)

EQ <mp::i128   >: 47498      us (s=0)
NE <mp::i128   >: 36607      us (s=99999995)
LT <mp::i128   >: 59355      us (s=49999995)
LE <mp::i128   >: 71850      us (s=49999995)
GT <mp::i128   >: 72398      us (s=50000000)
GE <mp::i128   >: 59442      us (s=50000000)
SUM<mp::i128   >: 347300     us (s=50000000)


add<Builtin    >: 20427      us (s=343956012596809285)
add<Library    >: 17947      us (s=343956012596809285)
add<mp::i128   >: 171081     us (s=9223372036754775813)

sub<Builtin    >: 20136      us (s=-3653511415782518285)
sub<Library    >: 17684      us (s=-3653511415782518285)
sub<mp::i128   >: 170021     us (s=9223372036804775808)

mul<Builtin    >: 20455      us (s=-4123520334931000621)
mul<Library    >: 19189      us (s=-4123520334931000621)
mul<mp::i128   >: 81696      us (s=9223372036754775813)

div<Builtin    >: 625094     us (s=2795031854958482156)
div<Library    >: 611036     us (s=2795031854958482156)
div<mp::i128   >: 931994     us (s=3865307960465073553)


---------------------------
One-Two Word Operations
---------------------------

EQ <builtin    >: 23112      us (s=0)
NE <builtin    >: 22805      us (s=99999995)
LT <builtin    >: 22801      us (s=50000000)
LE <builtin    >: 22890      us (s=50000000)
GT <builtin    >: 22740      us (s=49999995)
GE <builtin    >: 22622      us (s=49999995)
SUM<builtin    >: 137160     us (s=49999995)

EQ <library    >: 22795      us (s=0)
NE <library    >: 22799      us (s=99999995)
LT <library    >: 22673      us (s=50000000)
LE <library    >: 22868      us (s=50000000)
GT <library    >: 22704      us (s=49999995)
GE <library    >: 22823      us (s=49999995)
SUM<library    >: 136834     us (s=49999995)

EQ <mp::i128   >: 38739      us (s=0)
NE <mp::i128   >: 38269      us (s=99999995)
LT <mp::i128   >: 63760      us (s=50000000)
LE <mp::i128   >: 74000      us (s=50000000)
GT <mp::i128   >: 74006      us (s=49999995)
GE <mp::i128   >: 60453      us (s=49999995)
SUM<mp::i128   >: 349391     us (s=49999995)


add<Builtin    >: 21257      us (s=-7830799847379348713)
add<Library    >: 18900      us (s=-7830799847379348713)
add<mp::i128   >: 181080     us (s=9223372036754775813)

sub<Builtin    >: 20649      us (s=7057049957990609625)
sub<Library    >: 19489      us (s=7057049957990609625)
sub<mp::i128   >: 179636     us (s=9223372036804775813)

mul<Builtin    >: 24149      us (s=-3342987143770793731)
mul<Library    >: 19791      us (s=-3342987143770793731)
mul<mp::i128   >: 79902      us (s=9223372036754775813)

div<Builtin    >: 643277     us (s=-5152117665527433319)
div<Library    >: 643113     us (s=-5152117665527433319)
div<mp::i128   >: 957122     us (s=-4173036436386198528)


---------------------------
Random Width Operations
---------------------------

EQ <builtin    >: 22714      us (s=0)
NE <builtin    >: 22890      us (s=99999995)
LT <builtin    >: 22707      us (s=49990110)
LE <builtin    >: 22832      us (s=49990110)
GT <builtin    >: 22688      us (s=50009885)
GE <builtin    >: 23039      us (s=50009885)
SUM<builtin    >: 137038     us (s=50009885)

EQ <library    >: 22608      us (s=0)
NE <library    >: 22662      us (s=99999995)
LT <library    >: 22543      us (s=49990110)
LE <library    >: 22848      us (s=49990110)
GT <library    >: 22791      us (s=50009885)
GE <library    >: 22834      us (s=50009885)
SUM<library    >: 136469     us (s=50009885)

EQ <mp::i128   >: 38414      us (s=0)
NE <mp::i128   >: 40019      us (s=99999995)
LT <mp::i128   >: 63686      us (s=49990110)
LE <mp::i128   >: 77437      us (s=49990110)
GT <mp::i128   >: 74973      us (s=50009885)
GE <mp::i128   >: 60992      us (s=50009885)
SUM<mp::i128   >: 355728     us (s=50009885)


add<Builtin    >: 21158      us (s=905614408289710516)
add<Library    >: 18840      us (s=905614408289710516)
add<mp::i128   >: 180602     us (s=7873664836940499810)

sub<Builtin    >: 21210      us (s=-1895926019385266388)
sub<Library    >: 19195      us (s=-1895926019385266388)
sub<mp::i128   >: 180142     us (s=-223226570233993525)

mul<Builtin    >: 21110      us (s=-81456132806727148)
mul<Library    >: 19941      us (s=-81456132806727148)
mul<mp::i128   >: 80261      us (s=9223372036754775813)

div<Builtin    >: 714487     us (s=360392178413084323)
div<Library    >: 727757     us (s=360392178413084323)
div<mp::i128   >: 1021940    us (s=2105436305502276435)


EXIT STATUS: 1
====== END OUTPUT ======

@mborland
Copy link
Member Author

mborland commented May 1, 2025

ARM32 Linux - GCC 14:

---------------------------
Two Word Operations
---------------------------

EQ <library    >: 665169     us (s=0)
NE <library    >: 1500434    us (s=99999995)
LT <library    >: 1671570    us (s=49997340)
LE <library    >: 1697569    us (s=49997340)
GT <library    >: 1817454    us (s=50002655)
GE <library    >: 847932     us (s=50002655)
SUM<library    >: 8201572    us (s=50002655)

EQ <mp::i128   >: 836334     us (s=0)
NE <mp::i128   >: 873295     us (s=99999995)
LT <mp::i128   >: 1129728    us (s=49997340)
LE <mp::i128   >: 1094130    us (s=49997340)
GT <mp::i128   >: 1133790    us (s=50002655)
GE <mp::i128   >: 1129619    us (s=50002655)
SUM<mp::i128   >: 6197473    us (s=50002655)


add<Library    >: 447002     us (s=7061247353260042742)
add<mp::i128   >: 3503480    us (s=-8643776743815040341)

sub<Library    >: 489980     us (s=-89144910062960076)
sub<mp::i128   >: 4011266    us (s=3175220422005773202)

mul<Library    >: 1825239    us (s=1771533121646374909)
mul<mp::i128   >: 7727313    us (s=9223372036754775813)

div<Library    >: 5188017    us (s=889346420)
div<mp::i128   >: 18716527   us (s=889346420)


---------------------------
One Word Operations
---------------------------

EQ <library    >: 489260     us (s=0)
NE <library    >: 520463     us (s=99999995)
LT <library    >: 829633     us (s=50001210)
LE <library    >: 825312     us (s=50001210)
GT <library    >: 1622476    us (s=49998785)
GE <library    >: 821222     us (s=49998785)
SUM<library    >: 5108726    us (s=49998785)

EQ <mp::i128   >: 835999     us (s=0)
NE <mp::i128   >: 889031     us (s=99999995)
LT <mp::i128   >: 1111240    us (s=50001210)
LE <mp::i128   >: 1110092    us (s=50001210)
GT <mp::i128   >: 1144510    us (s=49998785)
GE <mp::i128   >: 1136231    us (s=49998785)
SUM<mp::i128   >: 6227413    us (s=49998785)


add<Library    >: 463235     us (s=-1608758599675858974)
add<mp::i128   >: 3835532    us (s=9223372036754775813)

sub<Library    >: 492114     us (s=1308154533185980322)
sub<mp::i128   >: 4426138    us (s=9223372036804777023)

mul<Library    >: 1935923    us (s=4235063602502518112)
mul<mp::i128   >: 9816703    us (s=9223372036754775813)

div<Library    >: 9874188    us (s=900262295)
div<mp::i128   >: 19898527   us (s=900262295)


---------------------------
Two-One Word Operations
---------------------------

EQ <library    >: 490244     us (s=0)
NE <library    >: 519436     us (s=99999995)
LT <library    >: 608805     us (s=49999995)
LE <library    >: 605769     us (s=49999995)
GT <library    >: 1445559    us (s=50000000)
GE <library    >: 605871     us (s=50000000)
SUM<library    >: 4276184    us (s=50000000)

EQ <mp::i128   >: 568824     us (s=0)
NE <mp::i128   >: 572959     us (s=99999995)
LT <mp::i128   >: 714187     us (s=49999995)
LE <mp::i128   >: 716286     us (s=49999995)
GT <mp::i128   >: 725721     us (s=50000000)
GE <mp::i128   >: 732446     us (s=50000000)
SUM<mp::i128   >: 4030800    us (s=50000000)


add<Library    >: 460820     us (s=-7945576524491968611)
add<mp::i128   >: 7834373    us (s=9223372036754775813)

sub<Library    >: 492187     us (s=-9082596812355248571)
sub<mp::i128   >: 7411047    us (s=9223372036804775808)

mul<Library    >: 1931274    us (s=-6535978269425683694)
mul<mp::i128   >: 9233034    us (s=9223372036754775813)

div<Library    >: 29543032   us (s=5729662311412654039)
div<mp::i128   >: 51586955   us (s=1098691936500618436)


---------------------------
One-Two Word Operations
---------------------------

EQ <library    >: 489704     us (s=0)
NE <library    >: 521438     us (s=99999995)
LT <library    >: 609350     us (s=50000000)
LE <library    >: 605611     us (s=50000000)
GT <library    >: 1445178    us (s=49999995)
GE <library    >: 607428     us (s=49999995)
SUM<library    >: 4279093    us (s=49999995)

EQ <mp::i128   >: 567765     us (s=0)
NE <mp::i128   >: 572883     us (s=99999995)
LT <mp::i128   >: 713028     us (s=50000000)
LE <mp::i128   >: 713620     us (s=50000000)
GT <mp::i128   >: 727772     us (s=49999995)
GE <mp::i128   >: 734543     us (s=49999995)
SUM<mp::i128   >: 4030054    us (s=49999995)


add<Library    >: 461762     us (s=-7632121502271112136)
add<mp::i128   >: 7863749    us (s=9223372036754775813)

sub<Library    >: 490509     us (s=-9050692239133446570)
sub<mp::i128   >: 7383960    us (s=9223372036804775813)

mul<Library    >: 1939128    us (s=5930197369055922552)
mul<mp::i128   >: 9325276    us (s=9223372036754775813)

div<Library    >: 29718039   us (s=-8962943385495742905)
div<mp::i128   >: 52279072   us (s=4852830313301773108)


---------------------------
Random Width Operations
---------------------------

EQ <library    >: 668947     us (s=0)
NE <library    >: 940330     us (s=99999995)
LT <library    >: 1168150    us (s=50010405)
LE <library    >: 1155379    us (s=50010405)
GT <library    >: 1762416    us (s=49989590)
GE <library    >: 923632     us (s=49989590)
SUM<library    >: 6619215    us (s=49989590)

EQ <mp::i128   >: 894108     us (s=0)
NE <mp::i128   >: 922170     us (s=99999995)
LT <mp::i128   >: 1149196    us (s=50010405)
LE <mp::i128   >: 1151256    us (s=50010405)
GT <mp::i128   >: 1135265    us (s=49989590)
GE <mp::i128   >: 1132652    us (s=49989590)
SUM<mp::i128   >: 6385035    us (s=49989590)


add<Library    >: 464581     us (s=-1608758599675858974)
add<mp::i128   >: 6065977    us (s=5046729477589429899)

sub<Library    >: 493213     us (s=1308154533185980322)
sub<mp::i128   >: 6329539    us (s=6183925798346463874)

mul<Library    >: 1934912    us (s=4235063602502518112)
mul<mp::i128   >: 9336812    us (s=9223372036754775813)

div<Library    >: 19319622   us (s=4547992906303333629)
div<mp::i128   >: 36151865   us (s=6712728542708063247)

@mborland
Copy link
Member Author

mborland commented May 1, 2025

ARM64 Linux - GCC13:

====== BEGIN OUTPUT ======

---------------------------
Two Word Operations
---------------------------

EQ <builtin    >: 184287     us (s=0)
NE <builtin    >: 219756     us (s=99999995)
LT <builtin    >: 833981     us (s=49997340)
LE <builtin    >: 751150     us (s=49997340)
GT <builtin    >: 669246     us (s=50002655)
GE <builtin    >: 667512     us (s=50002655)
SUM<builtin    >: 3326172    us (s=50002655)

EQ <library    >: 256216     us (s=0)
NE <library    >: 220493     us (s=99999995)
LT <library    >: 140103     us (s=49997340)
LE <library    >: 200149     us (s=49997340)
GT <library    >: 134154     us (s=50002655)
GE <library    >: 256541     us (s=50002655)
SUM<library    >: 1207888    us (s=50002655)

EQ <mp::i128   >: 735045     us (s=0)
NE <mp::i128   >: 775457     us (s=99999995)
LT <mp::i128   >: 715680     us (s=49997340)
LE <mp::i128   >: 762153     us (s=49997340)
GT <mp::i128   >: 847605     us (s=50002655)
GE <mp::i128   >: 786042     us (s=50002655)
SUM<mp::i128   >: 4624233    us (s=50002655)


add<Builtin    >: 180747     us (s=7061247353260042742)
add<Library    >: 98771      us (s=7061247353260042742)
add<mp::i128   >: 865581     us (s=-8643776743815040341)

sub<Builtin    >: 157370     us (s=-89144910062960076)
sub<Library    >: 128548     us (s=-89144910062960076)
sub<mp::i128   >: 1159308    us (s=3175220422005773202)

mul<Builtin    >: 219836     us (s=1771533121646374909)
mul<Library    >: 332113     us (s=1771533121646374909)
mul<mp::i128   >: 780867     us (s=9223372036754775813)

div<Builtin    >: 1656388    us (s=889346420)
div<Library    >: 1933777    us (s=889346420)
div<mp::i128   >: 1999500    us (s=889346420)


---------------------------
One Word Operations
---------------------------

EQ <builtin    >: 375494     us (s=0)
NE <builtin    >: 205201     us (s=99999995)
LT <builtin    >: 1011452    us (s=49996085)
LE <builtin    >: 1138156    us (s=49996085)
GT <builtin    >: 834398     us (s=50003910)
GE <builtin    >: 674507     us (s=50003910)
SUM<builtin    >: 4239487    us (s=50003910)

EQ <library    >: 269170     us (s=0)
NE <library    >: 160051     us (s=99999995)
LT <library    >: 266901     us (s=49996085)
LE <library    >: 224111     us (s=49996085)
GT <library    >: 276042     us (s=50003910)
GE <library    >: 261388     us (s=50003910)
SUM<library    >: 1457982    us (s=50003910)

EQ <mp::i128   >: 1126187    us (s=0)
NE <mp::i128   >: 880330     us (s=99999995)
LT <mp::i128   >: 1024706    us (s=49996085)
LE <mp::i128   >: 1109788    us (s=49996085)
GT <mp::i128   >: 1377888    us (s=50003910)
GE <mp::i128   >: 798923     us (s=50003910)
SUM<mp::i128   >: 6318199    us (s=50003910)


add<Builtin    >: 200680     us (s=6185515908288643546)
add<Library    >: 108660     us (s=6185515908288643546)
add<mp::i128   >: 450214     us (s=9223372036754775813)

sub<Builtin    >: 203549     us (s=6843120887274356308)
sub<Library    >: 204559     us (s=6843120887274356308)
sub<mp::i128   >: 916118     us (s=9223372036804771898)

mul<Builtin    >: 208152     us (s=4541227745721732167)
mul<Library    >: 340629     us (s=4541227745721732167)
mul<mp::i128   >: 743788     us (s=9223372036754775813)

div<Builtin    >: 1671922    us (s=842110335)
div<Library    >: 1526757    us (s=842110335)
div<mp::i128   >: 2728475    us (s=842110335)


---------------------------
Two-One Word Operations
---------------------------

EQ <builtin    >: 165300     us (s=0)
NE <builtin    >: 219199     us (s=99999995)
LT <builtin    >: 273089     us (s=49999995)
LE <builtin    >: 302843     us (s=49999995)
GT <builtin    >: 187031     us (s=50000000)
GE <builtin    >: 219624     us (s=50000000)
SUM<builtin    >: 1367359    us (s=50000000)

EQ <library    >: 166418     us (s=0)
NE <library    >: 159404     us (s=99999995)
LT <library    >: 141726     us (s=49999995)
LE <library    >: 207963     us (s=49999995)
GT <library    >: 220286     us (s=50000000)
GE <library    >: 139745     us (s=50000000)
SUM<library    >: 1035815    us (s=50000000)

EQ <mp::i128   >: 666524     us (s=0)
NE <mp::i128   >: 359978     us (s=99999995)
LT <mp::i128   >: 362396     us (s=49999995)
LE <mp::i128   >: 425788     us (s=49999995)
GT <mp::i128   >: 340406     us (s=50000000)
GE <mp::i128   >: 433382     us (s=50000000)
SUM<mp::i128   >: 2588739    us (s=50000000)


add<Builtin    >: 198127     us (s=343956012596809285)
add<Library    >: 104662     us (s=343956012596809285)
add<mp::i128   >: 314561     us (s=9223372036754775813)

sub<Builtin    >: 195728     us (s=-3653511415782518285)
sub<Library    >: 134097     us (s=-3653511415782518285)
sub<mp::i128   >: 426488     us (s=9223372036804775808)

mul<Builtin    >: 232462     us (s=-4123520334931000621)
mul<Library    >: 250928     us (s=-4123520334931000621)
mul<mp::i128   >: 743382     us (s=9223372036754775813)

div<Builtin    >: 2243890    us (s=-7811173908556072441)
div<Library    >: 2131232    us (s=-7811173908556072441)
div<mp::i128   >: 2638151    us (s=-5320619359650184725)


---------------------------
One-Two Word Operations
---------------------------

EQ <builtin    >: 251746     us (s=0)
NE <builtin    >: 156607     us (s=99999995)
LT <builtin    >: 377179     us (s=50000000)
LE <builtin    >: 252238     us (s=50000000)
GT <builtin    >: 218794     us (s=49999995)
GE <builtin    >: 314604     us (s=49999995)
SUM<builtin    >: 1571405    us (s=49999995)

EQ <library    >: 144151     us (s=0)
NE <library    >: 219274     us (s=99999995)
LT <library    >: 127531     us (s=50000000)
LE <library    >: 153287     us (s=50000000)
GT <library    >: 129303     us (s=49999995)
GE <library    >: 150583     us (s=49999995)
SUM<library    >: 924362     us (s=49999995)

EQ <mp::i128   >: 567107     us (s=0)
NE <mp::i128   >: 357793     us (s=99999995)
LT <mp::i128   >: 448882     us (s=50000000)
LE <mp::i128   >: 332104     us (s=50000000)
GT <mp::i128   >: 331638     us (s=49999995)
GE <mp::i128   >: 418847     us (s=49999995)
SUM<mp::i128   >: 2456606    us (s=49999995)


add<Builtin    >: 150126     us (s=-7830799847379348713)
add<Library    >: 188471     us (s=-7830799847379348713)
add<mp::i128   >: 325873     us (s=9223372036754775813)

sub<Builtin    >: 135760     us (s=7057049957990609625)
sub<Library    >: 107225     us (s=7057049957990609625)
sub<mp::i128   >: 625011     us (s=9223372036804775813)

mul<Builtin    >: 288339     us (s=-3342987143770793731)
mul<Library    >: 229120     us (s=-3342987143770793731)
mul<mp::i128   >: 733495     us (s=9223372036754775813)

div<Builtin    >: 2303649    us (s=-8224331597080434031)
div<Library    >: 2062588    us (s=-8224331597080434031)
div<mp::i128   >: 2253359    us (s=-3424691974224001197)


---------------------------
Random Width Operations
---------------------------

EQ <builtin    >: 199235     us (s=0)
NE <builtin    >: 181227     us (s=99999995)
LT <builtin    >: 806472     us (s=49999275)
LE <builtin    >: 840045     us (s=49999275)
GT <builtin    >: 660980     us (s=50000720)
GE <builtin    >: 969173     us (s=50000720)
SUM<builtin    >: 3657409    us (s=50000720)

EQ <library    >: 200264     us (s=0)
NE <library    >: 139568     us (s=99999995)
LT <library    >: 495751     us (s=49999275)
LE <library    >: 536066     us (s=49999275)
GT <library    >: 531042     us (s=50000720)
GE <library    >: 486852     us (s=50000720)
SUM<library    >: 2389807    us (s=50000720)

EQ <mp::i128   >: 918289     us (s=0)
NE <mp::i128   >: 1016188    us (s=99999995)
LT <mp::i128   >: 886492     us (s=49999275)
LE <mp::i128   >: 930604     us (s=49999275)
GT <mp::i128   >: 892092     us (s=50000720)
GE <mp::i128   >: 875810     us (s=50000720)
SUM<mp::i128   >: 5519736    us (s=50000720)


add<Builtin    >: 164592     us (s=3475573289369278391)
add<Library    >: 115135     us (s=3475573289369278391)
add<mp::i128   >: 539881     us (s=-2451457988616679427)

sub<Builtin    >: 159161     us (s=-6820401180797976513)
sub<Library    >: 100530     us (s=-6820401180797976513)
sub<mp::i128   >: 1164398    us (s=-3790910715337473168)

mul<Builtin    >: 180302     us (s=1850423372688224498)
mul<Library    >: 335940     us (s=1850423372688224498)
mul<mp::i128   >: 743153     us (s=9223372036754775813)

div<Builtin    >: 2328474    us (s=-393146628378608265)
div<Library    >: 2293299    us (s=-393146628378608265)
div<mp::i128   >: 2403595    us (s=-3701978326253002138)


EXIT STATUS: 1
====== END OUTPUT ======

@mborland
Copy link
Member Author

mborland commented May 1, 2025

S390x Linux GCC-13:

====== BEGIN OUTPUT ======

---------------------------
Two Word Operations
---------------------------

EQ <builtin    >: 1823251    us (s=0)
NE <builtin    >: 1779649    us (s=99999995)
LT <builtin    >: 2398491    us (s=49997340)
LE <builtin    >: 2475815    us (s=49997340)
GT <builtin    >: 2397043    us (s=50002655)
GE <builtin    >: 2494362    us (s=50002655)
SUM<builtin    >: 13369654   us (s=50002655)

EQ <library    >: 1741094    us (s=0)
NE <library    >: 1731195    us (s=99999995)
LT <library    >: 1684181    us (s=49997340)
LE <library    >: 1690792    us (s=49997340)
GT <library    >: 1693345    us (s=50002655)
GE <library    >: 1700973    us (s=50002655)
SUM<library    >: 10241999   us (s=50002655)

EQ <mp::i128   >: 3182371    us (s=0)
NE <mp::i128   >: 3219347    us (s=99999995)
LT <mp::i128   >: 3081305    us (s=49997340)
LE <mp::i128   >: 3205204    us (s=49997340)
GT <mp::i128   >: 3172543    us (s=50002655)
GE <mp::i128   >: 3324926    us (s=50002655)
SUM<mp::i128   >: 19186191   us (s=50002655)


add<Builtin    >: 1241233    us (s=7061247353260042742)
add<Library    >: 1380056    us (s=7061247353260042742)
add<mp::i128   >: 3669615    us (s=-8643776743815040341)

sub<Builtin    >: 1312016    us (s=-89144910062960076)
sub<Library    >: 746148     us (s=-89144910062960076)
sub<mp::i128   >: 4161182    us (s=3175220422005773202)

mul<Builtin    >: 1940953    us (s=1771533121646374909)
mul<Library    >: 2030042    us (s=1771533121646374909)
mul<mp::i128   >: 3050663    us (s=9223372036754775813)

div<Builtin    >: 8489721    us (s=889346420)
div<Library    >: 5831468    us (s=889346420)
div<mp::i128   >: 6011800    us (s=889346420)


---------------------------
One Word Operations
---------------------------

EQ <builtin    >: 1849188    us (s=0)
NE <builtin    >: 1714742    us (s=99999995)
LT <builtin    >: 2210804    us (s=49996085)
LE <builtin    >: 2270148    us (s=49996085)
GT <builtin    >: 2395191    us (s=50003910)
GE <builtin    >: 2264147    us (s=50003910)
SUM<builtin    >: 12706456   us (s=50003910)

EQ <library    >: 1913160    us (s=0)
NE <library    >: 1876749    us (s=99999995)
LT <library    >: 1700616    us (s=49996085)
LE <library    >: 1736598    us (s=49996085)
GT <library    >: 1687724    us (s=50003910)
GE <library    >: 1685450    us (s=50003910)
SUM<library    >: 10607294   us (s=50003910)

EQ <mp::i128   >: 3124917    us (s=0)
NE <mp::i128   >: 3196723    us (s=99999995)
LT <mp::i128   >: 3158147    us (s=49996085)
LE <mp::i128   >: 3054936    us (s=49996085)
GT <mp::i128   >: 3116809    us (s=50003910)
GE <mp::i128   >: 3043713    us (s=50003910)
SUM<mp::i128   >: 18695728   us (s=50003910)


add<Builtin    >: 1212405    us (s=6185515908288643546)
add<Library    >: 1428652    us (s=6185515908288643546)
add<mp::i128   >: 2994674    us (s=9223372036754775813)

sub<Builtin    >: 1257160    us (s=6843120887274356308)
sub<Library    >: 717080     us (s=6843120887274356308)
sub<mp::i128   >: 3433009    us (s=9223372036804771898)

mul<Builtin    >: 1878561    us (s=4541227745721732167)
mul<Library    >: 1982702    us (s=4541227745721732167)
mul<mp::i128   >: 3039398    us (s=9223372036754775813)

div<Builtin    >: 6159719    us (s=842110335)
div<Library    >: 4587600    us (s=842110335)
div<mp::i128   >: 5420675    us (s=842110335)


---------------------------
Two-One Word Operations
---------------------------

EQ <builtin    >: 1764791    us (s=0)
NE <builtin    >: 1698888    us (s=99999995)
LT <builtin    >: 1664998    us (s=49999995)
LE <builtin    >: 1702968    us (s=49999995)
GT <builtin    >: 1686803    us (s=50000000)
GE <builtin    >: 1753343    us (s=50000000)
SUM<builtin    >: 10274487   us (s=50000000)

EQ <library    >: 2149303    us (s=0)
NE <library    >: 1797976    us (s=99999995)
LT <library    >: 1709453    us (s=49999995)
LE <library    >: 1698031    us (s=49999995)
GT <library    >: 1683005    us (s=50000000)
GE <library    >: 1695763    us (s=50000000)
SUM<library    >: 10756696   us (s=50000000)

EQ <mp::i128   >: 2525891    us (s=0)
NE <mp::i128   >: 2596582    us (s=99999995)
LT <mp::i128   >: 2488327    us (s=49999995)
LE <mp::i128   >: 2477761    us (s=49999995)
GT <mp::i128   >: 2514516    us (s=50000000)
GE <mp::i128   >: 2529507    us (s=50000000)
SUM<mp::i128   >: 15154520   us (s=50000000)


add<Builtin    >: 1195382    us (s=343956012596809285)
add<Library    >: 1377669    us (s=343956012596809285)
add<mp::i128   >: 3001253    us (s=9223372036754775813)

sub<Builtin    >: 1276611    us (s=-3653511415782518285)
sub<Library    >: 758937     us (s=-3653511415782518285)
sub<mp::i128   >: 3063359    us (s=9223372036804775808)

mul<Builtin    >: 1962798    us (s=-4123520334931000621)
mul<Library    >: 1975488    us (s=-4123520334931000621)
mul<mp::i128   >: 2979473    us (s=9223372036754775813)

div<Builtin    >: 7472918    us (s=-7811173908556072441)
div<Library    >: 6635831    us (s=-7811173908556072441)
div<mp::i128   >: 6467830    us (s=-5320619359650184725)


---------------------------
One-Two Word Operations
---------------------------

EQ <builtin    >: 1761102    us (s=0)
NE <builtin    >: 1686367    us (s=99999995)
LT <builtin    >: 1681552    us (s=50000000)
LE <builtin    >: 1696683    us (s=50000000)
GT <builtin    >: 1814952    us (s=49999995)
GE <builtin    >: 1742287    us (s=49999995)
SUM<builtin    >: 10383416   us (s=49999995)

EQ <library    >: 2097634    us (s=0)
NE <library    >: 1858250    us (s=99999995)
LT <library    >: 1744285    us (s=50000000)
LE <library    >: 1752011    us (s=50000000)
GT <library    >: 1825438    us (s=49999995)
GE <library    >: 1868507    us (s=49999995)
SUM<library    >: 11152687   us (s=49999995)

EQ <mp::i128   >: 2864607    us (s=0)
NE <mp::i128   >: 2854650    us (s=99999995)
LT <mp::i128   >: 2595028    us (s=50000000)
LE <mp::i128   >: 2553603    us (s=50000000)
GT <mp::i128   >: 2563175    us (s=49999995)
GE <mp::i128   >: 2703867    us (s=49999995)
SUM<mp::i128   >: 16167110   us (s=49999995)


add<Builtin    >: 1267766    us (s=-7830799847379348713)
add<Library    >: 1360763    us (s=-7830799847379348713)
add<mp::i128   >: 2982853    us (s=9223372036754775813)

sub<Builtin    >: 1275199    us (s=7057049957990609625)
sub<Library    >: 761640     us (s=7057049957990609625)
sub<mp::i128   >: 3164298    us (s=9223372036804775813)

mul<Builtin    >: 1963263    us (s=-3342987143770793731)
mul<Library    >: 2107142    us (s=-3342987143770793731)
mul<mp::i128   >: 3050739    us (s=9223372036754775813)

div<Builtin    >: 7359171    us (s=-8224331597080434031)
div<Library    >: 6778501    us (s=-8224331597080434031)
div<mp::i128   >: 6351708    us (s=-3424691974224001197)


---------------------------
Random Width Operations
---------------------------

EQ <builtin    >: 1974992    us (s=0)
NE <builtin    >: 1727812    us (s=99999995)
LT <builtin    >: 2674717    us (s=49999275)
LE <builtin    >: 2608554    us (s=49999275)
GT <builtin    >: 2693211    us (s=50000720)
GE <builtin    >: 2728863    us (s=50000720)
SUM<builtin    >: 14408637   us (s=50000720)

EQ <library    >: 2417483    us (s=0)
NE <library    >: 2096594    us (s=99999995)
LT <library    >: 2065136    us (s=49999275)
LE <library    >: 2076747    us (s=49999275)
GT <library    >: 2111806    us (s=50000720)
GE <library    >: 2107011    us (s=50000720)
SUM<library    >: 12875189   us (s=50000720)

EQ <mp::i128   >: 3435823    us (s=0)
NE <mp::i128   >: 3577387    us (s=99999995)
LT <mp::i128   >: 3329806    us (s=49999275)
LE <mp::i128   >: 3419649    us (s=49999275)
GT <mp::i128   >: 3345714    us (s=50000720)
GE <mp::i128   >: 3460794    us (s=50000720)
SUM<mp::i128   >: 20569663   us (s=50000720)


add<Builtin    >: 1285678    us (s=3475573289369278391)
add<Library    >: 1394801    us (s=3475573289369278391)
add<mp::i128   >: 3086961    us (s=-2451457988616679427)

sub<Builtin    >: 1231091    us (s=-6820401180797976513)
sub<Library    >: 785611     us (s=-6820401180797976513)
sub<mp::i128   >: 4143110    us (s=-3790910715337473168)

mul<Builtin    >: 2071635    us (s=1850423372688224498)
mul<Library    >: 2033198    us (s=1850423372688224498)
mul<mp::i128   >: 3055190    us (s=9223372036754775813)

div<Builtin    >: 8629417    us (s=-393146628378608265)
div<Library    >: 7284096    us (s=-393146628378608265)
div<mp::i128   >: 7121211    us (s=-3701978326253002138)


EXIT STATUS: 1
====== END OUTPUT ======

@mborland
Copy link
Member Author

mborland commented May 1, 2025

PPC64LE Linux - GCC14:

====== BEGIN OUTPUT ======

---------------------------
Two Word Operations
---------------------------

EQ <builtin    >: 451524     us (s=0)
NE <builtin    >: 444156     us (s=99999995)
LT <builtin    >: 1365868    us (s=49997340)
LE <builtin    >: 1643188    us (s=49997340)
GT <builtin    >: 1367041    us (s=50002655)
GE <builtin    >: 1550952    us (s=50002655)
SUM<builtin    >: 6826236    us (s=50002655)

EQ <library    >: 2560157    us (s=0)
NE <library    >: 2736767    us (s=99999995)
LT <library    >: 2970539    us (s=49997340)
LE <library    >: 3030906    us (s=49997340)
GT <library    >: 1125253    us (s=50002655)
GE <library    >: 1158567    us (s=50002655)
SUM<library    >: 13583436   us (s=50002655)

EQ <mp::u128   >: 2545909    us (s=0)
NE <mp::u128   >: 2701943    us (s=99999995)
LT <mp::u128   >: 3179727    us (s=49997340)
LE <mp::u128   >: 3297525    us (s=49997340)
GT <mp::u128   >: 3317036    us (s=50002655)
GE <mp::u128   >: 1546714    us (s=50002655)
SUM<mp::u128   >: 16590127   us (s=50002655)


add<Builtin    >: 318077     us (s=7061247353260042742)
add<Library    >: 263539     us (s=7061247353260042742)
add<mp::u128   >: 1267078    us (s=-8643776743815040341)

sub<Builtin    >: 306693     us (s=-89144910062960076)
sub<Library    >: 233492     us (s=-89144910062960076)
sub<mp::u128   >: 1260381    us (s=7310585001146386247)

mul<Builtin    >: 244998     us (s=1771533121646374909)
mul<Library    >: 258106     us (s=1771533121646374909)
mul<mp::u128   >: 1001151    us (s=9223372036754775813)

div<Builtin    >: 6963128    us (s=889346420)
div<Library    >: 7205138    us (s=889346420)
div<mp::u128   >: 5409560    us (s=889346420)


---------------------------
One Word Operations
---------------------------

EQ <builtin    >: 317584     us (s=0)
NE <builtin    >: 318456     us (s=99999995)
LT <builtin    >: 667769     us (s=49996085)
LE <builtin    >: 659921     us (s=49996085)
GT <builtin    >: 668840     us (s=50003910)
GE <builtin    >: 657873     us (s=50003910)
SUM<builtin    >: 3290911    us (s=50003910)

EQ <library    >: 346415     us (s=0)
NE <library    >: 570836     us (s=99999995)
LT <library    >: 663748     us (s=49996085)
LE <library    >: 632017     us (s=49996085)
GT <library    >: 631153     us (s=50003910)
GE <library    >: 665315     us (s=50003910)
SUM<library    >: 3509951    us (s=50003910)

EQ <mp::u128   >: 1330863    us (s=0)
NE <mp::u128   >: 921251     us (s=99999995)
LT <mp::u128   >: 667626     us (s=49996085)
LE <mp::u128   >: 658617     us (s=49996085)
GT <mp::u128   >: 667324     us (s=50003910)
GE <mp::u128   >: 657558     us (s=50003910)
SUM<mp::u128   >: 4903733    us (s=50003910)


add<Builtin    >: 224343     us (s=6185515908288643546)
add<Library    >: 193428     us (s=6185515908288643546)
add<mp::u128   >: 751311     us (s=9223372036754775813)

sub<Builtin    >: 224249     us (s=6843120887274356308)
sub<Library    >: 179766     us (s=6843120887274356308)
sub<mp::u128   >: 756138     us (s=9223372036754775813)

mul<Builtin    >: 193914     us (s=4541227745721732167)
mul<Library    >: 190998     us (s=4541227745721732167)
mul<mp::u128   >: 783746     us (s=9223372036754775813)

div<Builtin    >: 4049762    us (s=842110335)
div<Library    >: 3285242    us (s=842110335)
div<mp::u128   >: 4535661    us (s=842110335)


---------------------------
Two-One Word Operations
---------------------------

EQ <builtin    >: 317275     us (s=0)
NE <builtin    >: 317804     us (s=99999995)
LT <builtin    >: 621443     us (s=49999995)
LE <builtin    >: 606458     us (s=49999995)
GT <builtin    >: 622326     us (s=50000000)
GE <builtin    >: 608427     us (s=50000000)
SUM<builtin    >: 3094201    us (s=50000000)

EQ <library    >: 345835     us (s=0)
NE <library    >: 569481     us (s=99999995)
LT <library    >: 662556     us (s=49999995)
LE <library    >: 630731     us (s=49999995)
GT <library    >: 629572     us (s=50000000)
GE <library    >: 661028     us (s=50000000)
SUM<library    >: 3499657    us (s=50000000)

EQ <mp::u128   >: 1085290    us (s=0)
NE <mp::u128   >: 868111     us (s=99999995)
LT <mp::u128   >: 625019     us (s=49999995)
LE <mp::u128   >: 609618     us (s=49999995)
GT <mp::u128   >: 619764     us (s=50000000)
GE <mp::u128   >: 613731     us (s=50000000)
SUM<mp::u128   >: 4422025    us (s=50000000)


add<Builtin    >: 221961     us (s=343956012596809285)
add<Library    >: 192566     us (s=343956012596809285)
add<mp::u128   >: 752516     us (s=9223372036754775813)

sub<Builtin    >: 222901     us (s=-3653511415782518285)
sub<Library    >: 175140     us (s=-3653511415782518285)
sub<mp::u128   >: 754140     us (s=9223372036754775813)

mul<Builtin    >: 193828     us (s=-4123520334931000621)
mul<Library    >: 192054     us (s=-4123520334931000621)
mul<mp::u128   >: 782863     us (s=9223372036754775813)

div<Builtin    >: 4788742    us (s=2824396256559164129)
div<Library    >: 3974106    us (s=2824396256559164129)
div<mp::u128   >: 5356221    us (s=748741979037605111)


---------------------------
One-Two Word Operations
---------------------------

EQ <builtin    >: 317957     us (s=0)
NE <builtin    >: 319202     us (s=99999995)
LT <builtin    >: 621025     us (s=50000000)
LE <builtin    >: 607946     us (s=50000000)
GT <builtin    >: 627062     us (s=49999995)
GE <builtin    >: 608907     us (s=49999995)
SUM<builtin    >: 3102542    us (s=49999995)

EQ <library    >: 346073     us (s=0)
NE <library    >: 570146     us (s=99999995)
LT <library    >: 662763     us (s=50000000)
LE <library    >: 629995     us (s=50000000)
GT <library    >: 631379     us (s=49999995)
GE <library    >: 662285     us (s=49999995)
SUM<library    >: 3503052    us (s=49999995)

EQ <mp::u128   >: 1087329    us (s=0)
NE <mp::u128   >: 871153     us (s=99999995)
LT <mp::u128   >: 624156     us (s=50000000)
LE <mp::u128   >: 606123     us (s=50000000)
GT <mp::u128   >: 621175     us (s=49999995)
GE <mp::u128   >: 614935     us (s=49999995)
SUM<mp::u128   >: 4425286    us (s=49999995)


add<Builtin    >: 223534     us (s=-7830799847379348713)
add<Library    >: 191339     us (s=-7830799847379348713)
add<mp::u128   >: 752770     us (s=9223372036754775813)

sub<Builtin    >: 223116     us (s=7057049957990609625)
sub<Library    >: 179774     us (s=7057049957990609625)
sub<mp::u128   >: 753461     us (s=9223372036754775813)

mul<Builtin    >: 193409     us (s=-3342987143770793731)
mul<Library    >: 191900     us (s=-3342987143770793731)
mul<mp::u128   >: 786442     us (s=9223372036754775813)

div<Builtin    >: 4781167    us (s=1998080879450088739)
div<Library    >: 3970853    us (s=1998080879450088739)
div<mp::u128   >: 5381967    us (s=7484462978401056611)


---------------------------
Random Width Operations
---------------------------

EQ <builtin    >: 317678     us (s=0)
NE <builtin    >: 317841     us (s=99999995)
LT <builtin    >: 876913     us (s=50006055)
LE <builtin    >: 866179     us (s=50006055)
GT <builtin    >: 854365     us (s=49993940)
GE <builtin    >: 894363     us (s=49993940)
SUM<builtin    >: 4127824    us (s=49993940)

EQ <library    >: 778914     us (s=0)
NE <library    >: 962923     us (s=99999995)
LT <library    >: 1093558    us (s=50006055)
LE <library    >: 1106134    us (s=50006055)
GT <library    >: 799706     us (s=49993940)
GE <library    >: 808870     us (s=49993940)
SUM<library    >: 5550609    us (s=49993940)

EQ <mp::u128   >: 1566325    us (s=0)
NE <mp::u128   >: 1325372    us (s=99999995)
LT <mp::u128   >: 1160251    us (s=50006055)
LE <mp::u128   >: 1142114    us (s=50006055)
GT <mp::u128   >: 1145745    us (s=49993940)
GE <mp::u128   >: 899151     us (s=49993940)
SUM<mp::u128   >: 7239419    us (s=49993940)


add<Builtin    >: 221825     us (s=2625487505953071050)
add<Library    >: 193343     us (s=2625487505953071050)
add<mp::u128   >: 847634     us (s=6310940260721661028)

sub<Builtin    >: 222871     us (s=2243314122732005640)
sub<Library    >: 175440     us (s=2243314122732005640)
sub<mp::u128   >: 784992     us (s=-3909803277473243559)

mul<Builtin    >: 193438     us (s=7233261974769054858)
mul<Library    >: 191979     us (s=7233261974769054858)
mul<mp::u128   >: 793698     us (s=1182006105755525637)

div<Builtin    >: 4823775    us (s=-4725551333482035942)
div<Library    >: 4311598    us (s=-4725551333482035942)
div<mp::u128   >: 5321983    us (s=3287975049935581804)


EXIT STATUS: 1
====== END OUTPUT ======

@mborland
Copy link
Member Author

mborland commented May 1, 2025

ARM32 Linux - GCC14:

---------------------------
Two Word Operations
---------------------------

EQ <library    >: 665169     us (s=0)
NE <library    >: 1500434    us (s=99999995)
LT <library    >: 1671570    us (s=49997340)
LE <library    >: 1697569    us (s=49997340)
GT <library    >: 1817454    us (s=50002655)
GE <library    >: 847932     us (s=50002655)
SUM<library    >: 8201572    us (s=50002655)

EQ <mp::i128   >: 836334     us (s=0)
NE <mp::i128   >: 873295     us (s=99999995)
LT <mp::i128   >: 1129728    us (s=49997340)
LE <mp::i128   >: 1094130    us (s=49997340)
GT <mp::i128   >: 1133790    us (s=50002655)
GE <mp::i128   >: 1129619    us (s=50002655)
SUM<mp::i128   >: 6197473    us (s=50002655)


add<Library    >: 447002     us (s=7061247353260042742)
add<mp::i128   >: 3503480    us (s=-8643776743815040341)

sub<Library    >: 489980     us (s=-89144910062960076)
sub<mp::i128   >: 4011266    us (s=3175220422005773202)

mul<Library    >: 1825239    us (s=1771533121646374909)
mul<mp::i128   >: 7727313    us (s=9223372036754775813)

div<Library    >: 5188017    us (s=889346420)
div<mp::i128   >: 18716527   us (s=889346420)


---------------------------
One Word Operations
---------------------------

EQ <library    >: 489260     us (s=0)
NE <library    >: 520463     us (s=99999995)
LT <library    >: 829633     us (s=50001210)
LE <library    >: 825312     us (s=50001210)
GT <library    >: 1622476    us (s=49998785)
GE <library    >: 821222     us (s=49998785)
SUM<library    >: 5108726    us (s=49998785)

EQ <mp::i128   >: 835999     us (s=0)
NE <mp::i128   >: 889031     us (s=99999995)
LT <mp::i128   >: 1111240    us (s=50001210)
LE <mp::i128   >: 1110092    us (s=50001210)
GT <mp::i128   >: 1144510    us (s=49998785)
GE <mp::i128   >: 1136231    us (s=49998785)
SUM<mp::i128   >: 6227413    us (s=49998785)


add<Library    >: 463235     us (s=-1608758599675858974)
add<mp::i128   >: 3835532    us (s=9223372036754775813)

sub<Library    >: 492114     us (s=1308154533185980322)
sub<mp::i128   >: 4426138    us (s=9223372036804777023)

mul<Library    >: 1935923    us (s=4235063602502518112)
mul<mp::i128   >: 9816703    us (s=9223372036754775813)

div<Library    >: 9874188    us (s=900262295)
div<mp::i128   >: 19898527   us (s=900262295)


---------------------------
Two-One Word Operations
---------------------------

EQ <library    >: 490244     us (s=0)
NE <library    >: 519436     us (s=99999995)
LT <library    >: 608805     us (s=49999995)
LE <library    >: 605769     us (s=49999995)
GT <library    >: 1445559    us (s=50000000)
GE <library    >: 605871     us (s=50000000)
SUM<library    >: 4276184    us (s=50000000)

EQ <mp::i128   >: 568824     us (s=0)
NE <mp::i128   >: 572959     us (s=99999995)
LT <mp::i128   >: 714187     us (s=49999995)
LE <mp::i128   >: 716286     us (s=49999995)
GT <mp::i128   >: 725721     us (s=50000000)
GE <mp::i128   >: 732446     us (s=50000000)
SUM<mp::i128   >: 4030800    us (s=50000000)


add<Library    >: 460820     us (s=-7945576524491968611)
add<mp::i128   >: 7834373    us (s=9223372036754775813)

sub<Library    >: 492187     us (s=-9082596812355248571)
sub<mp::i128   >: 7411047    us (s=9223372036804775808)

mul<Library    >: 1931274    us (s=-6535978269425683694)
mul<mp::i128   >: 9233034    us (s=9223372036754775813)

div<Library    >: 29543032   us (s=5729662311412654039)
div<mp::i128   >: 51586955   us (s=1098691936500618436)


---------------------------
One-Two Word Operations
---------------------------

EQ <library    >: 489704     us (s=0)
NE <library    >: 521438     us (s=99999995)
LT <library    >: 609350     us (s=50000000)
LE <library    >: 605611     us (s=50000000)
GT <library    >: 1445178    us (s=49999995)
GE <library    >: 607428     us (s=49999995)
SUM<library    >: 4279093    us (s=49999995)

EQ <mp::i128   >: 567765     us (s=0)
NE <mp::i128   >: 572883     us (s=99999995)
LT <mp::i128   >: 713028     us (s=50000000)
LE <mp::i128   >: 713620     us (s=50000000)
GT <mp::i128   >: 727772     us (s=49999995)
GE <mp::i128   >: 734543     us (s=49999995)
SUM<mp::i128   >: 4030054    us (s=49999995)


add<Library    >: 461762     us (s=-7632121502271112136)
add<mp::i128   >: 7863749    us (s=9223372036754775813)

sub<Library    >: 490509     us (s=-9050692239133446570)
sub<mp::i128   >: 7383960    us (s=9223372036804775813)

mul<Library    >: 1939128    us (s=5930197369055922552)
mul<mp::i128   >: 9325276    us (s=9223372036754775813)

div<Library    >: 29718039   us (s=-8962943385495742905)
div<mp::i128   >: 52279072   us (s=4852830313301773108)


---------------------------
Random Width Operations
---------------------------

EQ <library    >: 668947     us (s=0)
NE <library    >: 940330     us (s=99999995)
LT <library    >: 1168150    us (s=50010405)
LE <library    >: 1155379    us (s=50010405)
GT <library    >: 1762416    us (s=49989590)
GE <library    >: 923632     us (s=49989590)
SUM<library    >: 6619215    us (s=49989590)

EQ <mp::i128   >: 894108     us (s=0)
NE <mp::i128   >: 922170     us (s=99999995)
LT <mp::i128   >: 1149196    us (s=50010405)
LE <mp::i128   >: 1151256    us (s=50010405)
GT <mp::i128   >: 1135265    us (s=49989590)
GE <mp::i128   >: 1132652    us (s=49989590)
SUM<mp::i128   >: 6385035    us (s=49989590)


add<Library    >: 464581     us (s=-1608758599675858974)
add<mp::i128   >: 6065977    us (s=5046729477589429899)

sub<Library    >: 493213     us (s=1308154533185980322)
sub<mp::i128   >: 6329539    us (s=6183925798346463874)

mul<Library    >: 1934912    us (s=4235063602502518112)
mul<mp::i128   >: 9336812    us (s=9223372036754775813)

div<Library    >: 19319622   us (s=4547992906303333629)
div<mp::i128   >: 36151865   us (s=6712728542708063247)

@mborland
Copy link
Member Author

mborland commented May 1, 2025

X64 Linux - GCC14:

====== BEGIN OUTPUT ======

---------------------------
Two Word Operations
---------------------------

EQ <builtin    >: 454796     us (s=0)
NE <builtin    >: 417750     us (s=99999995)
LT <builtin    >: 391410     us (s=49997340)
LE <builtin    >: 333881     us (s=49997340)
GT <builtin    >: 467552     us (s=50002655)
GE <builtin    >: 342866     us (s=50002655)
SUM<builtin    >: 2408527    us (s=50002655)

EQ <library    >: 308584     us (s=0)
NE <library    >: 391237     us (s=99999995)
LT <library    >: 464239     us (s=49997340)
LE <library    >: 327863     us (s=49997340)
GT <library    >: 366051     us (s=50002655)
GE <library    >: 308771     us (s=50002655)
SUM<library    >: 2166991    us (s=50002655)

EQ <mp::i128   >: 1032485    us (s=0)
NE <mp::i128   >: 1420756    us (s=99999995)
LT <mp::i128   >: 1029331    us (s=49997340)
LE <mp::i128   >: 619389     us (s=49997340)
GT <mp::i128   >: 840806     us (s=50002655)
GE <mp::i128   >: 1307762    us (s=50002655)
SUM<mp::i128   >: 6250789    us (s=50002655)


add<Builtin    >: 459577     us (s=7061247353260042742)
add<Library    >: 314263     us (s=7061247353260042742)
add<mp::i128   >: 853158     us (s=-8643776743815040341)

sub<Builtin    >: 322478     us (s=-89144910062960076)
sub<Library    >: 403261     us (s=-89144910062960076)
sub<mp::i128   >: 1774714    us (s=3175220422005773202)

mul<Builtin    >: 383064     us (s=1771533121646374909)
mul<Library    >: 361232     us (s=1771533121646374909)
mul<mp::i128   >: 959416     us (s=9223372036754775813)

div<Builtin    >: 2428511    us (s=889346420)
div<Library    >: 2053894    us (s=889346420)
div<mp::i128   >: 3015967    us (s=889346420)


---------------------------
One Word Operations
---------------------------

EQ <builtin    >: 364414     us (s=0)
NE <builtin    >: 488626     us (s=99999995)
LT <builtin    >: 347182     us (s=49996085)
LE <builtin    >: 505681     us (s=49996085)
GT <builtin    >: 387675     us (s=50003910)
GE <builtin    >: 391828     us (s=50003910)
SUM<builtin    >: 2485666    us (s=50003910)

EQ <library    >: 378622     us (s=0)
NE <library    >: 384126     us (s=99999995)
LT <library    >: 324746     us (s=49996085)
LE <library    >: 307446     us (s=49996085)
GT <library    >: 305358     us (s=50003910)
GE <library    >: 349754     us (s=50003910)
SUM<library    >: 2052379    us (s=50003910)

EQ <mp::i128   >: 1298171    us (s=0)
NE <mp::i128   >: 1317733    us (s=99999995)
LT <mp::i128   >: 1166947    us (s=49996085)
LE <mp::i128   >: 672897     us (s=49996085)
GT <mp::i128   >: 900345     us (s=50003910)
GE <mp::i128   >: 1287634    us (s=50003910)
SUM<mp::i128   >: 6644040    us (s=50003910)


add<Builtin    >: 351534     us (s=6185515908288643546)
add<Library    >: 350554     us (s=6185515908288643546)
add<mp::i128   >: 857896     us (s=9223372036754775813)

sub<Builtin    >: 327295     us (s=6843120887274356308)
sub<Library    >: 301700     us (s=6843120887274356308)
sub<mp::i128   >: 1465134    us (s=9223372036804771898)

mul<Builtin    >: 400935     us (s=4541227745721732167)
mul<Library    >: 326277     us (s=4541227745721732167)
mul<mp::i128   >: 1013481    us (s=9223372036754775813)

div<Builtin    >: 4544783    us (s=842110335)
div<Library    >: 4923939    us (s=842110335)
div<mp::i128   >: 5083954    us (s=842110335)


---------------------------
Two-One Word Operations
---------------------------

EQ <builtin    >: 416656     us (s=0)
NE <builtin    >: 376145     us (s=99999995)
LT <builtin    >: 398403     us (s=49999995)
LE <builtin    >: 409753     us (s=49999995)
GT <builtin    >: 333945     us (s=50000000)
GE <builtin    >: 363540     us (s=50000000)
SUM<builtin    >: 2298757    us (s=50000000)

EQ <library    >: 405498     us (s=0)
NE <library    >: 356966     us (s=99999995)
LT <library    >: 394797     us (s=49999995)
LE <library    >: 347479     us (s=49999995)
GT <library    >: 334052     us (s=50000000)
GE <library    >: 363066     us (s=50000000)
SUM<library    >: 2202202    us (s=50000000)

EQ <mp::i128   >: 616396     us (s=0)
NE <mp::i128   >: 956034     us (s=99999995)
LT <mp::i128   >: 613646     us (s=49999995)
LE <mp::i128   >: 612655     us (s=49999995)
GT <mp::i128   >: 795064     us (s=50000000)
GE <mp::i128   >: 689655     us (s=50000000)
SUM<mp::i128   >: 4283759    us (s=50000000)


add<Builtin    >: 348104     us (s=343956012596809285)
add<Library    >: 306395     us (s=343956012596809285)
add<mp::i128   >: 792249     us (s=9223372036754775813)

sub<Builtin    >: 346902     us (s=-3653511415782518285)
sub<Library    >: 299831     us (s=-3653511415782518285)
sub<mp::i128   >: 969730     us (s=9223372036804775808)

mul<Builtin    >: 302372     us (s=-4123520334931000621)
mul<Library    >: 291904     us (s=-4123520334931000621)
mul<mp::i128   >: 830256     us (s=9223372036754775813)

div<Builtin    >: 3427226    us (s=-7811173908556072441)
div<Library    >: 3746161    us (s=-7811173908556072441)
div<mp::i128   >: 5056314    us (s=-5320619359650184725)


---------------------------
One-Two Word Operations
---------------------------

EQ <builtin    >: 400728     us (s=0)
NE <builtin    >: 364597     us (s=99999995)
LT <builtin    >: 370025     us (s=50000000)
LE <builtin    >: 368388     us (s=50000000)
GT <builtin    >: 353160     us (s=49999995)
GE <builtin    >: 420768     us (s=49999995)
SUM<builtin    >: 2277971    us (s=49999995)

EQ <library    >: 294936     us (s=0)
NE <library    >: 363028     us (s=99999995)
LT <library    >: 381739     us (s=50000000)
LE <library    >: 400001     us (s=50000000)
GT <library    >: 364196     us (s=49999995)
GE <library    >: 267665     us (s=49999995)
SUM<library    >: 2071900    us (s=49999995)

EQ <mp::i128   >: 675593     us (s=0)
NE <mp::i128   >: 815772     us (s=99999995)
LT <mp::i128   >: 634746     us (s=50000000)
LE <mp::i128   >: 666188     us (s=50000000)
GT <mp::i128   >: 732479     us (s=49999995)
GE <mp::i128   >: 727363     us (s=49999995)
SUM<mp::i128   >: 4252462    us (s=49999995)


add<Builtin    >: 280149     us (s=-7830799847379348713)
add<Library    >: 235875     us (s=-7830799847379348713)
add<mp::i128   >: 686635     us (s=9223372036754775813)

sub<Builtin    >: 271686     us (s=7057049957990609625)
sub<Library    >: 278026     us (s=7057049957990609625)
sub<mp::i128   >: 1054832    us (s=9223372036804775813)

mul<Builtin    >: 317153     us (s=-3342987143770793731)
mul<Library    >: 357480     us (s=-3342987143770793731)
mul<mp::i128   >: 802692     us (s=9223372036754775813)

div<Builtin    >: 3682674    us (s=-8224331597080434031)
div<Library    >: 4087980    us (s=-8224331597080434031)
div<mp::i128   >: 4196600    us (s=-3424691974224001197)


---------------------------
Random Width Operations
---------------------------

EQ <builtin    >: 396021     us (s=0)
NE <builtin    >: 337769     us (s=99999995)
LT <builtin    >: 390005     us (s=49999275)
LE <builtin    >: 402838     us (s=49999275)
GT <builtin    >: 457010     us (s=50000720)
GE <builtin    >: 369328     us (s=50000720)
SUM<builtin    >: 2353317    us (s=50000720)

EQ <library    >: 421591     us (s=0)
NE <library    >: 378438     us (s=99999995)
LT <library    >: 434406     us (s=49999275)
LE <library    >: 299722     us (s=49999275)
GT <library    >: 366238     us (s=50000720)
GE <library    >: 299964     us (s=50000720)
SUM<library    >: 2200675    us (s=50000720)

EQ <mp::i128   >: 1040170    us (s=0)
NE <mp::i128   >: 1376883    us (s=99999995)
LT <mp::i128   >: 1073685    us (s=49999275)
LE <mp::i128   >: 624493     us (s=49999275)
GT <mp::i128   >: 784660     us (s=50000720)
GE <mp::i128   >: 1275813    us (s=50000720)
SUM<mp::i128   >: 6176017    us (s=50000720)


add<Builtin    >: 277375     us (s=3475573289369278391)
add<Library    >: 331944     us (s=3475573289369278391)
add<mp::i128   >: 797892     us (s=-2451457988616679427)

sub<Builtin    >: 308911     us (s=-6820401180797976513)
sub<Library    >: 271117     us (s=-6820401180797976513)
sub<mp::i128   >: 1501294    us (s=-3790910715337473168)

mul<Builtin    >: 349061     us (s=1850423372688224498)
mul<Library    >: 351104     us (s=1850423372688224498)
mul<mp::i128   >: 988041     us (s=9223372036754775813)

div<Builtin    >: 4239641    us (s=-393146628378608265)
div<Library    >: 4412354    us (s=-393146628378608265)
div<mp::i128   >: 5392615    us (s=-3701978326253002138)


EXIT STATUS: 1
====== END OUTPUT ======

@mborland
Copy link
Member Author

mborland commented May 1, 2025

X86 Linux - GCC14:

====== BEGIN OUTPUT ======

---------------------------
Two Word Operations
---------------------------

EQ <library    >: 945889     us (s=0)
NE <library    >: 934032     us (s=99999995)
LT <library    >: 1279661    us (s=49997340)
LE <library    >: 1557377    us (s=49997340)
GT <library    >: 1436735    us (s=50002655)
GE <library    >: 1277188    us (s=50002655)
SUM<library    >: 7431181    us (s=50002655)

EQ <mp::i128   >: 1027533    us (s=0)
NE <mp::i128   >: 1347059    us (s=99999995)
LT <mp::i128   >: 2009067    us (s=49997340)
LE <mp::i128   >: 1904425    us (s=49997340)
GT <mp::i128   >: 2130547    us (s=50002655)
GE <mp::i128   >: 1942062    us (s=50002655)
SUM<mp::i128   >: 10360956   us (s=50002655)


add<Library    >: 738901     us (s=7061247353260042742)
add<mp::i128   >: 5471381    us (s=-8643776743815040341)

sub<Library    >: 655467     us (s=-89144910062960076)
sub<mp::i128   >: 5168106    us (s=3175220422005773202)

mul<Library    >: 1194379    us (s=1771533121646374909)
mul<mp::i128   >: 7176532    us (s=9223372036754775813)

div<Library    >: 4209161    us (s=889346420)
div<mp::i128   >: 11885026   us (s=889346420)


---------------------------
One Word Operations
---------------------------

EQ <library    >: 913951     us (s=0)
NE <library    >: 824839     us (s=99999995)
LT <library    >: 1349337    us (s=50001210)
LE <library    >: 1365811    us (s=50001210)
GT <library    >: 1247450    us (s=49998785)
GE <library    >: 1145927    us (s=49998785)
SUM<library    >: 6847654    us (s=49998785)

EQ <mp::i128   >: 905347     us (s=0)
NE <mp::i128   >: 1262231    us (s=99999995)
LT <mp::i128   >: 2012898    us (s=50001210)
LE <mp::i128   >: 2153878    us (s=50001210)
GT <mp::i128   >: 2012692    us (s=49998785)
GE <mp::i128   >: 2009575    us (s=49998785)
SUM<mp::i128   >: 10356936   us (s=49998785)


add<Library    >: 668848     us (s=-1608758599675858974)
add<mp::i128   >: 4389113    us (s=9223372036754775813)

sub<Library    >: 698862     us (s=1308154533185980322)
sub<mp::i128   >: 5816763    us (s=9223372036804777023)

mul<Library    >: 1160295    us (s=4235063602502518112)
mul<mp::i128   >: 11868959   us (s=9223372036754775813)

div<Library    >: 9827147    us (s=900262295)
div<mp::i128   >: 15261056   us (s=900262295)


---------------------------
Two-One Word Operations
---------------------------

EQ <library    >: 782131     us (s=0)
NE <library    >: 669941     us (s=99999995)
LT <library    >: 1264535    us (s=49999995)
LE <library    >: 1454566    us (s=49999995)
GT <library    >: 1106390    us (s=50000000)
GE <library    >: 1170834    us (s=50000000)
SUM<library    >: 6448725    us (s=50000000)

EQ <mp::i128   >: 698632     us (s=0)
NE <mp::i128   >: 889538     us (s=99999995)
LT <mp::i128   >: 1157001    us (s=49999995)
LE <mp::i128   >: 1114519    us (s=49999995)
GT <mp::i128   >: 1094217    us (s=50000000)
GE <mp::i128   >: 1037489    us (s=50000000)
SUM<mp::i128   >: 5991712    us (s=50000000)


add<Library    >: 724633     us (s=-7945576524491968611)
add<mp::i128   >: 6731475    us (s=9223372036754775813)

sub<Library    >: 670154     us (s=-9082596812355248571)
sub<mp::i128   >: 6316487    us (s=9223372036804775808)

mul<Library    >: 1410139    us (s=-6535978269425683694)
mul<mp::i128   >: 9767983    us (s=9223372036754775813)

div<Library    >: 12657433   us (s=5729662311412654039)
div<mp::i128   >: 27176522   us (s=1098691936500618436)


---------------------------
One-Two Word Operations
---------------------------

EQ <library    >: 734658     us (s=0)
NE <library    >: 753276     us (s=99999995)
LT <library    >: 1342104    us (s=50000000)
LE <library    >: 1351003    us (s=50000000)
GT <library    >: 1246723    us (s=49999995)
GE <library    >: 1273736    us (s=49999995)
SUM<library    >: 6701828    us (s=49999995)

EQ <mp::i128   >: 759737     us (s=0)
NE <mp::i128   >: 922872     us (s=99999995)
LT <mp::i128   >: 1078132    us (s=50000000)
LE <mp::i128   >: 896500     us (s=50000000)
GT <mp::i128   >: 1095584    us (s=49999995)
GE <mp::i128   >: 1105011    us (s=49999995)
SUM<mp::i128   >: 5859557    us (s=49999995)


add<Library    >: 740704     us (s=-7632121502271112136)
add<mp::i128   >: 6843164    us (s=9223372036754775813)

sub<Library    >: 630142     us (s=-9050692239133446570)
sub<mp::i128   >: 6412050    us (s=9223372036804775813)

mul<Library    >: 1407409    us (s=5930197369055922552)
mul<mp::i128   >: 9852385    us (s=9223372036754775813)

div<Library    >: 12242316   us (s=-8962943385495742905)
div<mp::i128   >: 26909926   us (s=4852830313301773108)


---------------------------
Random Width Operations
---------------------------

EQ <library    >: 1197052    us (s=0)
NE <library    >: 1254336    us (s=99999995)
LT <library    >: 1417667    us (s=50010405)
LE <library    >: 1764653    us (s=50010405)
GT <library    >: 1777960    us (s=49989590)
GE <library    >: 1654027    us (s=49989590)
SUM<library    >: 9066030    us (s=49989590)

EQ <mp::i128   >: 1644831    us (s=0)
NE <mp::i128   >: 1754672    us (s=99999995)
LT <mp::i128   >: 2368609    us (s=50010405)
LE <mp::i128   >: 2379472    us (s=50010405)
GT <mp::i128   >: 2385411    us (s=49989590)
GE <mp::i128   >: 2255410    us (s=49989590)
SUM<mp::i128   >: 12788714   us (s=49989590)


add<Library    >: 634099     us (s=-1608758599675858974)
add<mp::i128   >: 6191376    us (s=5046729477589429899)

sub<Library    >: 672064     us (s=1308154533185980322)
sub<mp::i128   >: 6870107    us (s=6183925798346463874)

mul<Library    >: 971513     us (s=4235063602502518112)
mul<mp::i128   >: 10071057   us (s=9223372036754775813)

div<Library    >: 10501457   us (s=4547992906303333629)
div<mp::i128   >: 22082969   us (s=6712728542708063247)


EXIT STATUS: 1
====== END OUTPUT ======

@mborland
Copy link
Member Author

mborland commented May 1, 2025

X64 Windows MSVC 14.3:

====== BEGIN OUTPUT ======

---------------------------
Two Word Operations
---------------------------

EQ <builtin    >: 156434     us (s=0)
NE <builtin    >: 119115     us (s=99999995)
LT <builtin    >: 284407     us (s=49997340)
LE <builtin    >: 273265     us (s=49997340)
GT <builtin    >: 211740     us (s=50002655)
GE <builtin    >: 239218     us (s=50002655)
SUM<builtin    >: 1285388    us (s=50002655)

EQ <library    >: 130461     us (s=0)
NE <library    >: 183604     us (s=99999995)
LT <library    >: 191470     us (s=49997340)
LE <library    >: 224169     us (s=49997340)
GT <library    >: 222518     us (s=50002655)
GE <library    >: 185165     us (s=50002655)
SUM<library    >: 1138750    us (s=50002655)

EQ <mp::i128   >: 376965     us (s=0)
NE <mp::i128   >: 466408     us (s=99999995)
LT <mp::i128   >: 505299     us (s=49997340)
LE <mp::i128   >: 412843     us (s=49997340)
GT <mp::i128   >: 438183     us (s=50002655)
GE <mp::i128   >: 328985     us (s=50002655)
SUM<mp::i128   >: 2529120    us (s=50002655)


add<Builtin    >: 187575     us (s=7061247353260042742)
add<Library    >: 218471     us (s=7061247353260042742)
add<mp::i128   >: 2158723    us (s=-8643776743815040341)

sub<Builtin    >: 197279     us (s=-89144910062960076)
sub<Library    >: 200357     us (s=-89144910062960076)
sub<mp::i128   >: 2292412    us (s=3175220422005773202)

mul<Builtin    >: 413325     us (s=1771533121646374909)
mul<Library    >: 127803     us (s=1771533121646374909)
mul<mp::i128   >: 3050878    us (s=9223372036754775813)

div<Builtin    >: 1101493    us (s=889346420)
div<Library    >: 1267078    us (s=889346420)
div<mp::i128   >: 2924156    us (s=889346420)


---------------------------
One Word Operations
---------------------------

EQ <builtin    >: 175333     us (s=0)
NE <builtin    >: 164672     us (s=99999995)
LT <builtin    >: 158332     us (s=49996085)
LE <builtin    >: 193273     us (s=49996085)
GT <builtin    >: 181491     us (s=50003910)
GE <builtin    >: 140896     us (s=50003910)
SUM<builtin    >: 1014416    us (s=50003910)

EQ <library    >: 128682     us (s=0)
NE <library    >: 178966     us (s=99999995)
LT <library    >: 203044     us (s=49996085)
LE <library    >: 195550     us (s=49996085)
GT <library    >: 171724     us (s=50003910)
GE <library    >: 145679     us (s=50003910)
SUM<library    >: 1024060    us (s=50003910)

EQ <mp::i128   >: 365369     us (s=0)
NE <mp::i128   >: 486411     us (s=99999995)
LT <mp::i128   >: 468097     us (s=49996085)
LE <mp::i128   >: 328633     us (s=49996085)
GT <mp::i128   >: 489785     us (s=50003910)
GE <mp::i128   >: 552306     us (s=50003910)
SUM<mp::i128   >: 2691009    us (s=50003910)


add<Builtin    >: 194316     us (s=6185515908288643546)
add<Library    >: 228649     us (s=6185515908288643546)
add<mp::i128   >: 2255844    us (s=9223372036754775813)

sub<Builtin    >: 194599     us (s=6843120887274356308)
sub<Library    >: 200360     us (s=6843120887274356308)
sub<mp::i128   >: 2575737    us (s=9223372036804771898)

mul<Builtin    >: 235447     us (s=4541227745721732167)
mul<Library    >: 121086     us (s=4541227745721732167)
mul<mp::i128   >: 4221556    us (s=9223372036754775813)

div<Builtin    >: 2121360    us (s=842110335)
div<Library    >: 3061219    us (s=794428600)
div<mp::i128   >: 4083373    us (s=842110335)


---------------------------
Two-One Word Operations
---------------------------

EQ <builtin    >: 134619     us (s=0)
NE <builtin    >: 189991     us (s=99999995)
LT <builtin    >: 171495     us (s=49999995)
LE <builtin    >: 168700     us (s=49999995)
GT <builtin    >: 208009     us (s=50000000)
GE <builtin    >: 276870     us (s=50000000)
SUM<builtin    >: 1150140    us (s=50000000)

EQ <library    >: 170769     us (s=0)
NE <library    >: 184843     us (s=99999995)
LT <library    >: 143782     us (s=49999995)
LE <library    >: 164676     us (s=49999995)
GT <library    >: 211237     us (s=50000000)
GE <library    >: 151231     us (s=50000000)
SUM<library    >: 1026984    us (s=50000000)

EQ <mp::i128   >: 257008     us (s=0)
NE <mp::i128   >: 260071     us (s=99999995)
LT <mp::i128   >: 433246     us (s=49999995)
LE <mp::i128   >: 376449     us (s=49999995)
GT <mp::i128   >: 428539     us (s=50000000)
GE <mp::i128   >: 345370     us (s=50000000)
SUM<mp::i128   >: 2101107    us (s=50000000)


add<Builtin    >: 203926     us (s=343956012596809285)
add<Library    >: 210816     us (s=343956012596809285)
add<mp::i128   >: 2597780    us (s=9223372036754775813)

sub<Builtin    >: 210709     us (s=-3653511415782518285)
sub<Library    >: 218709     us (s=-3653511415782518285)
sub<mp::i128   >: 2470340    us (s=9223372036804775808)

mul<Builtin    >: 336474     us (s=-4123520334931000621)
mul<Library    >: 127737     us (s=-4123520334931000621)
mul<mp::i128   >: 3617589    us (s=9223372036754775813)

div<Builtin    >: 1160227    us (s=-7811173908556072441)
div<Library    >: 679711     us (s=-7811173908556072441)
div<mp::i128   >: 7177181    us (s=-5320619359650184725)


---------------------------
One-Two Word Operations
---------------------------

EQ <builtin    >: 168076     us (s=0)
NE <builtin    >: 156917     us (s=99999995)
LT <builtin    >: 185986     us (s=50000000)
LE <builtin    >: 226869     us (s=50000000)
GT <builtin    >: 155703     us (s=49999995)
GE <builtin    >: 160606     us (s=49999995)
SUM<builtin    >: 1054554    us (s=49999995)

EQ <library    >: 170055     us (s=0)
NE <library    >: 176245     us (s=99999995)
LT <library    >: 169260     us (s=50000000)
LE <library    >: 202243     us (s=50000000)
GT <library    >: 177301     us (s=49999995)
GE <library    >: 143025     us (s=49999995)
SUM<library    >: 1038530    us (s=49999995)

EQ <mp::i128   >: 254906     us (s=0)
NE <mp::i128   >: 410146     us (s=99999995)
LT <mp::i128   >: 389580     us (s=50000000)
LE <mp::i128   >: 365699     us (s=50000000)
GT <mp::i128   >: 366737     us (s=49999995)
GE <mp::i128   >: 436431     us (s=49999995)
SUM<mp::i128   >: 2223890    us (s=49999995)


add<Builtin    >: 181894     us (s=-7830799847379348713)
add<Library    >: 208777     us (s=-7830799847379348713)
add<mp::i128   >: 2537292    us (s=9223372036754775813)

sub<Builtin    >: 202022     us (s=7057049957990609625)
sub<Library    >: 178262     us (s=7057049957990609625)
sub<mp::i128   >: 2508574    us (s=9223372036804775813)

mul<Builtin    >: 261816     us (s=-3342987143770793731)
mul<Library    >: 106167     us (s=-3342987143770793731)
mul<mp::i128   >: 3482489    us (s=9223372036754775813)

div<Builtin    >: 1186562    us (s=-8224331597080434031)
div<Library    >: 815570     us (s=-8224331597080434031)
div<mp::i128   >: 7647289    us (s=-3424691974224001197)


---------------------------
Random Width Operations
---------------------------

EQ <builtin    >: 168433     us (s=0)
NE <builtin    >: 171013     us (s=99999995)
LT <builtin    >: 414866     us (s=49999275)
LE <builtin    >: 401033     us (s=49999275)
GT <builtin    >: 459797     us (s=50000720)
GE <builtin    >: 455642     us (s=50000720)
SUM<builtin    >: 2071237    us (s=50000720)

EQ <library    >: 171560     us (s=0)
NE <library    >: 173285     us (s=99999995)
LT <library    >: 390557     us (s=49999275)
LE <library    >: 426724     us (s=49999275)
GT <library    >: 413786     us (s=50000720)
GE <library    >: 410459     us (s=50000720)
SUM<library    >: 1986813    us (s=50000720)

EQ <mp::i128   >: 611711     us (s=0)
NE <mp::i128   >: 644510     us (s=99999995)
LT <mp::i128   >: 839876     us (s=49999275)
LE <mp::i128   >: 915678     us (s=49999275)
GT <mp::i128   >: 924001     us (s=50000720)
GE <mp::i128   >: 916070     us (s=50000720)
SUM<mp::i128   >: 4852262    us (s=50000720)


add<Builtin    >: 175248     us (s=3475573289369278391)
add<Library    >: 189375     us (s=3475573289369278391)
add<mp::i128   >: 2683951    us (s=-2451457988616679427)

sub<Builtin    >: 183900     us (s=-6820401180797976513)
sub<Library    >: 180120     us (s=-6820401180797976513)
sub<mp::i128   >: 2909949    us (s=-3790910715337473168)

mul<Builtin    >: 296214     us (s=1850423372688224498)
mul<Library    >: 100509     us (s=1850423372688224498)
mul<mp::i128   >: 3671942    us (s=9223372036754775813)

div<Builtin    >: 1526587    us (s=-393146628378608265)
div<Library    >: 1767148    us (s=-393146628390532195)
div<mp::i128   >: 5835366    us (s=-3701978326253002138)

 
EXIT STATUS: 1 
====== END OUTPUT ======

The div result is ever so slightly different...

With fixed div we are slightly worse off:

====== BEGIN OUTPUT ======

---------------------------
Two Word Operations
---------------------------

EQ <builtin    >: 129094     us (s=0)
NE <builtin    >: 120221     us (s=99999995)
LT <builtin    >: 205123     us (s=49997340)
LE <builtin    >: 237450     us (s=49997340)
GT <builtin    >: 244997     us (s=50002655)
GE <builtin    >: 241452     us (s=50002655)
SUM<builtin    >: 1179701    us (s=50002655)

EQ <library    >: 130653     us (s=0)
NE <library    >: 169894     us (s=99999995)
LT <library    >: 189464     us (s=49997340)
LE <library    >: 201915     us (s=49997340)
GT <library    >: 215293     us (s=50002655)
GE <library    >: 217517     us (s=50002655)
SUM<library    >: 1126015    us (s=50002655)

EQ <mp::i128   >: 309936     us (s=0)
NE <mp::i128   >: 479199     us (s=99999995)
LT <mp::i128   >: 386255     us (s=49997340)
LE <mp::i128   >: 346657     us (s=49997340)
GT <mp::i128   >: 337692     us (s=50002655)
GE <mp::i128   >: 593199     us (s=50002655)
SUM<mp::i128   >: 2453387    us (s=50002655)


add<Builtin    >: 194064     us (s=7061247353260042742)
add<Library    >: 207287     us (s=7061247353260042742)
add<mp::i128   >: 2167441    us (s=-8643776743815040341)

sub<Builtin    >: 198482     us (s=-89144910062960076)
sub<Library    >: 205257     us (s=-89144910062960076)
sub<mp::i128   >: 2217666    us (s=3175220422005773202)

mul<Builtin    >: 363669     us (s=1771533121646374909)
mul<Library    >: 104649     us (s=1771533121646374909)
mul<mp::i128   >: 3084613    us (s=9223372036754775813)

div<Builtin    >: 1071999    us (s=889346420)
div<Library    >: 1480622    us (s=889346420)
div<mp::i128   >: 2405203    us (s=889346420)


---------------------------
One Word Operations
---------------------------

EQ <builtin    >: 165380     us (s=0)
NE <builtin    >: 134417     us (s=99999995)
LT <builtin    >: 222591     us (s=49996085)
LE <builtin    >: 202340     us (s=49996085)
GT <builtin    >: 131207     us (s=50003910)
GE <builtin    >: 330468     us (s=50003910)
SUM<builtin    >: 1186804    us (s=50003910)

EQ <library    >: 286083     us (s=0)
NE <library    >: 291231     us (s=99999995)
LT <library    >: 275015     us (s=49996085)
LE <library    >: 208591     us (s=49996085)
GT <library    >: 186655     us (s=50003910)
GE <library    >: 178753     us (s=50003910)
SUM<library    >: 1426819    us (s=50003910)

EQ <mp::i128   >: 367681     us (s=0)
NE <mp::i128   >: 326477     us (s=99999995)
LT <mp::i128   >: 352696     us (s=49996085)
LE <mp::i128   >: 530465     us (s=49996085)
GT <mp::i128   >: 398281     us (s=50003910)
GE <mp::i128   >: 536997     us (s=50003910)
SUM<mp::i128   >: 2512983    us (s=50003910)


add<Builtin    >: 225144     us (s=6185515908288643546)
add<Library    >: 218805     us (s=6185515908288643546)
add<mp::i128   >: 2357594    us (s=9223372036754775813)

sub<Builtin    >: 197790     us (s=6843120887274356308)
sub<Library    >: 209938     us (s=6843120887274356308)
sub<mp::i128   >: 2651685    us (s=9223372036804771898)

mul<Builtin    >: 390730     us (s=4541227745721732167)
mul<Library    >: 132275     us (s=4541227745721732167)
mul<mp::i128   >: 4034090    us (s=9223372036754775813)

div<Builtin    >: 1587228    us (s=842110335)
div<Library    >: 3180959    us (s=842110335)
div<mp::i128   >: 4045391    us (s=842110335)


---------------------------
Two-One Word Operations
---------------------------

EQ <builtin    >: 177603     us (s=0)
NE <builtin    >: 134672     us (s=99999995)
LT <builtin    >: 163010     us (s=49999995)
LE <builtin    >: 227332     us (s=49999995)
GT <builtin    >: 188367     us (s=50000000)
GE <builtin    >: 152708     us (s=50000000)
SUM<builtin    >: 1044100    us (s=50000000)

EQ <library    >: 194373     us (s=0)
NE <library    >: 166013     us (s=99999995)
LT <library    >: 195623     us (s=49999995)
LE <library    >: 198370     us (s=49999995)
GT <library    >: 197994     us (s=50000000)
GE <library    >: 201728     us (s=50000000)
SUM<library    >: 1154551    us (s=50000000)

EQ <mp::i128   >: 224908     us (s=0)
NE <mp::i128   >: 294386     us (s=99999995)
LT <mp::i128   >: 434321     us (s=49999995)
LE <mp::i128   >: 475823     us (s=49999995)
GT <mp::i128   >: 430738     us (s=50000000)
GE <mp::i128   >: 393815     us (s=50000000)
SUM<mp::i128   >: 2254419    us (s=50000000)


add<Builtin    >: 199564     us (s=343956012596809285)
add<Library    >: 211896     us (s=343956012596809285)
add<mp::i128   >: 2680497    us (s=9223372036754775813)

sub<Builtin    >: 186168     us (s=-3653511415782518285)
sub<Library    >: 210590     us (s=-3653511415782518285)
sub<mp::i128   >: 2696009    us (s=9223372036804775808)

mul<Builtin    >: 314766     us (s=-4123520334931000621)
mul<Library    >: 127530     us (s=-4123520334931000621)
mul<mp::i128   >: 3666262    us (s=9223372036754775813)

div<Builtin    >: 1147563    us (s=-7811173908556072441)
div<Library    >: 1270648    us (s=-7811173908556072441)
div<mp::i128   >: 7284010    us (s=-5320619359650184725)


---------------------------
One-Two Word Operations
---------------------------

EQ <builtin    >: 127626     us (s=0)
NE <builtin    >: 165855     us (s=99999995)
LT <builtin    >: 230136     us (s=50000000)
LE <builtin    >: 157850     us (s=50000000)
GT <builtin    >: 158070     us (s=49999995)
GE <builtin    >: 159927     us (s=49999995)
SUM<builtin    >: 999874     us (s=49999995)

EQ <library    >: 118939     us (s=0)
NE <library    >: 144986     us (s=99999995)
LT <library    >: 171419     us (s=50000000)
LE <library    >: 198528     us (s=50000000)
GT <library    >: 194346     us (s=49999995)
GE <library    >: 163784     us (s=49999995)
SUM<library    >: 992443     us (s=49999995)

EQ <mp::i128   >: 237647     us (s=0)
NE <mp::i128   >: 327939     us (s=99999995)
LT <mp::i128   >: 376109     us (s=50000000)
LE <mp::i128   >: 438167     us (s=50000000)
GT <mp::i128   >: 385969     us (s=49999995)
GE <mp::i128   >: 353850     us (s=49999995)
SUM<mp::i128   >: 2120071    us (s=49999995)


add<Builtin    >: 189407     us (s=-7830799847379348713)
add<Library    >: 185534     us (s=-7830799847379348713)
add<mp::i128   >: 2558725    us (s=9223372036754775813)

sub<Builtin    >: 193437     us (s=7057049957990609625)
sub<Library    >: 201619     us (s=7057049957990609625)
sub<mp::i128   >: 2882493    us (s=9223372036804775813)

mul<Builtin    >: 316970     us (s=-3342987143770793731)
mul<Library    >: 100321     us (s=-3342987143770793731)
mul<mp::i128   >: 3330412    us (s=9223372036754775813)

div<Builtin    >: 1117436    us (s=-8224331597080434031)
div<Library    >: 1521016    us (s=-8224331597080434031)
div<mp::i128   >: 7552157    us (s=-3424691974224001197)


---------------------------
Random Width Operations
---------------------------

EQ <builtin    >: 155488     us (s=0)
NE <builtin    >: 121401     us (s=99999995)
LT <builtin    >: 443750     us (s=49999275)
LE <builtin    >: 452630     us (s=49999275)
GT <builtin    >: 534113     us (s=50000720)
GE <builtin    >: 456013     us (s=50000720)
SUM<builtin    >: 2163790    us (s=50000720)

EQ <library    >: 161829     us (s=0)
NE <library    >: 154526     us (s=99999995)
LT <library    >: 425458     us (s=49999275)
LE <library    >: 419575     us (s=49999275)
GT <library    >: 409918     us (s=50000720)
GE <library    >: 439151     us (s=50000720)
SUM<library    >: 2010929    us (s=50000720)

EQ <mp::i128   >: 581393     us (s=0)
NE <mp::i128   >: 638551     us (s=99999995)
LT <mp::i128   >: 799684     us (s=49999275)
LE <mp::i128   >: 837323     us (s=49999275)
GT <mp::i128   >: 884215     us (s=50000720)
GE <mp::i128   >: 843852     us (s=50000720)
SUM<mp::i128   >: 4585469    us (s=50000720)


add<Builtin    >: 186742     us (s=3475573289369278391)
add<Library    >: 183291     us (s=3475573289369278391)
add<mp::i128   >: 2774725    us (s=-2451457988616679427)

sub<Builtin    >: 202495     us (s=-6820401180797976513)
sub<Library    >: 200953     us (s=-6820401180797976513)
sub<mp::i128   >: 3032974    us (s=-3790910715337473168)

mul<Builtin    >: 364956     us (s=1850423372688224498)
mul<Library    >: 124506     us (s=1850423372688224498)
mul<mp::i128   >: 3768659    us (s=9223372036754775813)

div<Builtin    >: 1518165    us (s=-393146628378608265)
div<Library    >: 2235777    us (s=-393146628378608265)
div<mp::i128   >: 5787997    us (s=-3701978326253002138)

 
EXIT STATUS: 1 
====== END OUTPUT ======

@mborland
Copy link
Member Author

mborland commented May 1, 2025

X86 WIndows MSVC 14.3:

====== BEGIN OUTPUT ======

---------------------------
Two Word Operations
---------------------------

EQ <builtin    >: 164119     us (s=0)
NE <builtin    >: 168267     us (s=99999995)
LT <builtin    >: 669862     us (s=49997340)
LE <builtin    >: 640632     us (s=49997340)
GT <builtin    >: 704661     us (s=50002655)
GE <builtin    >: 733350     us (s=50002655)
SUM<builtin    >: 3082761    us (s=50002655)

EQ <library    >: 173437     us (s=0)
NE <library    >: 141645     us (s=99999995)
LT <library    >: 610849     us (s=49997340)
LE <library    >: 618799     us (s=49997340)
GT <library    >: 600308     us (s=50002655)
GE <library    >: 517042     us (s=50002655)
SUM<library    >: 2663833    us (s=50002655)

EQ <mp::i128   >: 274009     us (s=0)
NE <mp::i128   >: 301473     us (s=99999995)
LT <mp::i128   >: 598091     us (s=49997340)
LE <mp::i128   >: 602860     us (s=49997340)
GT <mp::i128   >: 626851     us (s=50002655)
GE <mp::i128   >: 593481     us (s=50002655)
SUM<mp::i128   >: 2997350    us (s=50002655)


add<Builtin    >: 166121     us (s=7061247353260042742)
add<Library    >: 148865     us (s=7061247353260042742)
add<mp::i128   >: 1804831    us (s=-8643776743815040341)

sub<Builtin    >: 835770     us (s=-89144910062960076)
sub<Library    >: 150951     us (s=-89144910062960076)
sub<mp::i128   >: 3134170    us (s=3175220422005773202)

mul<Builtin    >: 2350694    us (s=1771533121646374909)
mul<Library    >: 2763559    us (s=1771533121646374909)
mul<mp::i128   >: 5172531    us (s=9223372036754775813)

div<Builtin    >: 4353567    us (s=889346420)
div<Library    >: 3915778    us (s=889346420)
div<mp::i128   >: 6326145    us (s=889346420)


---------------------------
One Word Operations
---------------------------

EQ <builtin    >: 132667     us (s=0)
NE <builtin    >: 146618     us (s=99999995)
LT <builtin    >: 472678     us (s=49996085)
LE <builtin    >: 480648     us (s=49996085)
GT <builtin    >: 516523     us (s=50003910)
GE <builtin    >: 646679     us (s=50003910)
SUM<builtin    >: 2396405    us (s=50003910)

EQ <library    >: 154560     us (s=0)
NE <library    >: 149495     us (s=99999995)
LT <library    >: 656683     us (s=49996085)
LE <library    >: 598782     us (s=49996085)
GT <library    >: 581376     us (s=50003910)
GE <library    >: 636174     us (s=50003910)
SUM<library    >: 2777694    us (s=50003910)

EQ <mp::i128   >: 290490     us (s=0)
NE <mp::i128   >: 370961     us (s=99999995)
LT <mp::i128   >: 604194     us (s=49996085)
LE <mp::i128   >: 609547     us (s=49996085)
GT <mp::i128   >: 619171     us (s=50003910)
GE <mp::i128   >: 491103     us (s=50003910)
SUM<mp::i128   >: 2986077    us (s=50003910)


add<Builtin    >: 194166     us (s=6185515908288643546)
add<Library    >: 204858     us (s=6185515908288643546)
add<mp::i128   >: 2856148    us (s=9223372036754775813)

sub<Builtin    >: 1115327    us (s=6843120887274356308)
sub<Library    >: 225019     us (s=6843120887274356308)
sub<mp::i128   >: 3079287    us (s=9223372036804771898)

mul<Builtin    >: 2681595    us (s=4541227745721732167)
mul<Library    >: 4066910    us (s=4541227745721732167)
mul<mp::i128   >: 6809509    us (s=9223372036754775813)

div<Builtin    >: 3440708    us (s=842110335)
div<Library    >: 4169074    us (s=842110335)
div<mp::i128   >: 5493336    us (s=842110335)


---------------------------
Two-One Word Operations
---------------------------

EQ <builtin    >: 127652     us (s=0)
NE <builtin    >: 127473     us (s=99999995)
LT <builtin    >: 196243     us (s=49999995)
LE <builtin    >: 196198     us (s=49999995)
GT <builtin    >: 275428     us (s=50000000)
GE <builtin    >: 268798     us (s=50000000)
SUM<builtin    >: 1192350    us (s=50000000)

EQ <library    >: 125929     us (s=0)
NE <library    >: 126393     us (s=99999995)
LT <library    >: 292086     us (s=49999995)
LE <library    >: 253442     us (s=49999995)
GT <library    >: 208435     us (s=50000000)
GE <library    >: 189558     us (s=50000000)
SUM<library    >: 1196455    us (s=50000000)

EQ <mp::i128   >: 289726     us (s=0)
NE <mp::i128   >: 388359     us (s=99999995)
LT <mp::i128   >: 465281     us (s=49999995)
LE <mp::i128   >: 394429     us (s=49999995)
GT <mp::i128   >: 378514     us (s=50000000)
GE <mp::i128   >: 379373     us (s=50000000)
SUM<mp::i128   >: 2296233    us (s=50000000)


add<Builtin    >: 167723     us (s=343956012596809285)
add<Library    >: 216844     us (s=343956012596809285)
add<mp::i128   >: 2440956    us (s=9223372036754775813)

sub<Builtin    >: 844438     us (s=-3653511415782518285)
sub<Library    >: 149170     us (s=-3653511415782518285)
sub<mp::i128   >: 2300559    us (s=9223372036804775808)

mul<Builtin    >: 1874205    us (s=-4123520334931000621)
mul<Library    >: 3453024    us (s=-4123520334931000621)
mul<mp::i128   >: 4862294    us (s=9223372036754775813)

div<Builtin    >: 7948435    us (s=-7811173908556072441)
div<Library    >: 5709304    us (s=-7811173908556072441)
div<mp::i128   >: 11122886   us (s=-5320619359650184725)


---------------------------
One-Two Word Operations
---------------------------

EQ <builtin    >: 205526     us (s=0)
NE <builtin    >: 189744     us (s=99999995)
LT <builtin    >: 391531     us (s=50000000)
LE <builtin    >: 392076     us (s=50000000)
GT <builtin    >: 260363     us (s=49999995)
GE <builtin    >: 299225     us (s=49999995)
SUM<builtin    >: 1739182    us (s=49999995)

EQ <library    >: 158159     us (s=0)
NE <library    >: 132734     us (s=99999995)
LT <library    >: 226203     us (s=50000000)
LE <library    >: 255125     us (s=50000000)
GT <library    >: 232572     us (s=49999995)
GE <library    >: 317842     us (s=49999995)
SUM<library    >: 1323228    us (s=49999995)

EQ <mp::i128   >: 300559     us (s=0)
NE <mp::i128   >: 310759     us (s=99999995)
LT <mp::i128   >: 442688     us (s=50000000)
LE <mp::i128   >: 516205     us (s=50000000)
GT <mp::i128   >: 549439     us (s=49999995)
GE <mp::i128   >: 512303     us (s=49999995)
SUM<mp::i128   >: 2632536    us (s=49999995)


add<Builtin    >: 205809     us (s=-7830799847379348713)
add<Library    >: 208683     us (s=-7830799847379348713)
add<mp::i128   >: 3321116    us (s=9223372036754775813)

sub<Builtin    >: 1054918    us (s=7057049957990609625)
sub<Library    >: 154982     us (s=7057049957990609625)
sub<mp::i128   >: 3345429    us (s=9223372036804775813)

mul<Builtin    >: 2688476    us (s=-3342987143770793731)
mul<Library    >: 4470983    us (s=-3342987143770793731)
mul<mp::i128   >: 6359804    us (s=9223372036754775813)

div<Builtin    >: 7315469    us (s=-8224331597080434031)
div<Library    >: 6516718    us (s=-8224331597080434031)
div<mp::i128   >: 11435737   us (s=-3424691974224001197)


---------------------------
Random Width Operations
---------------------------

EQ <builtin    >: 127611     us (s=0)
NE <builtin    >: 135798     us (s=99999995)
LT <builtin    >: 687541     us (s=49999275)
LE <builtin    >: 643416     us (s=49999275)
GT <builtin    >: 632026     us (s=50000720)
GE <builtin    >: 765860     us (s=50000720)
SUM<builtin    >: 2992844    us (s=50000720)

EQ <library    >: 151387     us (s=0)
NE <library    >: 151422     us (s=99999995)
LT <library    >: 674709     us (s=49999275)
LE <library    >: 624921     us (s=49999275)
GT <library    >: 665503     us (s=50000720)
GE <library    >: 719766     us (s=50000720)
SUM<library    >: 2988307    us (s=50000720)

EQ <mp::i128   >: 624087     us (s=0)
NE <mp::i128   >: 535763     us (s=99999995)
LT <mp::i128   >: 711797     us (s=49999275)
LE <mp::i128   >: 728561     us (s=49999275)
GT <mp::i128   >: 765035     us (s=50000720)
GE <mp::i128   >: 806279     us (s=50000720)
SUM<mp::i128   >: 4172055    us (s=50000720)


add<Builtin    >: 183356     us (s=3475573289369278391)
add<Library    >: 147910     us (s=3475573289369278391)
add<mp::i128   >: 2812503    us (s=-2451457988616679427)

sub<Builtin    >: 1091888    us (s=-6820401180797976513)
sub<Library    >: 188436     us (s=-6820401180797976513)
sub<mp::i128   >: 2773646    us (s=-3790910715337473168)

mul<Builtin    >: 2690023    us (s=1850423372688224498)
mul<Library    >: 3333646    us (s=1850423372688224498)
mul<mp::i128   >: 5653252    us (s=9223372036754775813)

div<Builtin    >: 6251149    us (s=-393146628378608265)
div<Library    >: 5142128    us (s=-393146628378608265)
div<mp::i128   >: 8299404    us (s=-3701978326253002138)

 
EXIT STATUS: 1 
====== END OUTPUT ======

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Optimization Make Something Faster
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant