CPU Perf Tester by Darek Mihocka. Built Sep 19 2008 x86 native version Measuring using a clock speed of 1600 MHz Hardware performance frequency = 3 MHz On-chip cycles clock frequency = 1596 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 : 60 ms, 625 ps/instr, 1600 MIPS, 1.0 IPC test 1 address : 62 ms, 645 ps/instr, 1548 MIPS, 1.0 IPC test 1 memory mx : 60 ms, 625 ps/instr, 1600 MIPS, 1.0 IPC test 1 memory sr : 181 ms, 1885 ps/instr, 530 MIPS, 3.0 clk Tests executing pairs of mutually exclusive instructions. You should ideally get double the MIPS. test 2 integer : 32 ms, 333 ps/instr, 3000 MIPS, 1.8 IPC test 2 addr smpl : 62 ms, 645 ps/instr, 1548 MIPS, 1.0 IPC test 2 addr cplx : 63 ms, 656 ps/instr, 1523 MIPS, 1.0 IPC test 2 addr/int : 32 ms, 333 ps/instr, 3000 MIPS, 1.8 IPC test 2 memory : 60 ms, 625 ps/instr, 1600 MIPS, 1.0 IPC Triples of mutually exclusive instructions should ideally give triple the MIPS. test 3 integer : 33 ms, 343 ps/instr, 2909 MIPS, 1.8 IPC test 3 addr smpl : 62 ms, 645 ps/instr, 1548 MIPS, 1.0 IPC test 3 addr cplx : 62 ms, 645 ps/instr, 1548 MIPS, 1.0 IPC test 3 memory : 63 ms, 656 ps/instr, 1523 MIPS, 1.0 IPC test 4 integer : 33 ms, 343 ps/instr, 2909 MIPS, 1.8 IPC These are tests of simple integer operations. test 5 zero mem : 61 ms, 635 ps/instr, 1573 MIPS, 1.0 IPC test 5 -1 to mem : 61 ms, 635 ps/instr, 1573 MIPS, 1.0 IPC test 5 load 1 : 60 ms, 625 ps/instr, 1600 MIPS, 1.0 IPC test 6 and0 mem : 220 ms, 2291 ps/instr, 436 MIPS, 3.6 clk test 6 or-1 mem : 220 ms, 2291 ps/instr, 436 MIPS, 3.6 clk test 6 pushpop 1 : 125 ms, 1302 ps/instr, 768 MIPS, 2.0 clk test 7 divide : 3045 ms, 31718 ps/instr, 31 MIPS, 50.7 clk test 8 multiply : 365 ms, 3802 ps/instr, 263 MIPS, 6.0 clk test 9 FP mult : 366 ms, 3812 ps/instr, 262 MIPS, 6.1 clk test 10 FP sqrt : 3676 ms, 38291 ps/instr, 26 MIPS, 61.2 clk test 11 FP ld/st : 1096 ms, 11416 ps/instr, 87 MIPS, 18.2 clk test 12 FP inc 1 : 1777 ms, 18510 ps/instr, 54 MIPS, 29.6 clk test imul r1r1 : 302 ms, 3145 ps/instr, 317 MIPS, 5.0 clk test imul r1r2 : 302 ms, 3145 ps/instr, 317 MIPS, 5.0 clk test imul r12k : 304 ms, 3166 ps/instr, 315 MIPS, 5.0 clk These tests perform various kernel calls test 1 os crit 2 : 233 ms, 77666 ps/instr, 12 MIPS, 124.2 clk test 2 os try ok : 18 ms, 6000 ps/instr, 166 MIPS, 9.6 clk test 3 os pg flt : 1089 ms, 36300000 ps/instr, 0.027 MIPS, 59259.2 clk test 4 os virtqr : 47 ms, 1566666 ps/instr, 0.638 MIPS, 2507.8 clk test 5 os virtpr : 43 ms, 1433333 ps/instr, 0.697 MIPS, 2295.5 clk test 6 os isbadr : 911 ms, 30366666 ps/instr, 0.032 MIPS, 50000.0 clk test 7 os isgood : 147 ms, 49000 ps/instr, 20 MIPS, 78.4 clk test 8 os vxpflt : 1175 ms, 39166666 ps/instr, 0.025 MIPS, 64000.0 clk test 9 CmpExch 2 : 194 ms, 64666 ps/instr, 15 MIPS, 103.4 clk test 10 GetInpSt : 30 ms, 10000 ps/instr, 100 MIPS, 16.0 clk test 11 GetQStat : 2321 ms, 773666 ps/instr, 1 MIPS, 1238.3 clk test 12 PeekMsg : 3349 ms, 1116333 ps/instr, 0.895 MIPS, 1787.7 clk test 13 MemMap 2 : 318 ms, 10600000 ps/instr, 0.094 MIPS, 17021.2 clk test 14 QueryPrf : 4584 ms, 1528000 ps/instr, 0.654 MIPS, 2446.4 clk These tests perform various integer operations test 1 movsx ax : 60 ms, 625 ps/instr, 1600 MIPS, 1.0 IPC test 2 cwde : 60 ms, 625 ps/instr, 1600 MIPS, 1.0 IPC test 3 xchg/mvsx : 543 ms, 5656 ps/instr, 176 MIPS, 9.0 clk test 4 bswap/msx : 122 ms, 1270 ps/instr, 786 MIPS, 2.0 clk test 5 rol/movsx : 121 ms, 1260 ps/instr, 793 MIPS, 2.0 clk test 6 bswap/sar : 122 ms, 1270 ps/instr, 786 MIPS, 2.0 clk test 7 rol/movsx : 121 ms, 1260 ps/instr, 793 MIPS, 2.0 clk test 8 rol/cwde : 121 ms, 1260 ps/instr, 793 MIPS, 2.0 clk test 9 movw/sbb : 181 ms, 1885 ps/instr, 530 MIPS, 3.0 clk test 10 movl/sbb : 184 ms, 1916 ps/instr, 521 MIPS, 3.0 clk test 11 shl : 123 ms, 1281 ps/instr, 780 MIPS, 2.0 clk test 12 lahf : 183 ms, 1906 ps/instr, 524 MIPS, 3.0 clk test 13 pshf/pop : 1222 ms, 12729 ps/instr, 78 MIPS, 20.3 clk test 13 pshfpopw : 857 ms, 8927 ps/instr, 112 MIPS, 14.2 clk test 13 pshfpopl : 851 ms, 8864 ps/instr, 112 MIPS, 14.1 clk test 14 inc/lahf : 184 ms, 1916 ps/instr, 521 MIPS, 3.0 clk test 14 tst/lahf : 183 ms, 1906 ps/instr, 524 MIPS, 3.0 clk test 14 or /lahf : 184 ms, 1916 ps/instr, 521 MIPS, 3.0 clk test 15 sbb r,r : 123 ms, 1281 ps/instr, 780 MIPS, 2.0 clk test 16 salc : 485 ms, 5052 ps/instr, 197 MIPS, 8.0 clk test 16 setc al : 123 ms, 1281 ps/instr, 780 MIPS, 2.0 clk test 17 read rtc : 1756 ms, 18291 ps/instr, 54 MIPS, 29.2 clk test 18 func v : 1212 ms, 12625 ps/instr, 79 MIPS, 20.2 clk test 19 func i : 1334 ms, 13895 ps/instr, 71 MIPS, 22.2 clk test 20 func inl : 367 ms, 3822 ps/instr, 261 MIPS, 6.1 clk test 21 mvz mvz : 63 ms, 656 ps/instr, 1523 MIPS, 1.0 IPC test 22 mov shld : 370 ms, 3854 ps/instr, 259 MIPS, 6.1 clk test 23 shld imm : 305 ms, 3177 ps/instr, 314 MIPS, 5.0 clk test 24 shld cl : 304 ms, 3166 ps/instr, 315 MIPS, 5.0 clk test 25 decd shd : 370 ms, 3854 ps/instr, 259 MIPS, 6.1 clk test 26 decd sh : 123 ms, 1281 ps/instr, 780 MIPS, 2.0 clk test 27 call jmp : 608 ms, 6333 ps/instr, 157 MIPS, 10.1 clk test 28 call ind : 1239 ms, 12906 ps/instr, 77 MIPS, 20.6 clk test 29 call eax : 1335 ms, 13906 ps/instr, 71 MIPS, 22.2 clk test 29 call mis : 1279 ms, 13322 ps/instr, 75 MIPS, 21.3 clk test 30 mov ereg : 60 ms, 625 ps/instr, 1600 MIPS, 1.0 IPC test 31 mov reg8 : 60 ms, 625 ps/instr, 1600 MIPS, 1.0 IPC test 32 mov axbx : 60 ms, 625 ps/instr, 1600 MIPS, 1.0 IPC test 33 mov albl : 61 ms, 635 ps/instr, 1573 MIPS, 1.0 IPC test 34 mov alah : 61 ms, 635 ps/instr, 1573 MIPS, 1.0 IPC test 35 mov ahal : 61 ms, 635 ps/instr, 1573 MIPS, 1.0 IPC test 36 shl eax : 60 ms, 625 ps/instr, 1600 MIPS, 1.0 IPC test 37 shl al : 60 ms, 625 ps/instr, 1600 MIPS, 1.0 IPC test 38 bt eax,k : 62 ms, 645 ps/instr, 1548 MIPS, 1.0 IPC test 39 btc eax : 62 ms, 645 ps/instr, 1548 MIPS, 1.0 IPC test 40 mov 8/32 : 121 ms, 1260 ps/instr, 793 MIPS, 2.0 clk test 41 w32 r32 : 121 ms, 1260 ps/instr, 793 MIPS, 2.0 clk unlg 41 w32 r32 : 122 ms, 1270 ps/instr, 786 MIPS, 2.0 clk test 42 w32 r8r8 : 665 ms, 6927 ps/instr, 144 MIPS, 11.0 clk test 42 w32 r8 : 544 ms, 5666 ps/instr, 176 MIPS, 9.0 clk test 42 w32 bt32 : 490 ms, 5104 ps/instr, 195 MIPS, 8.1 clk test 43 w8w8 r32 : 674 ms, 7020 ps/instr, 142 MIPS, 11.2 clk test 43 w8 r32 : 545 ms, 5677 ps/instr, 176 MIPS, 9.0 clk test 43 w8 bt32 : 534 ms, 5562 ps/instr, 179 MIPS, 8.9 clk test 44 w32 r8r8 : 243 ms, 2531 ps/instr, 395 MIPS, 4.0 clk test 44 w32 r8 : 122 ms, 1270 ps/instr, 786 MIPS, 2.0 clk test 45 w8w8 r32 : 245 ms, 2552 ps/instr, 391 MIPS, 4.0 clk test 45 w8 r32 : 121 ms, 1260 ps/instr, 793 MIPS, 2.0 clk test 46 cmov 4x : 121 ms, 1260 ps/instr, 793 MIPS, 2.0 clk test 47 cmovsame : 121 ms, 1260 ps/instr, 793 MIPS, 2.0 clk test 48 cmov mem : 121 ms, 1260 ps/instr, 793 MIPS, 2.0 clk test 49 cmov mem : 211 ms, 2197 ps/instr, 454 MIPS, 3.5 clk test 50 *10=*2*5 : 67 ms, 697 ps/instr, 1432 MIPS, 1.1 clk test 51 *2 + *8 : 66 ms, 687 ps/instr, 1454 MIPS, 1.0 IPC test 52 + + + *8 : 297 ms, 3093 ps/instr, 323 MIPS, 4.9 clk test 53 *2 + *8 : 126 ms, 1312 ps/instr, 761 MIPS, 2.1 clk test 54 <<1 *5 : 296 ms, 3083 ps/instr, 324 MIPS, 4.9 clk test 55 *10=*2*5 : 127 ms, 1322 ps/instr, 755 MIPS, 2.1 clk test 56 MOV cons : 43 ms, 447 ps/instr, 2232 MIPS, 1.3 IPC test 57 QC 4.2 : 283 ms, 2947 ps/instr, 339 MIPS, 4.7 clk test 58 QC 6.0 : 396 ms, 4125 ps/instr, 242 MIPS, 6.6 clk test 59 QC 7.0 : 461 ms, 4802 ps/instr, 208 MIPS, 7.6 clk test 60 QC GNU 1 : 277 ms, 2885 ps/instr, 346 MIPS, 4.6 clk test 61 QC GNU 2 : 378 ms, 3937 ps/instr, 253 MIPS, 6.3 clk test 62 QC GNU 3 : 211 ms, 2197 ps/instr, 454 MIPS, 3.5 clk test 63 push/pop : 65 ms, 677 ps/instr, 1476 MIPS, 1.0 IPC test 64 mov2stck : 154 ms, 1604 ps/instr, 623 MIPS, 2.5 clk test 65 hint tak : 123 ms, 1281 ps/instr, 780 MIPS, 2.0 clk test 66 hint not : 122 ms, 1270 ps/instr, 786 MIPS, 2.0 clk test 67 hint alt : 122 ms, 1270 ps/instr, 786 MIPS, 2.0 clk test 68 hint nop : 93 ms, 968 ps/instr, 1032 MIPS, 1.5 clk test 69 hint non : 122 ms, 1270 ps/instr, 786 MIPS, 2.0 clk test 70 loop c70 : 213 ms, 2218 ps/instr, 450 MIPS, 3.5 clk test 71 loop add : 214 ms, 2229 ps/instr, 448 MIPS, 3.5 clk test 72 loop lea : 161 ms, 1677 ps/instr, 596 MIPS, 2.6 clk test 73 loop alt : 163 ms, 1697 ps/instr, 588 MIPS, 2.7 clk test 74 add m2r : 60 ms, 625 ps/instr, 1600 MIPS, 1.0 IPC test 75 add r2m : 60 ms, 625 ps/instr, 1600 MIPS, 1.0 IPC test 76 add k2m : 61 ms, 635 ps/instr, 1573 MIPS, 1.0 IPC test 77 add slow : 183 ms, 1906 ps/instr, 524 MIPS, 3.0 clk test 78 inc by 1 : 32 ms, 333 ps/instr, 3000 MIPS, 1.8 IPC test 79 add by 1 : 33 ms, 343 ps/instr, 2909 MIPS, 1.8 IPC test 80 prefetch : 308 ms, 3208 ps/instr, 311 MIPS, 5.1 clk test 81 prefetc0 : 60 ms, 625 ps/instr, 1600 MIPS, 1.0 IPC test 82 xchg mem : 365 ms, 3802 ps/instr, 263 MIPS, 6.0 clk test 83 lockxchg : 478 ms, 4979 ps/instr, 200 MIPS, 7.9 clk test 84 xor xchg : 184 ms, 1916 ps/instr, 521 MIPS, 3.0 clk test 99 pusha : 671 ms, 6989 ps/instr, 143 MIPS, 11.1 clk test 99 pushpopa : 1408 ms, 14666 ps/instr, 68 MIPS, 23.4 clk Miscellaneous assembly language tests. test A11 LEA r16 : 63 ms, 656 ps/instr, 1523 MIPS, 1.0 IPC test A12 LEA k16 : 62 ms, 645 ps/instr, 1548 MIPS, 1.0 IPC test A13 JECXZ n : 1100 ms, 11458 ps/instr, 87 MIPS, 18.3 clk test A14 JECXZ t : 429 ms, 4468 ps/instr, 223 MIPS, 7.1 clk test A14 JECXZ r : 430 ms, 4479 ps/instr, 223 MIPS, 7.1 clk test A15 aligned : 61 ms, 635 ps/instr, 1573 MIPS, 1.0 IPC test A15 span 16 : 61 ms, 635 ps/instr, 1573 MIPS, 1.0 IPC test A15 span 32 : 60 ms, 625 ps/instr, 1600 MIPS, 1.0 IPC test A15 span 64 : 917 ms, 9552 ps/instr, 104 MIPS, 15.2 clk test A15 span128 : 918 ms, 9562 ps/instr, 104 MIPS, 15.3 clk test A15 span 4K : 912 ms, 9500 ps/instr, 105 MIPS, 15.2 clk test A16 savemem : 65 ms, 677 ps/instr, 1476 MIPS, 1.0 IPC test A16 saveptr : 61 ms, 635 ps/instr, 1573 MIPS, 1.0 IPC test PUSHF/POPF : 2926 ms, 30479 ps/instr, 32 MIPS, 48.7 clk test LAHF/SAHF : 367 ms, 3822 ps/instr, 261 MIPS, 6.1 clk test A18 CLFLUSH : 10968 ms, 114250 ps/instr, 8 MIPS, 182.8 clk test A19a FSTENV : 10579 ms, 110197 ps/instr, 9 MIPS, 176.3 clk test A19b FNSAVE : 14866 ms, 154854 ps/instr, 6 MIPS, 247.7 clk test A19c FXSAVE : 8458 ms, 88104 ps/instr, 11 MIPS, 140.9 clk test A19d STMXCS : 643 ms, 6697 ps/instr, 149 MIPS, 10.7 clk test MMX paddq : 312 ms, 3250 ps/instr, 307 MIPS, 5.2 clk test MMX paddw : 78 ms, 812 ps/instr, 1230 MIPS, 1.3 clk test MMX pxor : 78 ms, 812 ps/instr, 1230 MIPS, 1.3 clk test MMX pmul : 258 ms, 2687 ps/instr, 372 MIPS, 4.3 clk SSE4 POPCNT reg32 : FAILED!! SSE4 CRC32 reg32 : FAILED!! SSSE3 PSHUFB mmx : 60 ms, 625 ps/instr, 1600 MIPS, 1.0 IPC SSSE3 PSHUFB xmm : 368 ms, 3833 ps/instr, 260 MIPS, 6.1 clk SSE2 MOVD : 212 ms, 2208 ps/instr, 452 MIPS, 3.5 clk Atom MOVBE : 64 ms, 666 ps/instr, 1500 MIPS, 1.0 IPC Dispatch tests. dispatch 1 nop : 2055 ms, 21406 ps/instr, 46 MIPS, 34.2 clk dispatch 2 nops : 2114 ms, 22020 ps/instr, 45 MIPS, 35.2 clk dispatch 3 nops : 2235 ms, 23281 ps/instr, 42 MIPS, 37.2 clk dispatch 4 nops : 2416 ms, 25166 ps/instr, 39 MIPS, 40.2 clk dispatch 5 nops : 2476 ms, 25791 ps/instr, 38 MIPS, 41.2 clk dispatch 6 nops : 2598 ms, 27062 ps/instr, 36 MIPS, 43.3 clk dispatch 7 nops : 2721 ms, 28343 ps/instr, 35 MIPS, 45.3 clk dispatch 8 nops : 2902 ms, 30229 ps/instr, 33 MIPS, 48.3 clk dispatch 9 nops : 2960 ms, 30833 ps/instr, 32 MIPS, 49.3 clk dispatch 10 nops : 3084 ms, 32125 ps/instr, 31 MIPS, 51.4 clk dispatch 11 nops : 3204 ms, 33375 ps/instr, 29 MIPS, 53.4 clk dispatch 12 nops : 3386 ms, 35270 ps/instr, 28 MIPS, 56.4 clk Random memory access for increasing sizes of memory. mem random 2K: 317 ms, 3302 ps/instr, 302 MIPS, 5.2 clk mem random 4K: 318 ms, 3312 ps/instr, 301 MIPS, 5.3 clk mem random 8K: 317 ms, 3302 ps/instr, 302 MIPS, 5.2 clk mem random 16K: 317 ms, 3302 ps/instr, 302 MIPS, 5.2 clk mem random 32K: 1100 ms, 11458 ps/instr, 87 MIPS, 18.3 clk mem random 64K: 1167 ms, 12156 ps/instr, 82 MIPS, 19.4 clk mem random 128K: 1186 ms, 12354 ps/instr, 80 MIPS, 19.7 clk mem random 256K: 1190 ms, 12395 ps/instr, 80 MIPS, 19.8 clk mem random 512K: 1707 ms, 17781 ps/instr, 56 MIPS, 28.4 clk mem random 1024K: 9754 ms, 101604 ps/instr, 9 MIPS, 162.5 clk mem random 2048K: 10169 ms, 105927 ps/instr, 9 MIPS, 169.4 clk mem random 4096K: 9996 ms, 104125 ps/instr, 9 MIPS, 166.6 clk Sequential memory access for increasing sizes of memory. mem linear 2K: 106 ms, 1104 ps/instr, 905 MIPS, 1.7 clk mem linear 4K: 106 ms, 1104 ps/instr, 905 MIPS, 1.7 clk mem linear 8K: 105 ms, 1093 ps/instr, 914 MIPS, 1.7 clk mem linear 16K: 105 ms, 1093 ps/instr, 914 MIPS, 1.7 clk mem linear 32K: 116 ms, 1208 ps/instr, 827 MIPS, 1.9 clk mem linear 64K: 114 ms, 1187 ps/instr, 842 MIPS, 1.9 clk mem linear 128K: 116 ms, 1208 ps/instr, 827 MIPS, 1.9 clk mem linear 256K: 116 ms, 1208 ps/instr, 827 MIPS, 1.9 clk mem linear 512K: 118 ms, 1229 ps/instr, 813 MIPS, 1.9 clk mem linear 1024K: 119 ms, 1239 ps/instr, 806 MIPS, 1.9 clk mem linear 2048K: 118 ms, 1229 ps/instr, 813 MIPS, 1.9 clk mem linear 4096K: 120 ms, 1250 ps/instr, 800 MIPS, 2.0 clk Reverse memory access for increasing sizes of memory. mem linear 2K: 106 ms, 1104 ps/instr, 905 MIPS, 1.7 clk mem linear 4K: 106 ms, 1104 ps/instr, 905 MIPS, 1.7 clk mem linear 8K: 106 ms, 1104 ps/instr, 905 MIPS, 1.7 clk mem linear 16K: 106 ms, 1104 ps/instr, 905 MIPS, 1.7 clk mem linear 32K: 124 ms, 1291 ps/instr, 774 MIPS, 2.0 clk mem linear 64K: 124 ms, 1291 ps/instr, 774 MIPS, 2.0 clk mem linear 128K: 127 ms, 1322 ps/instr, 755 MIPS, 2.1 clk mem linear 256K: 124 ms, 1291 ps/instr, 774 MIPS, 2.0 clk mem linear 512K: 128 ms, 1333 ps/instr, 750 MIPS, 2.1 clk mem linear 1024K: 128 ms, 1333 ps/instr, 750 MIPS, 2.1 clk mem linear 2048K: 128 ms, 1333 ps/instr, 750 MIPS, 2.1 clk mem linear 4096K: 128 ms, 1333 ps/instr, 750 MIPS, 2.1 clk