This is a performance test for the machine I’m (stuck) using. According to CPU_TEST, full 32-bit division on the Pentium 4 is, per-cycle, slower than the 68040! (51.3 to no more than 48CC.) C:/>CPU_TEST /intel CPU Perf Tester by Darek Mihocka. Built Sep 19 2008 x86 native version calibrating... : 37 ms, 385 ps/instr, 2594 MIPS, 1.0 IPC Measuring using a clock speed of 2594 MHz Hardware performance frequency = 2593 MHz On-chip cycles clock frequency = 2593 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 : 19 ms, 197 ps/instr, 5052 MIPS, 1.9 IPC test 1 address : 19 ms, 197 ps/instr, 5052 MIPS, 1.9 IPC test 1 memory mx : 37 ms, 385 ps/instr, 2594 MIPS, 1.0 IPC test 1 memory sr : 79 ms, 822 ps/instr, 1215 MIPS, 2.1 clk Tests executing pairs of mutually exclusive instructions. You should ideally get double the MIPS. test 2 integer : 14 ms, 145 ps/instr, 6857 MIPS, 2.6 IPC test 2 addr smpl : 14 ms, 145 ps/instr, 6857 MIPS, 2.6 IPC test 2 addr cplx : 93 ms, 968 ps/instr, 1032 MIPS, 2.5 clk test 2 addr/int : 92 ms, 958 ps/instr, 1043 MIPS, 2.4 clk test 2 memory : 37 ms, 385 ps/instr, 2594 MIPS, 1.0 IPC Triples of mutually exclusive instructions should ideally give triple the MIPS. test 3 integer : 14 ms, 145 ps/instr, 6857 MIPS, 2.6 IPC test 3 addr smpl : 14 ms, 145 ps/instr, 6857 MIPS, 2.6 IPC test 3 addr cplx : 64 ms, 666 ps/instr, 1500 MIPS, 1.7 clk test 3 memory : 37 ms, 385 ps/instr, 2594 MIPS, 1.0 IPC test 4 integer : 14 ms, 145 ps/instr, 6857 MIPS, 2.6 IPC These are tests of simple integer operations. test 5 zero mem : 65 ms, 677 ps/instr, 1476 MIPS, 1.7 clk test 5 -1 to mem : 65 ms, 677 ps/instr, 1476 MIPS, 1.7 clk test 5 load 1 : 13 ms, 135 ps/instr, 7384 MIPS, 2.8 IPC test 6 and0 mem : 64 ms, 666 ps/instr, 1500 MIPS, 1.7 clk test 6 or-1 mem : 65 ms, 677 ps/instr, 1476 MIPS, 1.7 clk test 6 pushpop 1 : 68 ms, 708 ps/instr, 1411 MIPS, 1.8 clk test 7 divide : 1900 ms, 19791 ps/instr, 50 MIPS, 51.3 clk test 8 multiply : 522 ms, 5437 ps/instr, 183 MIPS, 14.1 clk test 9 FP mult : 134 ms, 1395 ps/instr, 716 MIPS, 3.6 clk test 10 FP sqrt : 1408 ms, 14666 ps/instr, 68 MIPS, 38.0 clk test 11 FP ld/st : 1058 ms, 11020 ps/instr, 90 MIPS, 28.5 clk test 12 FP inc 1 : 1520 ms, 15833 ps/instr, 63 MIPS, 41.0 clk test imul r1r1 : 557 ms, 5802 ps/instr, 172 MIPS, 15.0 clk test imul r1r2 : 519 ms, 5406 ps/instr, 184 MIPS, 14.0 clk test imul r12k : 518 ms, 5395 ps/instr, 185 MIPS, 14.0 clk Skipping kernel tests. /kernel enables them. These tests perform various integer operations test 1 movsx ax : 19 ms, 197 ps/instr, 5052 MIPS, 1.9 IPC test 2 cwde : 19 ms, 197 ps/instr, 5052 MIPS, 1.9 IPC test 3 xchg/mvsx : 222 ms, 2312 ps/instr, 432 MIPS, 6.0 clk test 4 bswap/msx : 222 ms, 2312 ps/instr, 432 MIPS, 6.0 clk test 5 rol/movsx : 222 ms, 2312 ps/instr, 432 MIPS, 6.0 clk test 6 bswap/sar : 297 ms, 3093 ps/instr, 323 MIPS, 8.0 clk test 7 rol/movsx : 223 ms, 2322 ps/instr, 430 MIPS, 6.0 clk test 8 rol/cwde : 223 ms, 2322 ps/instr, 430 MIPS, 6.0 clk test 9 movw/sbb : 260 ms, 2708 ps/instr, 369 MIPS, 7.0 clk test 10 movl/sbb : 75 ms, 781 ps/instr, 1280 MIPS, 2.0 clk test 11 shl : 222 ms, 2312 ps/instr, 432 MIPS, 6.0 clk test 12 lahf : 293 ms, 3052 ps/instr, 327 MIPS, 7.9 clk test 13 pshf/pop : 296 ms, 3083 ps/instr, 324 MIPS, 8.0 clk test 13 pshfpopw : 297 ms, 3093 ps/instr, 323 MIPS, 8.0 clk test 13 pshfpopl : 752 ms, 7833 ps/instr, 127 MIPS, 20.3 clk test 14 inc/lahf : 332 ms, 3458 ps/instr, 289 MIPS, 8.9 clk test 14 tst/lahf : 185 ms, 1927 ps/instr, 518 MIPS, 5.0 clk test 14 or /lahf : 185 ms, 1927 ps/instr, 518 MIPS, 5.0 clk test 15 sbb r,r : 74 ms, 770 ps/instr, 1297 MIPS, 2.0 clk test 16 salc : 41 ms, 427 ps/instr, 2341 MIPS, 1.0 IPC test 16 setc al : 41 ms, 427 ps/instr, 2341 MIPS, 1.0 IPC test 17 read rtc : 2966 ms, 30895 ps/instr, 32 MIPS, 80.1 clk test 18 func v : 593 ms, 6177 ps/instr, 161 MIPS, 16.0 clk test 19 func i : 741 ms, 7718 ps/instr, 129 MIPS, 20.0 clk test 20 func inl : 150 ms, 1562 ps/instr, 640 MIPS, 4.0 clk test 21 mvz mvz : 37 ms, 385 ps/instr, 2594 MIPS, 1.0 IPC test 22 mov shld : 260 ms, 2708 ps/instr, 369 MIPS, 7.0 clk test 23 shld imm : 117 ms, 1218 ps/instr, 820 MIPS, 3.1 clk test 24 shld cl : 118 ms, 1229 ps/instr, 813 MIPS, 3.1 clk test 25 decd shd : 222 ms, 2312 ps/instr, 432 MIPS, 6.0 clk test 26 decd sh : 148 ms, 1541 ps/instr, 648 MIPS, 4.0 clk test 27 call jmp : 297 ms, 3093 ps/instr, 323 MIPS, 8.0 clk test 28 call ind : 372 ms, 3875 ps/instr, 258 MIPS, 10.0 clk test 29 call eax : 373 ms, 3885 ps/instr, 257 MIPS, 10.0 clk test 29 call mis : 1883 ms, 19614 ps/instr, 50 MIPS, 50.8 clk test 30 mov ereg : 13 ms, 135 ps/instr, 7384 MIPS, 2.8 IPC test 31 mov reg8 : 18 ms, 187 ps/instr, 5333 MIPS, 2.0 IPC test 32 mov axbx : 18 ms, 187 ps/instr, 5333 MIPS, 2.0 IPC test 33 mov albl : 18 ms, 187 ps/instr, 5333 MIPS, 2.0 IPC test 34 mov alah : 148 ms, 1541 ps/instr, 648 MIPS, 4.0 clk test 35 mov ahal : 149 ms, 1552 ps/instr, 644 MIPS, 4.0 clk test 36 shl eax : 148 ms, 1541 ps/instr, 648 MIPS, 4.0 clk test 37 shl al : 148 ms, 1541 ps/instr, 648 MIPS, 4.0 clk test 38 bt eax,k : 98 ms, 1020 ps/instr, 979 MIPS, 2.6 clk test 39 btc eax : 148 ms, 1541 ps/instr, 648 MIPS, 4.0 clk test 40 mov 8/32 : 37 ms, 385 ps/instr, 2594 MIPS, 1.0 IPC test 41 w32 r32 : 66 ms, 687 ps/instr, 1454 MIPS, 1.7 clk unlg 41 w32 r32 : 66 ms, 687 ps/instr, 1454 MIPS, 1.7 clk test 42 w32 r8r8 : 293 ms, 3052 ps/instr, 327 MIPS, 7.9 clk test 42 w32 r8 : 123 ms, 1281 ps/instr, 780 MIPS, 3.3 clk test 42 w32 bt32 : 109 ms, 1135 ps/instr, 880 MIPS, 2.9 clk test 43 w8w8 r32 : 1278 ms, 13312 ps/instr, 75 MIPS, 34.5 clk test 43 w8 r32 : 1262 ms, 13145 ps/instr, 76 MIPS, 34.1 clk test 43 w8 bt32 : 1471 ms, 15322 ps/instr, 65 MIPS, 39.7 clk test 44 w32 r8r8 : 111 ms, 1156 ps/instr, 864 MIPS, 3.0 clk test 44 w32 r8 : 65 ms, 677 ps/instr, 1476 MIPS, 1.7 clk test 45 w8w8 r32 : 198 ms, 2062 ps/instr, 484 MIPS, 5.3 clk test 45 w8 r32 : 66 ms, 687 ps/instr, 1454 MIPS, 1.7 clk test 46 cmov 4x : 62 ms, 645 ps/instr, 1548 MIPS, 1.6 clk test 47 cmovsame : 226 ms, 2354 ps/instr, 424 MIPS, 6.1 clk test 48 cmov mem : 74 ms, 770 ps/instr, 1297 MIPS, 2.0 clk test 49 cmov mem : 185 ms, 1927 ps/instr, 518 MIPS, 5.0 clk test 50 *10=*2*5 : 59 ms, 614 ps/instr, 1627 MIPS, 1.5 clk test 51 *2 + *8 : 50 ms, 520 ps/instr, 1920 MIPS, 1.3 clk test 52 + + + *8 : 115 ms, 1197 ps/instr, 834 MIPS, 3.1 clk test 53 *2 + *8 : 166 ms, 1729 ps/instr, 578 MIPS, 4.4 clk test 54 <<1 *5 : 197 ms, 2052 ps/instr, 487 MIPS, 5.3 clk test 55 *10=*2*5 : 114 ms, 1187 ps/instr, 842 MIPS, 3.0 clk test 56 MOV cons : 13 ms, 135 ps/instr, 7384 MIPS, 2.8 IPC test 57 QC 4.2 : 155 ms, 1614 ps/instr, 619 MIPS, 4.1 clk test 58 QC 6.0 : 334 ms, 3479 ps/instr, 287 MIPS, 9.0 clk test 59 QC 7.0 : 119 ms, 1239 ps/instr, 806 MIPS, 3.2 clk test 60 QC GNU 1 : 156 ms, 1625 ps/instr, 615 MIPS, 4.2 clk test 61 QC GNU 2 : 207 ms, 2156 ps/instr, 463 MIPS, 5.5 clk test 62 QC GNU 3 : 120 ms, 1250 ps/instr, 800 MIPS, 3.2 clk test 63 push/pop : 38 ms, 395 ps/instr, 2526 MIPS, 1.0 IPC test 64 mov2stck : 37 ms, 385 ps/instr, 2594 MIPS, 1.0 IPC test 65 hint tak : 113 ms, 1177 ps/instr, 849 MIPS, 3.0 clk test 66 hint not : 40 ms, 416 ps/instr, 2400 MIPS, 1.0 IPC test 67 hint alt : 45 ms, 468 ps/instr, 2133 MIPS, 1.2 clk test 68 hint nop : 144 ms, 1500 ps/instr, 666 MIPS, 3.8 clk test 69 hint non : 894 ms, 9312 ps/instr, 107 MIPS, 24.1 clk test 70 loop c70 : 122 ms, 1270 ps/instr, 786 MIPS, 3.2 clk test 71 loop add : 86 ms, 895 ps/instr, 1116 MIPS, 2.3 clk test 72 loop lea : 86 ms, 895 ps/instr, 1116 MIPS, 2.3 clk test 73 loop alt : 87 ms, 906 ps/instr, 1103 MIPS, 2.3 clk test 74 add m2r : 37 ms, 385 ps/instr, 2594 MIPS, 1.0 IPC test 75 add r2m : 330 ms, 3437 ps/instr, 290 MIPS, 8.9 clk test 76 add k2m : 329 ms, 3427 ps/instr, 291 MIPS, 8.8 clk test 77 add slow : 351 ms, 3656 ps/instr, 273 MIPS, 9.4 clk test 78 inc by 1 : 26 ms, 270 ps/instr, 3692 MIPS, 1.4 IPC test 79 add by 1 : 14 ms, 145 ps/instr, 6857 MIPS, 2.6 IPC Skipping AMD prefetch test. /amd enables it. test 81 prefetc0 : 225 ms, 2343 ps/instr, 426 MIPS, 6.0 clk test 82 xchg mem : 4580 ms, 47708 ps/instr, 20 MIPS, 123.7 clk test 83 lockxchg : 4579 ms, 47697 ps/instr, 20 MIPS, 123.7 clk test 84 xor xchg : 674 ms, 7020 ps/instr, 142 MIPS, 18.2 clk test 99 pusha : 575 ms, 5989 ps/instr, 166 MIPS, 15.5 clk test 99 pushpopa : 892 ms, 9291 ps/instr, 107 MIPS, 24.1 clk Dispatch tests. dispatch 1 nop : 1743 ms, 18156 ps/instr, 55 MIPS, 47.1 clk dispatch 2 nops : 1705 ms, 17760 ps/instr, 56 MIPS, 46.0 clk dispatch 3 nops : 1705 ms, 17760 ps/instr, 56 MIPS, 46.0 clk dispatch 4 nops : 1713 ms, 17843 ps/instr, 56 MIPS, 46.2 clk dispatch 5 nops : 1708 ms, 17791 ps/instr, 56 MIPS, 46.1 clk dispatch 6 nops : 1831 ms, 19072 ps/instr, 52 MIPS, 49.4 clk dispatch 7 nops : 1892 ms, 19708 ps/instr, 50 MIPS, 51.1 clk dispatch 8 nops : 1960 ms, 20416 ps/instr, 48 MIPS, 52.9 clk dispatch 9 nops : 1986 ms, 20687 ps/instr, 48 MIPS, 53.6 clk dispatch 10 nops : 2038 ms, 21229 ps/instr, 47 MIPS, 55.0 clk dispatch 11 nops : 2076 ms, 21625 ps/instr, 46 MIPS, 56.1 clk dispatch 12 nops : 2147 ms, 22364 ps/instr, 44 MIPS, 58.0 clk Random memory access for increasing sizes of memory. mem random 2K: 65 ms, 677 ps/instr, 1476 MIPS, 1.7 clk mem random 4K: 64 ms, 666 ps/instr, 1500 MIPS, 1.7 clk mem random 8K: 68 ms, 708 ps/instr, 1411 MIPS, 1.8 clk mem random 16K: 168 ms, 1750 ps/instr, 571 MIPS, 4.5 clk mem random 32K: 132 ms, 1375 ps/instr, 727 MIPS, 3.5 clk mem random 64K: 133 ms, 1385 ps/instr, 721 MIPS, 3.5 clk mem random 128K: 133 ms, 1385 ps/instr, 721 MIPS, 3.5 clk mem random 256K: 191 ms, 1989 ps/instr, 502 MIPS, 5.1 clk mem random 512K: 405 ms, 4218 ps/instr, 237 MIPS, 10.9 clk mem random 1024K: 6335 ms, 65989 ps/instr, 15 MIPS, 171.2 clk mem random 2048K: 6265 ms, 65260 ps/instr, 15 MIPS, 169.3 clk mem random 4096K: 5617 ms, 58510 ps/instr, 17 MIPS, 151.8 clk Sequential memory access for increasing sizes of memory. mem linear 2K: 47 ms, 489 ps/instr, 2042 MIPS, 1.2 clk mem linear 4K: 47 ms, 489 ps/instr, 2042 MIPS, 1.2 clk mem linear 8K: 46 ms, 479 ps/instr, 2086 MIPS, 1.2 clk mem linear 16K: 48 ms, 500 ps/instr, 2000 MIPS, 1.2 clk mem linear 32K: 48 ms, 500 ps/instr, 2000 MIPS, 1.2 clk mem linear 64K: 47 ms, 489 ps/instr, 2042 MIPS, 1.2 clk mem linear 128K: 47 ms, 489 ps/instr, 2042 MIPS, 1.2 clk mem linear 256K: 48 ms, 500 ps/instr, 2000 MIPS, 1.2 clk mem linear 512K: 48 ms, 500 ps/instr, 2000 MIPS, 1.2 clk mem linear 1024K: 65 ms, 677 ps/instr, 1476 MIPS, 1.7 clk mem linear 2048K: 65 ms, 677 ps/instr, 1476 MIPS, 1.7 clk mem linear 4096K: 65 ms, 677 ps/instr, 1476 MIPS, 1.7 clk Reverse memory access for increasing sizes of memory. mem linear 2K: 46 ms, 479 ps/instr, 2086 MIPS, 1.2 clk mem linear 4K: 46 ms, 479 ps/instr, 2086 MIPS, 1.2 clk mem linear 8K: 47 ms, 489 ps/instr, 2042 MIPS, 1.2 clk mem linear 16K: 47 ms, 489 ps/instr, 2042 MIPS, 1.2 clk mem linear 32K: 47 ms, 489 ps/instr, 2042 MIPS, 1.2 clk mem linear 64K: 47 ms, 489 ps/instr, 2042 MIPS, 1.2 clk mem linear 128K: 47 ms, 489 ps/instr, 2042 MIPS, 1.2 clk mem linear 256K: 50 ms, 520 ps/instr, 1920 MIPS, 1.3 clk mem linear 512K: 49 ms, 510 ps/instr, 1959 MIPS, 1.3 clk mem linear 1024K: 65 ms, 677 ps/instr, 1476 MIPS, 1.7 clk mem linear 2048K: 65 ms, 677 ps/instr, 1476 MIPS, 1.7 clk mem linear 4096K: 68 ms, 708 ps/instr, 1411 MIPS, 1.8 clk