[PATCH] PowerPC: Optimized mpn functions for PowerPC64

Adhemerval Zanella azanella@linux.vnet.ibm.com
Mon Nov 4 18:39:00 GMT 2013


On 04-11-2013 16:21, Adhemerval Zanella wrote:
> On 04-11-2013 14:13, Joseph S. Myers wrote:
>> On Mon, 4 Nov 2013, Adhemerval Zanella wrote:
>>
>>> +   version 2.r1 of the License, or (at your option) any later version.
>> Typo "version 2.r1".
>>
>> Benchmarks for strtod would be good.
>>
> Fair enough, I'll address the benchmark in another email.
>
Using the sent benchtest for strtod I got these outputs in a POWER7 3.3GHz ('baseline'
the default for C implemention and 'optimized' using the new MPN ones). As you can see
the gain is where the multiprecision routines are used more extensivelly (input
1e308, 100000000e300, 1e-307, 0.000001e-301, etc.).

-------------- next part --------------
Input 1e308                   :	172.175
Input 100000000e300           :	189.926
Input 0x1p1023                :	48.4244
Input 0x1000p1011             :	55.8959
Input 0x1p1020                :	47.8909
Input 0x0.00001p1040          :	54.5773
Input 1e-307                  :	331.461
Input 0.000001e-301           :	339.079
Input 0.0000001e-300          :	338.891
Input 0.00000001e-299         :	339.377
Input 1000000e-313            :	342.651
Input 10000000e-314           :	346.654
Input 100000000e-315          :	348.683
Input 0x1p-1021               :	42.7711
Input 0x1000p-1033            :	50.3386
Input 0x10000p-1037           :	52.8427
Input 0x0.001p-1009           :	49.489
Input 0x0.0001p-1005          :	49.6526
Input 12.345                  :	104.775
Input 12.345e19               :	72.9272
Input -.1e+9                  :	51.295
Input .125                    :	80.3472
Input 1e20                    :	63.1004
Input 0e-19                   :	22.5513
Input 4                       :	41.576
Input 5.9e-76                 :	188.039
Input 0x1.4p+3                :	44.9408
Input 0xAp0                   :	41.3181
Input 0x0Ap0                  :	41.2204
Input 0x0A                    :	34.7705
Input 0xA0                    :	35.3324
Input 0x0.A0p8                :	43.8738
Input 0x0.50p9                :	43.5455
Input 0x0.28p10               :	44.8817
Input 0x0.14p11               :	44.8596
Input 0x0.0A0p12              :	48.2002
Input 0x0.050p13              :	47.2488
Input 0x0.028p14              :	48.4522
Input 0x0.014p15              :	48.5439
Input 0x00.00A0p16            :	49.4434
Input 0x00.0050p17            :	48.0535
Input 0x00.0028p18            :	52.2341
Input 0x00.0014p19            :	49.5649
Input 0x1p-1023               :	49.9006
Input 0x0.8p-1022             :	53.73
Input Inf                     :	16.3295
Input -Inf                    :	17.5025
Input +InFiNiTy               :	19.5103
Input 0x80000Ap-23            :	55.6887
Input 1e-324                  :	325.84
Input 0x100000000000008p0     :	80.8175
Input 0x100000000000008.p0    :	83.3064
Input 0x100000000000008.00p0  :	84.2314
Input 0x10000000000000800p0   :	82.8613
Input 0x10000000000000801p0   :	82.5403
-------------- next part --------------
Input 1e308                   :	125.52
Input 100000000e300           :	149.022
Input 0x1p1023                :	48.4256
Input 0x1000p1011             :	55.8508
Input 0x1p1020                :	48.0945
Input 0x0.00001p1040          :	54.6276
Input 1e-307                  :	241.074
Input 0.000001e-301           :	250.879
Input 0.0000001e-300          :	248.312
Input 0.00000001e-299         :	250.03
Input 1000000e-313            :	253.052
Input 10000000e-314           :	259.485
Input 100000000e-315          :	261.231
Input 0x1p-1021               :	43.2363
Input 0x1000p-1033            :	51.188
Input 0x10000p-1037           :	53.5091
Input 0x0.001p-1009           :	50.2672
Input 0x0.0001p-1005          :	51.6647
Input 12.345                  :	106.918
Input 12.345e19               :	72.2222
Input -.1e+9                  :	50.7758
Input .125                    :	80.8895
Input 1e20                    :	67.3967
Input 0e-19                   :	22.7033
Input 4                       :	42.0203
Input 5.9e-76                 :	179.132
Input 0x1.4p+3                :	44.94
Input 0xAp0                   :	41.667
Input 0x0Ap0                  :	41.6967
Input 0x0A                    :	34.4236
Input 0xA0                    :	35.9522
Input 0x0.A0p8                :	43.5388
Input 0x0.50p9                :	44.1598
Input 0x0.28p10               :	47.146
Input 0x0.14p11               :	46.7169
Input 0x0.0A0p12              :	48.2613
Input 0x0.050p13              :	47.8564
Input 0x0.028p14              :	49.5957
Input 0x0.014p15              :	48.9982
Input 0x00.00A0p16            :	49.8011
Input 0x00.0050p17            :	48.6582
Input 0x00.0028p18            :	50.7606
Input 0x00.0014p19            :	50.212
Input 0x1p-1023               :	48.5042
Input 0x0.8p-1022             :	50.7972
Input Inf                     :	16.3723
Input -Inf                    :	17.2438
Input +InFiNiTy               :	19.6078
Input 0x80000Ap-23            :	54.8585
Input 1e-324                  :	232.758
Input 0x100000000000008p0     :	81.2731
Input 0x100000000000008.p0    :	82.9393
Input 0x100000000000008.00p0  :	84.5477
Input 0x10000000000000800p0   :	83.3716
Input 0x10000000000000801p0   :	83.5739


More information about the Libc-alpha mailing list