Re: Fastcode SpreadsheetCreator 0.8.2



Hi

When I look at the CompareStrBenchmark290.xls, winner list there
looks different to results. For example Presler results page shows
that CompareStr_PLR_IA32_14_d is fastest and winners page lists
CompareStr_PLR_IA32_17_c as Presler winner.

There is a bug in the function that finds the winner. The winner is not just
the fastest function on the target eg Presler. If two or more functions are
fastest within 1% then the smallest will win.

Taking Presler CompareStr as example

CompareStr_PLR_IA32_14_d 961
CompareStr_PLR_IA32_14_a 962 0,10395
CompareStr_PLR_IA32_14_b 964 0,311203
CompareStr_PLR_IA32_16_a 967 0,620476
CompareStr_PLR_IA32_16_d 969 0,825593
CompareStr_PLR_IA32_16_b 970 0,927835
CompareStr_PLR_IA32_14_c 971 1,029866
CompareStr_PLR_IA32_15_b 972 1,131687
CompareStr_PLR_IA32_15_d 973 1,233299
CompareStr_PLR_IA32_15_a 975 1,435897


All functions downto CompareStr_PLR_IA32_14_c are within 1% of the speed of
the fastest function = CompareStr_PLR_IA32_14_d. This means that they are
all winner candidates and the smallest wins.

Thse sizes are

CompareStr_PLR_IA32_16_a 101
CompareStr_PLR_IA32_14_b 157


and CompareStr_PLR_IA32_16_a is the winner eg. CompareStr_PLR_IA32_16 is the
winner.

The bug is fixed now. Thanks for finding it.

Best regards
Dennis Kjaer Christensen


.


Quantcast