CPU Perf Tester by Darek Mihocka. Built Sep 19 2008 x86 native version Measuring using a clock speed of 2666 MHz Hardware performance frequency = 3 MHz On-chip cycles clock frequency = 2666 MHz GetTickCount elapsed time (ms) = 1001 ms Simple tests of integer and memory operations. Ideally, MIPS should equal the clock speed of your CPU. test 1 integer : 36 ms, 375 ps/instr, 2666 MIPS, 1.0 IPC test 1 address : 36 ms, 375 ps/instr, 2666 MIPS, 1.0 IPC test 1 memory mx : 37 ms, 385 ps/instr, 2594 MIPS, 1.0 IPC test 1 memory sr : 145 ms, 1510 ps/instr, 662 MIPS, 4.0 clk Tests executing pairs of mutually exclusive instructions. You should ideally get double the MIPS. test 2 integer : 30 ms, 312 ps/instr, 3200 MIPS, 1.2 IPC test 2 addr smpl : 37 ms, 385 ps/instr, 2594 MIPS, 1.0 IPC test 2 addr cplx : 36 ms, 375 ps/instr, 2666 MIPS, 1.0 IPC test 2 addr/int : 18 ms, 187 ps/instr, 5333 MIPS, 2.0 IPC test 2 memory : 36 ms, 375 ps/instr, 2666 MIPS, 1.0 IPC Triples of mutually exclusive instructions should ideally give triple the MIPS. test 3 integer : 21 ms, 218 ps/instr, 4571 MIPS, 1.7 IPC test 3 addr smpl : 37 ms, 385 ps/instr, 2594 MIPS, 1.0 IPC test 3 addr cplx : 36 ms, 375 ps/instr, 2666 MIPS, 1.0 IPC test 3 memory : 37 ms, 385 ps/instr, 2594 MIPS, 1.0 IPC test 4 integer : 14 ms, 145 ps/instr, 6857 MIPS, 2.5 IPC These are tests of simple integer operations. test 5 zero mem : 64 ms, 666 ps/instr, 1500 MIPS, 1.7 clk test 5 -1 to mem : 64 ms, 666 ps/instr, 1500 MIPS, 1.7 clk test 5 load 1 : 13 ms, 135 ps/instr, 7384 MIPS, 2.7 IPC test 6 and0 mem : 36 ms, 375 ps/instr, 2666 MIPS, 1.0 IPC test 6 or-1 mem : 36 ms, 375 ps/instr, 2666 MIPS, 1.0 IPC test 6 pushpop 1 : 75 ms, 781 ps/instr, 1280 MIPS, 2.0 clk test 7 divide : 844 ms, 8791 ps/instr, 113 MIPS, 23.4 clk test 8 multiply : 172 ms, 1791 ps/instr, 558 MIPS, 4.7 clk test 9 FP mult : 48 ms, 500 ps/instr, 2000 MIPS, 1.3 clk test 10 FP sqrt : 1162 ms, 12104 ps/instr, 82 MIPS, 32.2 clk test 11 FP ld/st : 472 ms, 4916 ps/instr, 203 MIPS, 13.1 clk test 12 FP inc 1 : 589 ms, 6135 ps/instr, 162 MIPS, 16.3 clk test imul r1r1 : 108 ms, 1125 ps/instr, 888 MIPS, 2.9 clk test imul r1r2 : 109 ms, 1135 ps/instr, 880 MIPS, 3.0 clk test imul r12k : 109 ms, 1135 ps/instr, 880 MIPS, 3.0 clk These tests perform various kernel calls test 1 os crit 2 : 118 ms, 39333 ps/instr, 25 MIPS, 104.8 clk test 2 os try ok : 9 ms, 3000 ps/instr, 333 MIPS, 7.9 clk test 3 os pg flt : 242 ms, 8066666 ps/instr, 0.123 MIPS, 21674.7 clk test 4 os virtqr : 11 ms, 366666 ps/instr, 2 MIPS, 977.6 clk test 5 os virtpr : 10 ms, 333333 ps/instr, 3 MIPS, 888.6 clk test 6 os isbadr : 199 ms, 6633333 ps/instr, 0.150 MIPS, 17773.3 clk test 7 os isgood : 43 ms, 14333 ps/instr, 69 MIPS, 38.2 clk test 8 os vxpflt : 253 ms, 8433333 ps/instr, 0.118 MIPS, 22593.2 clk test 9 CmpExch 2 : 115 ms, 38333 ps/instr, 26 MIPS, 102.2 clk test 10 GetInpSt : 10 ms, 3333 ps/instr, 300 MIPS, 8.8 clk test 11 GetQStat : 693 ms, 231000 ps/instr, 4 MIPS, 615.8 clk test 12 PeekMsg : 907 ms, 302333 ps/instr, 3 MIPS, 806.1 clk test 13 MemMap 2 : 79 ms, 2633333 ps/instr, 0.379 MIPS, 7034.3 clk test 14 QueryPrf : 3864 ms, 1288000 ps/instr, 0.776 MIPS, 3435.5 clk These tests perform various integer operations test 1 movsx ax : 36 ms, 375 ps/instr, 2666 MIPS, 1.0 IPC test 2 cwde : 37 ms, 385 ps/instr, 2594 MIPS, 1.0 IPC test 3 xchg/mvsx : 219 ms, 2281 ps/instr, 438 MIPS, 6.0 clk test 4 bswap/msx : 73 ms, 760 ps/instr, 1315 MIPS, 2.0 clk test 5 rol/movsx : 73 ms, 760 ps/instr, 1315 MIPS, 2.0 clk test 6 bswap/sar : 72 ms, 750 ps/instr, 1333 MIPS, 1.9 clk test 7 rol/movsx : 73 ms, 760 ps/instr, 1315 MIPS, 2.0 clk test 8 rol/cwde : 74 ms, 770 ps/instr, 1297 MIPS, 2.0 clk test 9 movw/sbb : 145 ms, 1510 ps/instr, 662 MIPS, 4.0 clk test 10 movl/sbb : 38 ms, 395 ps/instr, 2526 MIPS, 1.0 IPC test 11 shl : 51 ms, 531 ps/instr, 1882 MIPS, 1.4 clk test 12 lahf : 71 ms, 739 ps/instr, 1352 MIPS, 1.9 clk test 13 pshf/pop : 544 ms, 5666 ps/instr, 176 MIPS, 15.1 clk test 13 pshfpopw : 551 ms, 5739 ps/instr, 174 MIPS, 15.3 clk test 13 pshfpopl : 227 ms, 2364 ps/instr, 422 MIPS, 6.3 clk test 14 inc/lahf : 355 ms, 3697 ps/instr, 270 MIPS, 9.8 clk test 14 tst/lahf : 37 ms, 385 ps/instr, 2594 MIPS, 1.0 IPC test 14 or /lahf : 73 ms, 760 ps/instr, 1315 MIPS, 2.0 clk test 15 sbb r,r : 72 ms, 750 ps/instr, 1333 MIPS, 1.9 clk test 16 salc : 73 ms, 760 ps/instr, 1315 MIPS, 2.0 clk test 16 setc al : 53 ms, 552 ps/instr, 1811 MIPS, 1.4 clk test 17 read rtc : 873 ms, 9093 ps/instr, 109 MIPS, 24.2 clk test 18 func v : 306 ms, 3187 ps/instr, 313 MIPS, 8.4 clk test 19 func i : 444 ms, 4625 ps/instr, 216 MIPS, 12.3 clk test 20 func inl : 116 ms, 1208 ps/instr, 827 MIPS, 3.2 clk test 21 mvz mvz : 36 ms, 375 ps/instr, 2666 MIPS, 1.0 IPC test 22 mov shld : 109 ms, 1135 ps/instr, 880 MIPS, 3.0 clk test 23 shld imm : 37 ms, 385 ps/instr, 2594 MIPS, 1.0 IPC test 24 shld cl : 38 ms, 395 ps/instr, 2526 MIPS, 1.0 IPC test 25 decd shd : 62 ms, 645 ps/instr, 1548 MIPS, 1.7 clk test 26 decd sh : 66 ms, 687 ps/instr, 1454 MIPS, 1.8 clk test 27 call jmp : 156 ms, 1625 ps/instr, 615 MIPS, 4.3 clk test 28 call ind : 152 ms, 1583 ps/instr, 631 MIPS, 4.2 clk test 29 call eax : 160 ms, 1666 ps/instr, 600 MIPS, 4.4 clk test 29 call mis : 549 ms, 5718 ps/instr, 174 MIPS, 15.2 clk test 30 mov ereg : 13 ms, 135 ps/instr, 7384 MIPS, 2.7 IPC test 31 mov reg8 : 13 ms, 135 ps/instr, 7384 MIPS, 2.7 IPC test 32 mov axbx : 37 ms, 385 ps/instr, 2594 MIPS, 1.0 IPC test 33 mov albl : 36 ms, 375 ps/instr, 2666 MIPS, 1.0 IPC test 34 mov alah : 12 ms, 125 ps/instr, 8000 MIPS, 3.0 IPC test 35 mov ahal : 36 ms, 375 ps/instr, 2666 MIPS, 1.0 IPC test 36 shl eax : 37 ms, 385 ps/instr, 2594 MIPS, 1.0 IPC test 37 shl al : 36 ms, 375 ps/instr, 2666 MIPS, 1.0 IPC test 38 bt eax,k : 37 ms, 385 ps/instr, 2594 MIPS, 1.0 IPC test 39 btc eax : 38 ms, 395 ps/instr, 2526 MIPS, 1.0 IPC test 40 mov 8/32 : 133 ms, 1385 ps/instr, 721 MIPS, 3.6 clk test 41 w32 r32 : 36 ms, 375 ps/instr, 2666 MIPS, 1.0 IPC unlg 41 w32 r32 : 36 ms, 375 ps/instr, 2666 MIPS, 1.0 IPC test 42 w32 r8r8 : 109 ms, 1135 ps/instr, 880 MIPS, 3.0 clk test 42 w32 r8 : 36 ms, 375 ps/instr, 2666 MIPS, 1.0 IPC test 42 w32 bt32 : 74 ms, 770 ps/instr, 1297 MIPS, 2.0 clk test 43 w8w8 r32 : 585 ms, 6093 ps/instr, 164 MIPS, 16.2 clk test 43 w8 r32 : 511 ms, 5322 ps/instr, 187 MIPS, 14.1 clk test 43 w8 bt32 : 547 ms, 5697 ps/instr, 175 MIPS, 15.1 clk test 44 w32 r8r8 : 109 ms, 1135 ps/instr, 880 MIPS, 3.0 clk test 44 w32 r8 : 36 ms, 375 ps/instr, 2666 MIPS, 1.0 IPC test 45 w8w8 r32 : 110 ms, 1145 ps/instr, 872 MIPS, 3.0 clk test 45 w8 r32 : 36 ms, 375 ps/instr, 2666 MIPS, 1.0 IPC test 46 cmov 4x : 36 ms, 375 ps/instr, 2666 MIPS, 1.0 IPC test 47 cmovsame : 37 ms, 385 ps/instr, 2594 MIPS, 1.0 IPC test 48 cmov mem : 41 ms, 427 ps/instr, 2341 MIPS, 1.1 clk test 49 cmov mem : 152 ms, 1583 ps/instr, 631 MIPS, 4.2 clk test 50 *10=*2*5 : 36 ms, 375 ps/instr, 2666 MIPS, 1.0 IPC test 51 *2 + *8 : 37 ms, 385 ps/instr, 2594 MIPS, 1.0 IPC test 52 + + + *8 : 39 ms, 406 ps/instr, 2461 MIPS, 1.0 IPC test 53 *2 + *8 : 72 ms, 750 ps/instr, 1333 MIPS, 1.9 clk test 54 <<1 *5 : 42 ms, 437 ps/instr, 2285 MIPS, 1.1 clk test 55 *10=*2*5 : 73 ms, 760 ps/instr, 1315 MIPS, 2.0 clk test 56 MOV cons : 13 ms, 135 ps/instr, 7384 MIPS, 2.7 IPC test 57 QC 4.2 : 149 ms, 1552 ps/instr, 644 MIPS, 4.1 clk test 58 QC 6.0 : 182 ms, 1895 ps/instr, 527 MIPS, 5.0 clk test 59 QC 7.0 : 103 ms, 1072 ps/instr, 932 MIPS, 2.8 clk test 60 QC GNU 1 : 99 ms, 1031 ps/instr, 969 MIPS, 2.7 clk test 61 QC GNU 2 : 134 ms, 1395 ps/instr, 716 MIPS, 3.7 clk test 62 QC GNU 3 : 73 ms, 760 ps/instr, 1315 MIPS, 2.0 clk test 63 push/pop : 37 ms, 385 ps/instr, 2594 MIPS, 1.0 IPC test 64 mov2stck : 25 ms, 260 ps/instr, 3840 MIPS, 1.4 IPC test 65 hint tak : 43 ms, 447 ps/instr, 2232 MIPS, 1.1 clk test 66 hint not : 37 ms, 385 ps/instr, 2594 MIPS, 1.0 IPC test 67 hint alt : 38 ms, 395 ps/instr, 2526 MIPS, 1.0 IPC test 68 hint nop : 45 ms, 468 ps/instr, 2133 MIPS, 1.2 clk test 69 hint non : 37 ms, 385 ps/instr, 2594 MIPS, 1.0 IPC test 70 loop c70 : 82 ms, 854 ps/instr, 1170 MIPS, 2.2 clk test 71 loop add : 85 ms, 885 ps/instr, 1129 MIPS, 2.3 clk test 72 loop lea : 82 ms, 854 ps/instr, 1170 MIPS, 2.2 clk test 73 loop alt : 85 ms, 885 ps/instr, 1129 MIPS, 2.3 clk test 74 add m2r : 73 ms, 760 ps/instr, 1315 MIPS, 2.0 clk test 75 add r2m : 217 ms, 2260 ps/instr, 442 MIPS, 6.0 clk test 76 add k2m : 224 ms, 2333 ps/instr, 428 MIPS, 6.2 clk test 77 add slow : 230 ms, 2395 ps/instr, 417 MIPS, 6.3 clk test 78 inc by 1 : 30 ms, 312 ps/instr, 3200 MIPS, 1.2 IPC test 79 add by 1 : 29 ms, 302 ps/instr, 3310 MIPS, 1.2 IPC test 80 prefetch : 13 ms, 135 ps/instr, 7384 MIPS, 2.7 IPC test 81 prefetc0 : 44 ms, 458 ps/instr, 2181 MIPS, 1.2 clk test 82 xchg mem : 739 ms, 7697 ps/instr, 129 MIPS, 20.5 clk test 83 lockxchg : 745 ms, 7760 ps/instr, 128 MIPS, 20.6 clk test 84 xor xchg : 517 ms, 5385 ps/instr, 185 MIPS, 14.3 clk test 99 pusha : 310 ms, 3229 ps/instr, 309 MIPS, 8.6 clk test 99 pushpopa : 521 ms, 5427 ps/instr, 184 MIPS, 14.4 clk Miscellaneous assembly language tests. test A11 LEA r16 : 57 ms, 593 ps/instr, 1684 MIPS, 1.5 clk test A12 LEA k16 : 80 ms, 833 ps/instr, 1200 MIPS, 2.2 clk test A13 JECXZ n : 38 ms, 395 ps/instr, 2526 MIPS, 1.0 IPC test A14 JECXZ t : 478 ms, 4979 ps/instr, 200 MIPS, 13.2 clk test A14 JECXZ r : 530 ms, 5520 ps/instr, 181 MIPS, 14.7 clk test A15 aligned : 73 ms, 760 ps/instr, 1315 MIPS, 2.0 clk test A15 span 16 : 73 ms, 760 ps/instr, 1315 MIPS, 2.0 clk test A15 span 32 : 72 ms, 750 ps/instr, 1333 MIPS, 1.9 clk test A15 span 64 : 155 ms, 1614 ps/instr, 619 MIPS, 4.3 clk test A15 span128 : 158 ms, 1645 ps/instr, 607 MIPS, 4.3 clk test A15 span 4K : 876 ms, 9125 ps/instr, 109 MIPS, 24.3 clk test A16 savemem : 36 ms, 375 ps/instr, 2666 MIPS, 1.0 IPC test A16 saveptr : 36 ms, 375 ps/instr, 2666 MIPS, 1.0 IPC test PUSHF/POPF : 935 ms, 9739 ps/instr, 102 MIPS, 25.9 clk test LAHF/SAHF : 436 ms, 4541 ps/instr, 220 MIPS, 12.1 clk test A18 CLFLUSH : 4100 ms, 42708 ps/instr, 23 MIPS, 113.8 clk test A19a FSTENV : 3573 ms, 37218 ps/instr, 26 MIPS, 99.2 clk test A19b FNSAVE : 5789 ms, 60302 ps/instr, 16 MIPS, 160.7 clk test A19c FXSAVE : 3393 ms, 35343 ps/instr, 28 MIPS, 94.2 clk test A19d STMXCS : 326 ms, 3395 ps/instr, 294 MIPS, 9.0 clk test MMX paddq : 55 ms, 572 ps/instr, 1745 MIPS, 1.5 clk test MMX paddw : 54 ms, 562 ps/instr, 1777 MIPS, 1.4 clk test MMX pxor : 25 ms, 260 ps/instr, 3840 MIPS, 1.4 IPC test MMX pmul : 127 ms, 1322 ps/instr, 755 MIPS, 3.5 clk SSE4 POPCNT reg32 : 145 ms, 1510 ps/instr, 662 MIPS, 4.0 clk SSE4 CRC32 reg32 : 145 ms, 1510 ps/instr, 662 MIPS, 4.0 clk SSSE3 PSHUFB mmx : 37 ms, 385 ps/instr, 2594 MIPS, 1.0 IPC SSSE3 PSHUFB xmm : 36 ms, 375 ps/instr, 2666 MIPS, 1.0 IPC SSE2 MOVD : 72 ms, 750 ps/instr, 1333 MIPS, 1.9 clk Atom MOVBE : FAILED!! Dispatch tests. dispatch 1 nop : 980 ms, 10208 ps/instr, 97 MIPS, 27.2 clk dispatch 2 nops : 991 ms, 10322 ps/instr, 96 MIPS, 27.5 clk dispatch 3 nops : 991 ms, 10322 ps/instr, 96 MIPS, 27.5 clk dispatch 4 nops : 1043 ms, 10864 ps/instr, 92 MIPS, 28.9 clk dispatch 5 nops : 982 ms, 10229 ps/instr, 97 MIPS, 27.2 clk dispatch 6 nops : 1005 ms, 10468 ps/instr, 95 MIPS, 27.9 clk dispatch 7 nops : 1003 ms, 10447 ps/instr, 95 MIPS, 27.8 clk dispatch 8 nops : 1101 ms, 11468 ps/instr, 87 MIPS, 30.5 clk dispatch 9 nops : 1062 ms, 11062 ps/instr, 90 MIPS, 29.4 clk dispatch 10 nops : 1168 ms, 12166 ps/instr, 82 MIPS, 32.4 clk dispatch 11 nops : 1131 ms, 11781 ps/instr, 84 MIPS, 31.4 clk dispatch 12 nops : 1184 ms, 12333 ps/instr, 81 MIPS, 32.8 clk Random memory access for increasing sizes of memory. mem random 2K: 83 ms, 864 ps/instr, 1156 MIPS, 2.3 clk mem random 4K: 87 ms, 906 ps/instr, 1103 MIPS, 2.4 clk mem random 8K: 83 ms, 864 ps/instr, 1156 MIPS, 2.3 clk mem random 16K: 84 ms, 875 ps/instr, 1142 MIPS, 2.3 clk mem random 32K: 87 ms, 906 ps/instr, 1103 MIPS, 2.4 clk mem random 64K: 146 ms, 1520 ps/instr, 657 MIPS, 4.0 clk mem random 128K: 151 ms, 1572 ps/instr, 635 MIPS, 4.1 clk mem random 256K: 190 ms, 1979 ps/instr, 505 MIPS, 5.2 clk mem random 512K: 199 ms, 2072 ps/instr, 482 MIPS, 5.5 clk mem random 1024K: 200 ms, 2083 ps/instr, 480 MIPS, 5.5 clk mem random 2048K: 197 ms, 2052 ps/instr, 487 MIPS, 5.4 clk mem random 4096K: 411 ms, 4281 ps/instr, 233 MIPS, 11.4 clk Sequential memory access for increasing sizes of memory. mem linear 2K: 40 ms, 416 ps/instr, 2400 MIPS, 1.1 clk mem linear 4K: 41 ms, 427 ps/instr, 2341 MIPS, 1.1 clk mem linear 8K: 41 ms, 427 ps/instr, 2341 MIPS, 1.1 clk mem linear 16K: 40 ms, 416 ps/instr, 2400 MIPS, 1.1 clk mem linear 32K: 52 ms, 541 ps/instr, 1846 MIPS, 1.4 clk mem linear 64K: 41 ms, 427 ps/instr, 2341 MIPS, 1.1 clk mem linear 128K: 42 ms, 437 ps/instr, 2285 MIPS, 1.1 clk mem linear 256K: 42 ms, 437 ps/instr, 2285 MIPS, 1.1 clk mem linear 512K: 42 ms, 437 ps/instr, 2285 MIPS, 1.1 clk mem linear 1024K: 43 ms, 447 ps/instr, 2232 MIPS, 1.1 clk mem linear 2048K: 43 ms, 447 ps/instr, 2232 MIPS, 1.1 clk mem linear 4096K: 44 ms, 458 ps/instr, 2181 MIPS, 1.2 clk Reverse memory access for increasing sizes of memory. mem linear 2K: 41 ms, 427 ps/instr, 2341 MIPS, 1.1 clk mem linear 4K: 41 ms, 427 ps/instr, 2341 MIPS, 1.1 clk mem linear 8K: 41 ms, 427 ps/instr, 2341 MIPS, 1.1 clk mem linear 16K: 41 ms, 427 ps/instr, 2341 MIPS, 1.1 clk mem linear 32K: 41 ms, 427 ps/instr, 2341 MIPS, 1.1 clk mem linear 64K: 42 ms, 437 ps/instr, 2285 MIPS, 1.1 clk mem linear 128K: 54 ms, 562 ps/instr, 1777 MIPS, 1.4 clk mem linear 256K: 42 ms, 437 ps/instr, 2285 MIPS, 1.1 clk mem linear 512K: 42 ms, 437 ps/instr, 2285 MIPS, 1.1 clk mem linear 1024K: 42 ms, 437 ps/instr, 2285 MIPS, 1.1 clk mem linear 2048K: 45 ms, 468 ps/instr, 2133 MIPS, 1.2 clk mem linear 4096K: 43 ms, 447 ps/instr, 2232 MIPS, 1.1 clk