That is just *weird*.  I'm testing on bare metal, and I keep measuring
significantly better performance for the 64-bit code.  Here's an i7-2700K
@ 3.50GHz.  (I added a "rolled x2" measurement just for interest's sake.)

The idle performance is very similar for the original and unrolled x2
versions, but under load the original degrades far more. (174.5 cycles
vs. 132.1 for fast_mix3.)

And the 64-bit code is less than 2/3 the time of the 32-bit code
under load. (84.3 cycles average = 132.1 * 63.8%)


Idle            make -j9

Rolled x3:
27043 1212      62897 28037
26910 1547      58415 25790
27095 1302      59158 26083
30684 6233      37242 15848
26979 1339      59683 24658
27042 1534      61609 27537
27069 1402      56379 25877
27301 1162      56782 26379
27300 1535      55344 25003
26873 1507      48627 22207

Rolled x2:
25697 2859      34779 11771
27097 5065      31805 12125
25564 2646      54448 22853
25123 2191      57469 29098
24931 2106      57621 27855
25223 2207      63852 31484
24956 2112      74393 34080
25889 2340      65434 33316
25170 2031      68246 31109
25541 2296      70891 34294

Unrolled x3:
23066 1358      50698 29156
22990 1569      59566 28935
22797 1269      58363 28813
22321 1004      54652 30148
23122 1545      52651 29113
22704 875       57904 33033
22793 979       51882 28880
22413 891       55537 30635
22814 997       52760 27188
22998 1020      59592 30133

Original:
22038 2303      26656 18045
21209 2082      37559 22256
21134 1626      40082 23261
20689 1436      34227 19133
20804 1503      48391 28563
20979 1617      48235 28095
20752 1427      52101 29817
21046 1830      56703 30179
20828 1362      51196 28658
20865 1659      51641 29680

Unrolled x2:
21051 1667      29000 17989
20889 1381      28328 16046
21244 1664      33015 21364
21130 1628      32588 21417
20753 1497      42376 25412
21943 2917      39879 24932
20880 1279      24064 15512
21303 1389      38724 24107
21416 1712      36570 23549
20956 1652      33578 22983

64-bit, unrolled x2:
16037 1031      16651 9740
16664 2094      19199 12689
16129 1057      20216 8590
16211 905       18382 9964
16637 2056      20125 8495
16229 1218      24190 13176
16515 1632      28717 18022
16220 1096      23762 13147
16307 1103      19599 5382
16326 1145      24844 12837
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to