CPU Perf Tester by Darek Mihocka. Built Sep 19 2008 x86 native version Measuring using a clock speed of 2666 MHz Hardware performance frequency = 14 MHz On-chip cycles clock frequency = 2659 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 : 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 : 108 ms, 1125 ps/instr, 888 MIPS, 2.9 clk Tests executing pairs of mutually exclusive instructions. You should ideally get double the MIPS. test 2 integer : 21 ms, 218 ps/instr, 4571 MIPS, 1.7 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 : 19 ms, 197 ps/instr, 5052 MIPS, 1.8 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 : 18 ms, 187 ps/instr, 5333 MIPS, 2.0 IPC test 3 addr smpl : 36 ms, 375 ps/instr, 2666 MIPS, 1.0 IPC test 3 addr cplx : 36 ms, 375 ps/instr, 2666 MIPS, 1.0 IPC test 3 memory : 36 ms, 375 ps/instr, 2666 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 : 65 ms, 677 ps/instr, 1476 MIPS, 1.8 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 : 37 ms, 385 ps/instr, 2594 MIPS, 1.0 IPC test 6 pushpop 1 : 90 ms, 937 ps/instr, 1066 MIPS, 2.4 clk test 7 divide : 1414 ms, 14729 ps/instr, 67 MIPS, 39.2 clk test 8 multiply : 172 ms, 1791 ps/instr, 558 MIPS, 4.7 clk test 9 FP mult : 72 ms, 750 ps/instr, 1333 MIPS, 1.9 clk test 10 FP sqrt : 2058 ms, 21437 ps/instr, 46 MIPS, 57.1 clk test 11 FP ld/st : 687 ms, 7156 ps/instr, 139 MIPS, 19.0 clk test 12 FP inc 1 : 795 ms, 8281 ps/instr, 120 MIPS, 22.0 clk test imul r1r1 : 109 ms, 1135 ps/instr, 880 MIPS, 3.0 clk test imul r1r2 : 109 ms, 1135 ps/instr, 880 MIPS, 3.0 clk test imul r12k : 108 ms, 1125 ps/instr, 888 MIPS, 2.9 clk These tests perform various kernel calls test 1 os crit 2 : 188 ms, 62666 ps/instr, 15 MIPS, 167.0 clk test 2 os try ok : 9 ms, 3000 ps/instr, 333 MIPS, 7.9 clk test 3 os pg flt : 286 ms, 9533333 ps/instr, 0.104 MIPS, 25634.6 clk test 4 os virtqr : 15 ms, 500000 ps/instr, 2 MIPS, 1333.0 clk test 5 os virtpr : 16 ms, 533333 ps/instr, 1 MIPS, 1421.8 clk test 6 os isbadr : 241 ms, 8033333 ps/instr, 0.124 MIPS, 21500.0 clk test 7 os isgood : 45 ms, 15000 ps/instr, 66 MIPS, 39.9 clk test 8 os vxpflt : 335 ms, 11166666 ps/instr, 0.089 MIPS, 29955.0 clk test 9 CmpExch 2 : 187 ms, 62333 ps/instr, 16 MIPS, 166.1 clk test 10 GetInpSt : 7 ms, 2333 ps/instr, 428 MIPS, 6.2 clk test 11 GetQStat : 1051 ms, 350333 ps/instr, 2 MIPS, 934.1 clk test 12 PeekMsg : 1273 ms, 424333 ps/instr, 2 MIPS, 1131.5 clk test 13 MemMap 2 : 106 ms, 3533333 ps/instr, 0.283 MIPS, 9420.4 clk test 14 QueryPrf : 2103 ms, 701000 ps/instr, 1 MIPS, 1869.5 clk These tests perform various integer operations test 1 movsx ax : 37 ms, 385 ps/instr, 2594 MIPS, 1.0 IPC test 2 cwde : 36 ms, 375 ps/instr, 2666 MIPS, 1.0 IPC test 3 xchg/mvsx : 217 ms, 2260 ps/instr, 442 MIPS, 6.0 clk test 4 bswap/msx : 181 ms, 1885 ps/instr, 530 MIPS, 5.0 clk test 5 rol/movsx : 72 ms, 750 ps/instr, 1333 MIPS, 1.9 clk test 6 bswap/sar : 180 ms, 1875 ps/instr, 533 MIPS, 4.9 clk test 7 rol/movsx : 73 ms, 760 ps/instr, 1315 MIPS, 2.0 clk test 8 rol/cwde : 72 ms, 750 ps/instr, 1333 MIPS, 1.9 clk test 9 movw/sbb : 150 ms, 1562 ps/instr, 640 MIPS, 4.1 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 : 592 ms, 6166 ps/instr, 162 MIPS, 16.4 clk test 13 pshfpopw : 587 ms, 6114 ps/instr, 163 MIPS, 16.3 clk test 13 pshfpopl : 445 ms, 4635 ps/instr, 215 MIPS, 12.3 clk test 14 inc/lahf : 344 ms, 3583 ps/instr, 279 MIPS, 9.5 clk test 14 tst/lahf : 47 ms, 489 ps/instr, 2042 MIPS, 1.3 clk test 14 or /lahf : 63 ms, 656 ps/instr, 1523 MIPS, 1.7 clk test 15 sbb r,r : 78 ms, 812 ps/instr, 1230 MIPS, 2.1 clk test 16 salc : 51 ms, 531 ps/instr, 1882 MIPS, 1.4 clk test 16 setc al : 71 ms, 739 ps/instr, 1352 MIPS, 1.9 clk test 17 read rtc : 2312 ms, 24083 ps/instr, 41 MIPS, 64.2 clk test 18 func v : 304 ms, 3166 ps/instr, 315 MIPS, 8.4 clk test 19 func i : 310 ms, 3229 ps/instr, 309 MIPS, 8.6 clk test 20 func inl : 118 ms, 1229 ps/instr, 813 MIPS, 3.2 clk test 21 mvz mvz : 36 ms, 375 ps/instr, 2666 MIPS, 1.0 IPC test 22 mov shld : 75 ms, 781 ps/instr, 1280 MIPS, 2.0 clk test 23 shld imm : 36 ms, 375 ps/instr, 2666 MIPS, 1.0 IPC test 24 shld cl : 36 ms, 375 ps/instr, 2666 MIPS, 1.0 IPC test 25 decd shd : 60 ms, 625 ps/instr, 1600 MIPS, 1.6 clk test 26 decd sh : 57 ms, 593 ps/instr, 1684 MIPS, 1.5 clk test 27 call jmp : 151 ms, 1572 ps/instr, 635 MIPS, 4.1 clk test 28 call ind : 152 ms, 1583 ps/instr, 631 MIPS, 4.2 clk test 29 call eax : 147 ms, 1531 ps/instr, 653 MIPS, 4.0 clk test 29 call mis : 582 ms, 6062 ps/instr, 164 MIPS, 16.1 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 : 13 ms, 135 ps/instr, 7384 MIPS, 2.7 IPC test 35 mov ahal : 37 ms, 385 ps/instr, 2594 MIPS, 1.0 IPC test 36 shl eax : 36 ms, 375 ps/instr, 2666 MIPS, 1.0 IPC test 37 shl al : 37 ms, 385 ps/instr, 2594 MIPS, 1.0 IPC test 38 bt eax,k : 36 ms, 375 ps/instr, 2666 MIPS, 1.0 IPC test 39 btc eax : 36 ms, 375 ps/instr, 2666 MIPS, 1.0 IPC test 40 mov 8/32 : 127 ms, 1322 ps/instr, 755 MIPS, 3.5 clk test 41 w32 r32 : 87 ms, 906 ps/instr, 1103 MIPS, 2.4 clk unlg 41 w32 r32 : 86 ms, 895 ps/instr, 1116 MIPS, 2.3 clk test 42 w32 r8r8 : 470 ms, 4895 ps/instr, 204 MIPS, 13.0 clk test 42 w32 r8 : 402 ms, 4187 ps/instr, 238 MIPS, 11.1 clk test 42 w32 bt32 : 73 ms, 760 ps/instr, 1315 MIPS, 2.0 clk test 43 w8w8 r32 : 470 ms, 4895 ps/instr, 204 MIPS, 13.0 clk test 43 w8 r32 : 398 ms, 4145 ps/instr, 241 MIPS, 11.0 clk test 43 w8 bt32 : 435 ms, 4531 ps/instr, 220 MIPS, 12.0 clk test 44 w32 r8r8 : 108 ms, 1125 ps/instr, 888 MIPS, 2.9 clk test 44 w32 r8 : 37 ms, 385 ps/instr, 2594 MIPS, 1.0 IPC test 45 w8w8 r32 : 252 ms, 2625 ps/instr, 380 MIPS, 6.9 clk test 45 w8 r32 : 84 ms, 875 ps/instr, 1142 MIPS, 2.3 clk test 46 cmov 4x : 36 ms, 375 ps/instr, 2666 MIPS, 1.0 IPC test 47 cmovsame : 36 ms, 375 ps/instr, 2666 MIPS, 1.0 IPC test 48 cmov mem : 36 ms, 375 ps/instr, 2666 MIPS, 1.0 IPC test 49 cmov mem : 174 ms, 1812 ps/instr, 551 MIPS, 4.8 clk test 50 *10=*2*5 : 36 ms, 375 ps/instr, 2666 MIPS, 1.0 IPC test 51 *2 + *8 : 36 ms, 375 ps/instr, 2666 MIPS, 1.0 IPC test 52 + + + *8 : 38 ms, 395 ps/instr, 2526 MIPS, 1.0 IPC test 53 *2 + *8 : 72 ms, 750 ps/instr, 1333 MIPS, 1.9 clk test 54 <<1 *5 : 40 ms, 416 ps/instr, 2400 MIPS, 1.0 IPC test 55 *10=*2*5 : 72 ms, 750 ps/instr, 1333 MIPS, 1.9 clk test 56 MOV cons : 12 ms, 125 ps/instr, 8000 MIPS, 3.0 IPC test 57 QC 4.2 : 154 ms, 1604 ps/instr, 623 MIPS, 4.2 clk test 58 QC 6.0 : 187 ms, 1947 ps/instr, 513 MIPS, 5.1 clk test 59 QC 7.0 : 73 ms, 760 ps/instr, 1315 MIPS, 2.0 clk test 60 QC GNU 1 : 97 ms, 1010 ps/instr, 989 MIPS, 2.6 clk test 61 QC GNU 2 : 132 ms, 1375 ps/instr, 727 MIPS, 3.6 clk test 62 QC GNU 3 : 67 ms, 697 ps/instr, 1432 MIPS, 1.8 clk test 63 push/pop : 36 ms, 375 ps/instr, 2666 MIPS, 1.0 IPC test 64 mov2stck : 33 ms, 343 ps/instr, 2909 MIPS, 1.0 IPC test 65 hint tak : 37 ms, 385 ps/instr, 2594 MIPS, 1.0 IPC test 66 hint not : 38 ms, 395 ps/instr, 2526 MIPS, 1.0 IPC test 67 hint alt : 37 ms, 385 ps/instr, 2594 MIPS, 1.0 IPC test 68 hint nop : 38 ms, 395 ps/instr, 2526 MIPS, 1.0 IPC test 69 hint non : 37 ms, 385 ps/instr, 2594 MIPS, 1.0 IPC test 70 loop c70 : 84 ms, 875 ps/instr, 1142 MIPS, 2.3 clk test 71 loop add : 88 ms, 916 ps/instr, 1090 MIPS, 2.4 clk test 72 loop lea : 73 ms, 760 ps/instr, 1315 MIPS, 2.0 clk test 73 loop alt : 76 ms, 791 ps/instr, 1263 MIPS, 2.1 clk test 74 add m2r : 36 ms, 375 ps/instr, 2666 MIPS, 1.0 IPC test 75 add r2m : 217 ms, 2260 ps/instr, 442 MIPS, 6.0 clk test 76 add k2m : 217 ms, 2260 ps/instr, 442 MIPS, 6.0 clk test 77 add slow : 217 ms, 2260 ps/instr, 442 MIPS, 6.0 clk test 78 inc by 1 : 22 ms, 229 ps/instr, 4363 MIPS, 1.6 IPC test 79 add by 1 : 25 ms, 260 ps/instr, 3840 MIPS, 1.4 IPC test 80 prefetch : 109 ms, 1135 ps/instr, 880 MIPS, 3.0 clk test 81 prefetc0 : 36 ms, 375 ps/instr, 2666 MIPS, 1.0 IPC test 82 xchg mem : 903 ms, 9406 ps/instr, 106 MIPS, 25.0 clk test 83 lockxchg : 903 ms, 9406 ps/instr, 106 MIPS, 25.0 clk test 84 xor xchg : 469 ms, 4885 ps/instr, 204 MIPS, 13.0 clk test 99 pusha : 302 ms, 3145 ps/instr, 317 MIPS, 8.3 clk test 99 pushpopa : 506 ms, 5270 ps/instr, 189 MIPS, 14.0 clk Miscellaneous assembly language tests. test A11 LEA r16 : 56 ms, 583 ps/instr, 1714 MIPS, 1.5 clk test A12 LEA k16 : 80 ms, 833 ps/instr, 1200 MIPS, 2.2 clk test A13 JECXZ n : 41 ms, 427 ps/instr, 2341 MIPS, 1.1 clk test A14 JECXZ t : 229 ms, 2385 ps/instr, 419 MIPS, 6.3 clk test A14 JECXZ r : 310 ms, 3229 ps/instr, 309 MIPS, 8.6 clk test A15 aligned : 36 ms, 375 ps/instr, 2666 MIPS, 1.0 IPC test A15 span 16 : 37 ms, 385 ps/instr, 2594 MIPS, 1.0 IPC test A15 span 32 : 37 ms, 385 ps/instr, 2594 MIPS, 1.0 IPC test A15 span 64 : 471 ms, 4906 ps/instr, 203 MIPS, 13.0 clk test A15 span128 : 471 ms, 4906 ps/instr, 203 MIPS, 13.0 clk test A15 span 4K : 8467 ms, 88197 ps/instr, 11 MIPS, 235.1 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 : 1193 ms, 12427 ps/instr, 80 MIPS, 33.1 clk test LAHF/SAHF : 416 ms, 4333 ps/instr, 230 MIPS, 11.5 clk test A18 CLFLUSH : 8993 ms, 93677 ps/instr, 10 MIPS, 249.7 clk test A19a FSTENV : 4212 ms, 43875 ps/instr, 22 MIPS, 116.9 clk test A19b FNSAVE : 6357 ms, 66218 ps/instr, 15 MIPS, 176.5 clk test A19c FXSAVE : 5560 ms, 57916 ps/instr, 17 MIPS, 154.4 clk test A19d STMXCS : 1076 ms, 11208 ps/instr, 89 MIPS, 29.8 clk test MMX paddq : 86 ms, 895 ps/instr, 1116 MIPS, 2.3 clk test MMX paddw : 50 ms, 520 ps/instr, 1920 MIPS, 1.3 clk test MMX pxor : 22 ms, 229 ps/instr, 4363 MIPS, 1.6 IPC test MMX pmul : 123 ms, 1281 ps/instr, 780 MIPS, 3.4 clk SSE4 POPCNT reg32 : FAILED!! SSE4 CRC32 reg32 : FAILED!! SSSE3 PSHUFB mmx : 37 ms, 385 ps/instr, 2594 MIPS, 1.0 IPC SSSE3 PSHUFB xmm : 109 ms, 1135 ps/instr, 880 MIPS, 3.0 clk SSE2 MOVD : 73 ms, 760 ps/instr, 1315 MIPS, 2.0 clk Atom MOVBE : FAILED!! Dispatch tests. dispatch 1 nop : 1037 ms, 10802 ps/instr, 92 MIPS, 28.7 clk dispatch 2 nops : 1010 ms, 10520 ps/instr, 95 MIPS, 28.0 clk dispatch 3 nops : 1079 ms, 11239 ps/instr, 88 MIPS, 29.9 clk dispatch 4 nops : 1042 ms, 10854 ps/instr, 92 MIPS, 28.9 clk dispatch 5 nops : 1045 ms, 10885 ps/instr, 91 MIPS, 29.0 clk dispatch 6 nops : 1037 ms, 10802 ps/instr, 92 MIPS, 28.7 clk dispatch 7 nops : 1135 ms, 11822 ps/instr, 84 MIPS, 31.5 clk dispatch 8 nops : 1202 ms, 12520 ps/instr, 79 MIPS, 33.3 clk dispatch 9 nops : 1222 ms, 12729 ps/instr, 78 MIPS, 33.9 clk dispatch 10 nops : 1372 ms, 14291 ps/instr, 69 MIPS, 38.1 clk dispatch 11 nops : 1444 ms, 15041 ps/instr, 66 MIPS, 40.1 clk dispatch 12 nops : 1481 ms, 15427 ps/instr, 64 MIPS, 41.1 clk Random memory access for increasing sizes of memory. mem random 2K: 81 ms, 843 ps/instr, 1185 MIPS, 2.2 clk mem random 4K: 83 ms, 864 ps/instr, 1156 MIPS, 2.3 clk mem random 8K: 81 ms, 843 ps/instr, 1185 MIPS, 2.2 clk mem random 16K: 80 ms, 833 ps/instr, 1200 MIPS, 2.2 clk mem random 32K: 81 ms, 843 ps/instr, 1185 MIPS, 2.2 clk mem random 64K: 166 ms, 1729 ps/instr, 578 MIPS, 4.6 clk mem random 128K: 169 ms, 1760 ps/instr, 568 MIPS, 4.6 clk mem random 256K: 169 ms, 1760 ps/instr, 568 MIPS, 4.6 clk mem random 512K: 170 ms, 1770 ps/instr, 564 MIPS, 4.7 clk mem random 1024K: 172 ms, 1791 ps/instr, 558 MIPS, 4.7 clk mem random 2048K: 209 ms, 2177 ps/instr, 459 MIPS, 5.8 clk mem random 4096K: 245 ms, 2552 ps/instr, 391 MIPS, 6.8 clk Sequential 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: 40 ms, 416 ps/instr, 2400 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: 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: 42 ms, 437 ps/instr, 2285 MIPS, 1.1 clk mem linear 2048K: 42 ms, 437 ps/instr, 2285 MIPS, 1.1 clk mem linear 4096K: 42 ms, 437 ps/instr, 2285 MIPS, 1.1 clk Reverse 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: 41 ms, 427 ps/instr, 2341 MIPS, 1.1 clk mem linear 32K: 44 ms, 458 ps/instr, 2181 MIPS, 1.2 clk mem linear 64K: 42 ms, 437 ps/instr, 2285 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: 42 ms, 437 ps/instr, 2285 MIPS, 1.1 clk mem linear 2048K: 42 ms, 437 ps/instr, 2285 MIPS, 1.1 clk mem linear 4096K: 43 ms, 447 ps/instr, 2232 MIPS, 1.1 clk