CPU Perf Tester by Darek Mihocka. Built Sep 19 2008 x86 native version Measuring using a clock speed of 1500 MHz Hardware performance frequency = 14 MHz On-chip cycles clock frequency = 1512 MHz GetTickCount elapsed time (ms) = 1000 ms Simple tests of integer and memory operations. Ideally, MIPS should equal the clock speed of your CPU. test 1 integer : 64 ms, 666 ps/instr, 1500 MIPS, 1.0 IPC test 1 address : 64 ms, 666 ps/instr, 1500 MIPS, 1.0 IPC test 1 memory mx : 64 ms, 666 ps/instr, 1500 MIPS, 1.0 IPC test 1 memory sr : 257 ms, 2677 ps/instr, 373 MIPS, 4.0 clk Tests executing pairs of mutually exclusive instructions. You should ideally get double the MIPS. test 2 integer : 34 ms, 354 ps/instr, 2823 MIPS, 1.8 IPC test 2 addr smpl : 33 ms, 343 ps/instr, 2909 MIPS, 1.9 IPC test 2 addr cplx : 98 ms, 1020 ps/instr, 979 MIPS, 1.5 clk test 2 addr/int : 96 ms, 1000 ps/instr, 1000 MIPS, 1.5 clk test 2 memory : 64 ms, 666 ps/instr, 1500 MIPS, 1.0 IPC Triples of mutually exclusive instructions should ideally give triple the MIPS. test 3 integer : 28 ms, 291 ps/instr, 3428 MIPS, 2.2 IPC test 3 addr smpl : 28 ms, 291 ps/instr, 3428 MIPS, 2.2 IPC test 3 addr cplx : 85 ms, 885 ps/instr, 1129 MIPS, 1.3 clk test 3 memory : 64 ms, 666 ps/instr, 1500 MIPS, 1.0 IPC test 4 integer : 24 ms, 250 ps/instr, 4000 MIPS, 2.6 IPC These are tests of simple integer operations. test 5 zero mem : 106 ms, 1104 ps/instr, 905 MIPS, 1.6 clk test 5 -1 to mem : 106 ms, 1104 ps/instr, 905 MIPS, 1.6 clk test 5 load 1 : 24 ms, 250 ps/instr, 4000 MIPS, 2.6 IPC test 6 and0 mem : 110 ms, 1145 ps/instr, 872 MIPS, 1.7 clk test 6 or-1 mem : 111 ms, 1156 ps/instr, 864 MIPS, 1.7 clk test 6 pushpop 1 : 128 ms, 1333 ps/instr, 750 MIPS, 2.0 clk test 7 divide : 3930 ms, 40937 ps/instr, 24 MIPS, 61.4 clk test 8 multiply : 705 ms, 7343 ps/instr, 136 MIPS, 11.0 clk test 9 FP mult : 232 ms, 2416 ps/instr, 413 MIPS, 3.6 clk test 10 FP sqrt : 2560 ms, 26666 ps/instr, 37 MIPS, 40.0 clk test 11 FP ld/st : 2110 ms, 21979 ps/instr, 45 MIPS, 32.9 clk test 12 FP inc 1 : 2500 ms, 26041 ps/instr, 38 MIPS, 39.0 clk test imul r1r1 : 641 ms, 6677 ps/instr, 149 MIPS, 10.0 clk test imul r1r2 : 639 ms, 6656 ps/instr, 150 MIPS, 9.9 clk test imul r12k : 641 ms, 6677 ps/instr, 149 MIPS, 10.0 clk These tests perform various kernel calls test 1 os crit 2 : 677 ms, 225666 ps/instr, 4 MIPS, 338.5 clk test 2 os try ok : 28 ms, 9333 ps/instr, 107 MIPS, 14.0 clk test 3 os pg flt : 443 ms, 14766666 ps/instr, 0.067 MIPS, 22388.0 clk test 4 os virtqr : 39 ms, 1300000 ps/instr, 0.769 MIPS, 1950.5 clk test 5 os virtpr : 45 ms, 1500000 ps/instr, 0.666 MIPS, 2252.2 clk test 6 os isbadr : 336 ms, 11200000 ps/instr, 0.089 MIPS, 16853.9 clk test 7 os isgood : 129 ms, 43000 ps/instr, 23 MIPS, 64.5 clk test 8 os vxpflt : 326 ms, 10866666 ps/instr, 0.092 MIPS, 16304.3 clk test 9 CmpExch 2 : 812 ms, 270666 ps/instr, 3 MIPS, 406.0 clk test 10 GetInpSt : 25 ms, 8333 ps/instr, 120 MIPS, 12.5 clk test 11 GetQStat : 3357 ms, 1119000 ps/instr, 0.893 MIPS, 1679.7 clk test 12 PeekMsg : 4115 ms, 1371666 ps/instr, 0.729 MIPS, 2057.6 clk test 13 MemMap 2 : 372 ms, 12400000 ps/instr, 0.080 MIPS, 18750.0 clk test 14 QueryPrf : 4324 ms, 1441333 ps/instr, 0.693 MIPS, 2164.5 clk These tests perform various integer operations test 1 movsx ax : 64 ms, 666 ps/instr, 1500 MIPS, 1.0 IPC test 2 cwde : 129 ms, 1343 ps/instr, 744 MIPS, 2.0 clk test 3 xchg/mvsx : 961 ms, 10010 ps/instr, 99 MIPS, 15.0 clk test 4 bswap/msx : 129 ms, 1343 ps/instr, 744 MIPS, 2.0 clk test 5 rol/movsx : 129 ms, 1343 ps/instr, 744 MIPS, 2.0 clk test 6 bswap/sar : 128 ms, 1333 ps/instr, 750 MIPS, 2.0 clk test 7 rol/movsx : 128 ms, 1333 ps/instr, 750 MIPS, 2.0 clk test 8 rol/cwde : 191 ms, 1989 ps/instr, 502 MIPS, 2.9 clk test 9 movw/sbb : 705 ms, 7343 ps/instr, 136 MIPS, 11.0 clk test 10 movl/sbb : 152 ms, 1583 ps/instr, 631 MIPS, 2.3 clk test 11 shl : 136 ms, 1416 ps/instr, 705 MIPS, 2.1 clk test 12 lahf : 635 ms, 6614 ps/instr, 151 MIPS, 9.9 clk test 13 pshf/pop : 517 ms, 5385 ps/instr, 185 MIPS, 8.0 clk test 13 pshfpopw : 517 ms, 5385 ps/instr, 185 MIPS, 8.0 clk test 13 pshfpopl : 819 ms, 8531 ps/instr, 117 MIPS, 12.7 clk test 14 inc/lahf : 703 ms, 7322 ps/instr, 136 MIPS, 10.9 clk test 14 tst/lahf : 512 ms, 5333 ps/instr, 187 MIPS, 8.0 clk test 14 or /lahf : 512 ms, 5333 ps/instr, 187 MIPS, 8.0 clk test 15 sbb r,r : 197 ms, 2052 ps/instr, 487 MIPS, 3.0 clk test 16 salc : 124 ms, 1291 ps/instr, 774 MIPS, 1.9 clk test 16 setc al : 123 ms, 1281 ps/instr, 780 MIPS, 1.9 clk test 17 read rtc : 6397 ms, 66635 ps/instr, 15 MIPS, 99.9 clk test 18 func v : 1285 ms, 13385 ps/instr, 74 MIPS, 20.0 clk test 19 func i : 1540 ms, 16041 ps/instr, 62 MIPS, 24.0 clk test 20 func inl : 264 ms, 2750 ps/instr, 363 MIPS, 4.1 clk test 21 mvz mvz : 64 ms, 666 ps/instr, 1500 MIPS, 1.0 IPC test 22 mov shld : 513 ms, 5343 ps/instr, 187 MIPS, 8.0 clk test 23 shld imm : 436 ms, 4541 ps/instr, 220 MIPS, 6.8 clk test 24 shld cl : 500 ms, 5208 ps/instr, 192 MIPS, 7.8 clk test 25 decd shd : 138 ms, 1437 ps/instr, 695 MIPS, 2.1 clk test 26 decd sh : 83 ms, 864 ps/instr, 1156 MIPS, 1.2 clk test 27 call jmp : 766 ms, 7979 ps/instr, 125 MIPS, 11.9 clk test 28 call ind : 902 ms, 9395 ps/instr, 106 MIPS, 14.0 clk test 29 call eax : 699 ms, 7281 ps/instr, 137 MIPS, 10.9 clk test 29 call mis : 3030 ms, 31562 ps/instr, 31 MIPS, 47.3 clk test 30 mov ereg : 24 ms, 250 ps/instr, 4000 MIPS, 2.6 IPC test 31 mov reg8 : 64 ms, 666 ps/instr, 1500 MIPS, 1.0 IPC test 32 mov axbx : 64 ms, 666 ps/instr, 1500 MIPS, 1.0 IPC test 33 mov albl : 63 ms, 656 ps/instr, 1523 MIPS, 1.0 IPC test 34 mov alah : 128 ms, 1333 ps/instr, 750 MIPS, 2.0 clk test 35 mov ahal : 128 ms, 1333 ps/instr, 750 MIPS, 2.0 clk test 36 shl eax : 64 ms, 666 ps/instr, 1500 MIPS, 1.0 IPC test 37 shl al : 63 ms, 656 ps/instr, 1523 MIPS, 1.0 IPC test 38 bt eax,k : 267 ms, 2781 ps/instr, 359 MIPS, 4.1 clk test 39 btc eax : 514 ms, 5354 ps/instr, 186 MIPS, 8.0 clk test 40 mov 8/32 : 128 ms, 1333 ps/instr, 750 MIPS, 2.0 clk test 41 w32 r32 : 112 ms, 1166 ps/instr, 857 MIPS, 1.7 clk unlg 41 w32 r32 : 112 ms, 1166 ps/instr, 857 MIPS, 1.7 clk test 42 w32 r8r8 : 449 ms, 4677 ps/instr, 213 MIPS, 7.0 clk test 42 w32 r8 : 270 ms, 2812 ps/instr, 355 MIPS, 4.2 clk test 42 w32 bt32 : 318 ms, 3312 ps/instr, 301 MIPS, 4.9 clk test 43 w8w8 r32 : 2601 ms, 27093 ps/instr, 36 MIPS, 40.6 clk test 43 w8 r32 : 2410 ms, 25104 ps/instr, 39 MIPS, 37.6 clk test 43 w8 bt32 : 3490 ms, 36354 ps/instr, 27 MIPS, 54.5 clk test 44 w32 r8r8 : 194 ms, 2020 ps/instr, 494 MIPS, 3.0 clk test 44 w32 r8 : 138 ms, 1437 ps/instr, 695 MIPS, 2.1 clk test 45 w8w8 r32 : 335 ms, 3489 ps/instr, 286 MIPS, 5.2 clk test 45 w8 r32 : 112 ms, 1166 ps/instr, 857 MIPS, 1.7 clk test 46 cmov 4x : 160 ms, 1666 ps/instr, 600 MIPS, 2.5 clk test 47 cmovsame : 607 ms, 6322 ps/instr, 158 MIPS, 9.4 clk test 48 cmov mem : 143 ms, 1489 ps/instr, 671 MIPS, 2.2 clk test 49 cmov mem : 479 ms, 4989 ps/instr, 200 MIPS, 7.4 clk test 50 *10=*2*5 : 81 ms, 843 ps/instr, 1185 MIPS, 1.2 clk test 51 *2 + *8 : 66 ms, 687 ps/instr, 1454 MIPS, 1.0 IPC test 52 + + + *8 : 157 ms, 1635 ps/instr, 611 MIPS, 2.4 clk test 53 *2 + *8 : 239 ms, 2489 ps/instr, 401 MIPS, 3.7 clk test 54 <<1 *5 : 167 ms, 1739 ps/instr, 574 MIPS, 2.6 clk test 55 *10=*2*5 : 156 ms, 1625 ps/instr, 615 MIPS, 2.4 clk test 56 MOV cons : 25 ms, 260 ps/instr, 3840 MIPS, 2.5 IPC test 57 QC 4.2 : 389 ms, 4052 ps/instr, 246 MIPS, 6.0 clk test 58 QC 6.0 : 895 ms, 9322 ps/instr, 107 MIPS, 13.9 clk test 59 QC 7.0 : 300 ms, 3125 ps/instr, 320 MIPS, 4.6 clk test 60 QC GNU 1 : 256 ms, 2666 ps/instr, 375 MIPS, 4.0 clk test 61 QC GNU 2 : 641 ms, 6677 ps/instr, 149 MIPS, 10.0 clk test 62 QC GNU 3 : 214 ms, 2229 ps/instr, 448 MIPS, 3.3 clk test 63 push/pop : 73 ms, 760 ps/instr, 1315 MIPS, 1.1 clk test 64 mov2stck : 69 ms, 718 ps/instr, 1391 MIPS, 1.0 IPC test 65 hint tak : 435 ms, 4531 ps/instr, 220 MIPS, 6.7 clk test 66 hint not : 67 ms, 697 ps/instr, 1432 MIPS, 1.0 IPC test 67 hint alt : 91 ms, 947 ps/instr, 1054 MIPS, 1.4 clk test 68 hint nop : 314 ms, 3270 ps/instr, 305 MIPS, 4.9 clk test 69 hint non : 4280 ms, 44583 ps/instr, 22 MIPS, 66.8 clk test 70 loop c70 : 223 ms, 2322 ps/instr, 430 MIPS, 3.4 clk test 71 loop add : 195 ms, 2031 ps/instr, 492 MIPS, 3.0 clk test 72 loop lea : 196 ms, 2041 ps/instr, 489 MIPS, 3.0 clk test 73 loop alt : 190 ms, 1979 ps/instr, 505 MIPS, 2.9 clk test 74 add m2r : 64 ms, 666 ps/instr, 1500 MIPS, 1.0 IPC test 75 add r2m : 323 ms, 3364 ps/instr, 297 MIPS, 5.0 clk test 76 add k2m : 319 ms, 3322 ps/instr, 300 MIPS, 4.9 clk test 77 add slow : 388 ms, 4041 ps/instr, 247 MIPS, 6.0 clk test 78 inc by 1 : 60 ms, 625 ps/instr, 1600 MIPS, 1.0 IPC test 79 add by 1 : 34 ms, 354 ps/instr, 2823 MIPS, 1.8 IPC test 80 prefetch : 24 ms, 250 ps/instr, 4000 MIPS, 2.6 IPC test 81 prefetc0 : 64 ms, 666 ps/instr, 1500 MIPS, 1.0 IPC test 82 xchg mem : 5860 ms, 61041 ps/instr, 16 MIPS, 91.5 clk test 83 lockxchg : 5886 ms, 61312 ps/instr, 16 MIPS, 91.9 clk test 84 xor xchg : 715 ms, 7447 ps/instr, 134 MIPS, 11.1 clk test 99 pusha : 988 ms, 10291 ps/instr, 97 MIPS, 15.4 clk test 99 pushpopa : 1668 ms, 17375 ps/instr, 57 MIPS, 26.0 clk Miscellaneous assembly language tests. test A11 LEA r16 : 132 ms, 1375 ps/instr, 727 MIPS, 2.0 clk test A12 LEA k16 : 128 ms, 1333 ps/instr, 750 MIPS, 2.0 clk test A13 JECXZ n : 128 ms, 1333 ps/instr, 750 MIPS, 2.0 clk test A14 JECXZ t : 1871 ms, 19489 ps/instr, 51 MIPS, 29.2 clk test A14 JECXZ r : 137 ms, 1427 ps/instr, 700 MIPS, 2.1 clk test A15 aligned : 64 ms, 666 ps/instr, 1500 MIPS, 1.0 IPC test A15 span 16 : 64 ms, 666 ps/instr, 1500 MIPS, 1.0 IPC test A15 span 32 : 64 ms, 666 ps/instr, 1500 MIPS, 1.0 IPC test A15 span 64 : 1516 ms, 15791 ps/instr, 63 MIPS, 23.6 clk test A15 span128 : 1518 ms, 15812 ps/instr, 63 MIPS, 23.7 clk test A15 span 4K : 6876 ms, 71625 ps/instr, 13 MIPS, 107.4 clk test A16 savemem : 113 ms, 1177 ps/instr, 849 MIPS, 1.7 clk test A16 saveptr : 109 ms, 1135 ps/instr, 880 MIPS, 1.7 clk test PUSHF/POPF : 6142 ms, 63979 ps/instr, 15 MIPS, 95.9 clk test LAHF/SAHF : 888 ms, 9250 ps/instr, 108 MIPS, 13.8 clk test A18 CLFLUSH : 14904 ms, 155250 ps/instr, 6 MIPS, 232.8 clk test A19a FSTENV : 21387 ms, 222781 ps/instr, 4 MIPS, 334.2 clk test A19b FNSAVE : 35196 ms, 366625 ps/instr, 2 MIPS, 550.0 clk test A19c FXSAVE : 11907 ms, 124031 ps/instr, 8 MIPS, 186.0 clk test A19d STMXCS : 558 ms, 5812 ps/instr, 172 MIPS, 8.7 clk test MMX paddq : 331 ms, 3447 ps/instr, 290 MIPS, 5.1 clk test MMX paddw : 332 ms, 3458 ps/instr, 289 MIPS, 5.1 clk test MMX pxor : 104 ms, 1083 ps/instr, 923 MIPS, 1.6 clk test MMX pmul : 715 ms, 7447 ps/instr, 134 MIPS, 11.1 clk SSE4 POPCNT reg32 : FAILED!! SSE4 CRC32 reg32 : FAILED!! SSSE3 PSHUFB mmx : FAILED!! SSSE3 PSHUFB xmm : FAILED!! SSE2 MOVD : 385 ms, 4010 ps/instr, 249 MIPS, 6.0 clk Atom MOVBE : FAILED!! Dispatch tests. dispatch 1 nop : 3642 ms, 37937 ps/instr, 26 MIPS, 56.9 clk dispatch 2 nops : 3673 ms, 38260 ps/instr, 26 MIPS, 57.3 clk dispatch 3 nops : 3467 ms, 36114 ps/instr, 27 MIPS, 54.1 clk dispatch 4 nops : 3866 ms, 40270 ps/instr, 24 MIPS, 60.4 clk dispatch 5 nops : 3807 ms, 39656 ps/instr, 25 MIPS, 59.4 clk dispatch 6 nops : 3895 ms, 40572 ps/instr, 24 MIPS, 60.8 clk dispatch 7 nops : 4054 ms, 42229 ps/instr, 23 MIPS, 63.3 clk dispatch 8 nops : 4305 ms, 44843 ps/instr, 22 MIPS, 67.2 clk dispatch 9 nops : 4222 ms, 43979 ps/instr, 22 MIPS, 65.9 clk dispatch 10 nops : 4444 ms, 46291 ps/instr, 21 MIPS, 69.4 clk dispatch 11 nops : 4415 ms, 45989 ps/instr, 21 MIPS, 68.9 clk dispatch 12 nops : 4512 ms, 47000 ps/instr, 21 MIPS, 70.5 clk Random memory access for increasing sizes of memory. mem random 2K: 161 ms, 1677 ps/instr, 596 MIPS, 2.5 clk mem random 4K: 160 ms, 1666 ps/instr, 600 MIPS, 2.5 clk mem random 8K: 176 ms, 1833 ps/instr, 545 MIPS, 2.7 clk mem random 16K: 166 ms, 1729 ps/instr, 578 MIPS, 2.5 clk mem random 32K: 297 ms, 3093 ps/instr, 323 MIPS, 4.6 clk mem random 64K: 291 ms, 3031 ps/instr, 329 MIPS, 4.5 clk mem random 128K: 293 ms, 3052 ps/instr, 327 MIPS, 4.5 clk mem random 256K: 336 ms, 3500 ps/instr, 285 MIPS, 5.2 clk mem random 512K: 580 ms, 6041 ps/instr, 165 MIPS, 9.0 clk mem random 1024K: 588 ms, 6125 ps/instr, 163 MIPS, 9.1 clk mem random 2048K: 718 ms, 7479 ps/instr, 133 MIPS, 11.2 clk mem random 4096K: 3740 ms, 38958 ps/instr, 25 MIPS, 58.4 clk Sequential memory access for increasing sizes of memory. mem linear 2K: 82 ms, 854 ps/instr, 1170 MIPS, 1.2 clk mem linear 4K: 80 ms, 833 ps/instr, 1200 MIPS, 1.2 clk mem linear 8K: 80 ms, 833 ps/instr, 1200 MIPS, 1.2 clk mem linear 16K: 82 ms, 854 ps/instr, 1170 MIPS, 1.2 clk mem linear 32K: 90 ms, 937 ps/instr, 1066 MIPS, 1.4 clk mem linear 64K: 89 ms, 927 ps/instr, 1078 MIPS, 1.3 clk mem linear 128K: 89 ms, 927 ps/instr, 1078 MIPS, 1.3 clk mem linear 256K: 90 ms, 937 ps/instr, 1066 MIPS, 1.4 clk mem linear 512K: 91 ms, 947 ps/instr, 1054 MIPS, 1.4 clk mem linear 1024K: 90 ms, 937 ps/instr, 1066 MIPS, 1.4 clk mem linear 2048K: 99 ms, 1031 ps/instr, 969 MIPS, 1.5 clk mem linear 4096K: 102 ms, 1062 ps/instr, 941 MIPS, 1.5 clk Reverse memory access for increasing sizes of memory. mem linear 2K: 80 ms, 833 ps/instr, 1200 MIPS, 1.2 clk mem linear 4K: 79 ms, 822 ps/instr, 1215 MIPS, 1.2 clk mem linear 8K: 80 ms, 833 ps/instr, 1200 MIPS, 1.2 clk mem linear 16K: 82 ms, 854 ps/instr, 1170 MIPS, 1.2 clk mem linear 32K: 89 ms, 927 ps/instr, 1078 MIPS, 1.3 clk mem linear 64K: 89 ms, 927 ps/instr, 1078 MIPS, 1.3 clk mem linear 128K: 89 ms, 927 ps/instr, 1078 MIPS, 1.3 clk mem linear 256K: 89 ms, 927 ps/instr, 1078 MIPS, 1.3 clk mem linear 512K: 90 ms, 937 ps/instr, 1066 MIPS, 1.4 clk mem linear 1024K: 88 ms, 916 ps/instr, 1090 MIPS, 1.3 clk mem linear 2048K: 97 ms, 1010 ps/instr, 989 MIPS, 1.5 clk mem linear 4096K: 102 ms, 1062 ps/instr, 941 MIPS, 1.5 clk