IBM Search Java Site Map Microelectronics News Products Services Technology About Us IBM Microelectronics Order Contact Legal

power pcProducts

overview
news
products
documents
performance
technology


[ Table of Contents | Index ]
Appendix C

C. PowerPC Instruction Usage Statistics


The statistical properties of programs are often an important consideration for a compiler writer who faces difficult trade-offs among different optimizations. This section presents PowerPC instruction frequency statistics derived from traces of the SPEC92 benchmark suite. The traces recorded the number of times each type of instruction was executed during each of the benchmarks.


C.1 By Instruction Category

Figures C-1 and C-2 show the instruction frequency in each of the benchmarks of the SPEC92 suite for the following categories of instructions:

The percentages represent the fraction of the total number of instructions executed in that benchmark program (or in the entire set of integer or floating-point programs in the case of average) for the specified category.



Figure C-1. Instruction Frequency in Integer SPEC92 Benchmarks

Benchmark Branch Integer Load Store Floating-Point
008.espresso 22.9% 46.8% 21.1% 5.3% 0.0%
022.li 20.7% 34.2% 25.6% 15.5% 0.0%
023.eqntott 27.9% 42.8% 27.0% 0.9%
026.compress 19.5% 53.8% 17.6% 9.0%
072.sc 23.5% 40.1% 20.1% 10.7% 1.2%
085.gcc 21.1% 42.0% 21.7% 11.1% 0.0%
average 22.1% 39.7% 23.8% 10.7% 0.1%



Figure C-2. Instruction Frequency in Floating-Point SPEC92 Benchmarks

Benchmark Branch Integer Load Store Floating-Point
013.spice2g6 16.0% 39.2% 33.0% 4.7% 6.6%
015.doduc 9.7% 15.2% 28.6% 9.2% 34.9%
034.mdljdp2 13.9% 7.4% 17.5% 11.4% 49.6%
039.wave5 7.0% 12.7% 28.3% 18.7% 31.5%
047.tomcatv 4.7% 1.4% 28.9% 11.6% 51.4%
048.ora 11.2% 20.8% 13.1% 8.5% 41.3%
052.alvinn 5.1% 1.1% 52.1% 14.0% 27.5%
056.ear 7.8% 3.3% 26.8% 19.9% 41.4%
077.mdljsp2 14.7% 7.5% 16.7% 10.7% 50.3%
078.swm256 1.3% 0.3% 28.7% 15.1 54.5%
089.su2cor 5.1% 10.4% 31.7% 14.9% 35.7%
090.hydro2d 14.2% 3.6% 26.9% 10.4% 44.4%
093.nasa7 4.3% 4.4% 38.0% 16.1% 35.9%
094.fpppp 3.5% 8.4% 37.9% 15.3% 33.9%
average 9.2% 13.9% 29.6% 12.3% 34.0%


C.2 By Instruction

Figures C-3, C-4, and C-5 shows the frequency of PowerPC instruction execution by instruction averaged over either the integer or floating-point programs in SPEC92. The number of executions for each instruction is divided by the total number of executions in all of the integer or floating-point programs to give the percent. Figures C-3 and C-4 show the 20 most frequently used instructions in the integer and floating-point parts of SPEC92 arranged in decreasing order of frequency. Figure C-5 shows the frequency of all instructions in the integer and floating-point parts of SPEC92 arranged alphabetically by mnemonic.



Figure C-3. Most Frequently Used Instructions in Integer SPEC92 Benchmarks

Instruction Number of Executions Percent of Total
bc 1508917705 18.139%
lwz 1229199616 14.777%
addic 598626049 7.196%
stw 588953694 7.080%
cmpi 520487282 6.257%
addi 486856037 5.853%
rlwinm 317849202 3.821%
addic. 276509061 3.324%
addc 221924567 2.668%
lwzu 199764606 2.401%
cmp 179553516 2.158%
lhau 174867658 2.102%
b 171011479 2.056%
lbz 163250603 1.963%
cmpl 157763383 1.897%
cmpli 155353285 1.868%
stwu 112130839 1.348%
mtcrf 99774741 1.199%
lwzx 97825934 1.176%
stb 73789744 0.887%
7334409001 88.170%



Figure C-4. Most Frequently Used Instructions in Floating-Point SPEC92 Benchmarks

Instruction Number of Executions Percent of Total
bc 4632759740 8.201%
lfd 4541238554 8.039%
lfs 4027314472 7.129%
rlwinm 2622073529 4.642%
fmadd 2552767648 4.519%
lwzx 2550409671 4.515%
fmadds 2226101857 3.941%
stfd 2212288366 3.916%
fmul 2040451730 3.612%
stfs 1829710486 3.239%
fadds 1753192121 3.104%
fcmpu 1643620521 2.910%
lwz 1611894060 2.853%
lfsu 1579616198 2.796%
fmuls 1388578318 2.458%
fnmsub 1365945195 2.418%
stfsu 1299232823 2.300%
cmp 1263727046 2.237%
fsub 1172654396 2.076%
addc 1084453453 1.920%
43398030184 76.825%



Figure C-5. PowerPC Instruction Usage in SPEC92 Benchmarks

Instruction Integer Programs Floating-Point Programs
Number of Executions Percent of Total Number of Executions Percent of Total
addc 221924567 2.668% 1084453453 1.920%
addc. 1429791 0.017% 2049288 0.004%
adde 39184 0.000%
addi 486856037 5.853% 320521990 0.567%
addic 598626049 7.196% 782613603 1.385%
addic. 276509061 3.324% 330571846 0.585%
addis 5168608 0.062% 314271092 0.556%
addme 25240 0.000%
addze 4671144 0.056% 13936494 0.025%
addze. 109633 0.001% 13597934 0.024%
and 41115820 0.494% 9797567 0.017%
and. 53685924 0.645%
andc 23867739 0.287% 7820006 0.014%
andc. 18230312 0.219% 498 0.000%
andi. 5951436 0.072% 18704 0.000%
b 171011479 2.056% 304118306 0.538%
bc 1508917705 18.139% 4632759740 8.201%
bcctr 19000179 0.228% 3015888 0.005%
bcl 182674 0.002% 1054 0.000%
bclr 73175784 0.880% 139117978 0.246%
bclrl 3681108 0.044%
bl 62473955 0.751% 130018248 0.230%
bla 215842 0.003% 55948 0.000%
cmp 179553516 2.158% 1263727046 2.237%
cmpi 520487282 6.257% 309750854 0.548%
cmpl 157763383 1.897% 1279258 0.002%
cmpli 155353285 1.868% 13328060 0.024%
cntlzw 4971137 0.060% 1167422 0.002%
crand 76952 0.000%
crandc 16 0.000% 60966972 0.108%
creqv 3421939 0.041% 134551 0.000%
crnand 1466272 0.018% 26273 0.000%
crnor 2702659 0.032% 77116 0.000%
cror 7976555 0.096% 71760372 0.127%
crorc 298252 0.004% 38873 0.000%
crxor 6672859 0.080% 104980 0.000%
divw 231212 0.003% 1530368 0.003%
divw. 4 0.000% 1360208 0.002%
divwu 1399 0.000%
extsh 325088 0.004% 37319 0.000%
extsh. 16589 0.000%
fabs 39522 0.000% 399163534 0.707%
fadd 1014834 0.012% 959230838 1.698%
fadds 1753192121 3.104%
fcmpo 1348 0.000% 2274252 0.004%
fcmpu 997654 0.012% 1643620521 2.910%
fctiwz 28436 0.000% 30243292 0.054%
fdiv 140573 0.002% 228519745 0.405%
fdivs 125692567 0.223%
fmadd 518559 0.006% 2552767648 4.519%
fmadds 2226101857 3.941%
fmr 1303749 0.016% 673731204 1.193%
fmsub 126198 0.002% 343716277 0.608%
fmsubs 197597953 0.350%
fmul 689836 0.008% 2040451730 3.612%
fmuls 1388578318 2.458%
fnabs 4296 0.000%
fneg 573 0.000% 31327405 0.055%
fnmadd 777075 0.001%
fnmadds 690006 0.001%
fnmsub 82974 0.001% 1365945195 2.418%
fnmsubs 571824561 1.012%
frsp 692609710 1.226%
fsub 398869 0.005% 1172654396 2.076%
fsubs 779069473 1.379%
lbz 163250603 1.963% 993619 0.002%
lbzu 30006762 0.361% 319549 0.001%
lbzux 28228 0.000%
lbzx 7070049 0.085% 109943 0.000%
lfd 10279862 0.124% 4541238554 8.039%
lfdu 1024217155 1.813%
lfdux 149148931 0.264%
lfdx 183171 0.002% 801456823 1.419%
lfs 1507240 0.018% 4027314472 7.129%
lfsu 1579616198 2.796%
lfsux 49660136 0.088%
lfsx 132365011 0.234%
lha 13485592 0.162% 40598 0.000%
lhau 174867658 2.102% 224 0.000%
lhax 1371004 0.016% 2059234 0.004%
lhz 242417 0.003% 325458 0.001%
lhzu 1332 0.000%
lhzx 1631257 0.020% 62096671 0.110%
lmw 45073238 0.542% 14666169 0.026%
lscbx 114286 0.001% 2 0.000%
lscbx. 383371 0.005% 5815 0.000%
lswi 235197 0.003% 11141 0.000%
lswx 657508 0.008% 3139420 0.006%
lwz 1229199616 14.777% 1611894060 2.853%
lwzu 199764606 2.401% 170131767 0.301%
lwzux 459875 0.006%
lwzx 97825934 1.176% 2550409671 4.515%
mcrf 10890080 0.131% 10400503 0.018%
mcrfs 4 0.000% 7257 0.000%
mfcr 6261353 0.075% 5312019 0.009%
mffs 103575 0.001% 95918930 0.170%
mflr 52188006 0.627% 13662190 0.024%
mfxer 335199 0.004% 2246 0.000%
mtcrf 99774741 1.199% 53633362 0.095%
mtctr 61223320 0.736% 54319408 0.096%
mtfsb0 220 0.000% 1250786 0.002%
mtfsb1 11960 0.000% 941288 0.002%
mtfsf 201208 0.002% 191042591 0.338%
mtlr 53821802 0.647% 17820085 0.032%
mtxer 730895 0.009% 206687 0.000%
mulhw 21619 0.000% 569101 0.001%
mulli 491379 0.006% 2345111 0.004%
mullw 714641 0.009% 38414428 0.068%
mullw. 271070 0.003% 235758 0.000%
nand 529971 0.006%
neg 17016242 0.205% 10007001 0.018%
neg. 4744 0.000% 8200 0.000%
nor 28890495 0.347%
or 26593457 0.320% 131473 0.000%
or. 263127 0.003% 92782 0.000%
orc 14434 0.000%
ori 45094423 0.542% 114268060 0.202%
oris 94877 0.001% 18520054 0.033%
rlwimi 4907005 0.059% 122049076 0.216%
rlwinm 317849202 3.821% 2622073529 4.642%
rlwinm. 23266792 0.280% 43556696 0.077%
slw 7624612 0.092% 81 0.000%
slw. 219 0.000% 76 0.000%
sraw 250893 0.003% 66308 0.000%
srawi 10066915 0.121% 30465201 0.054%
srawi. 4536 0.000% 17840 0.000%
srw 1527328 0.018%
stb 73789744 0.887% 188058 0.000%
stbu 3253185 0.039% 166728 0.000%
stbx 885848 0.011% 19779 0.000%
stfd 17578444 0.211% 2212288366 3.916%
stfdu 603686337 1.069%
stfdux 372 0.000%
stfdx 189224250 0.335%
stfs 1829710486 3.239%
stfsu 1299232823 2.300%
stfsux 26694600 0.047%
stfsx 27155759 0.048%
sth 3328726 0.040% 9883 0.000%
sthu 3741612 0.045% 18600 0.000%
sthx 1110650 0.013% 16 0.000%
stmw 50087129 0.602% 14868701 0.026%
stswi 1435842 0.017% 13953336 0.025%
stswx 972972 0.012% 3161671 0.006%
stw 588953694 7.080% 686158051 1.215%
stwu 112130839 1.348% 26753711 0.047%
stwux 244822 0.003% 23581 0.000%
stwx 31902458 0.384% 4742094 0.008%
subfc 16985159 0.204% 120372027 0.213%
subfc. 3935482 0.047% 152880700 0.271%
subfe 18628277 0.224% 9718627 0.017%
subfe. 13262 0.000%
subfic 8357256 0.100% 44722143 0.079%
xor 1181036 0.014% 73418 0.000%
xori 206756 0.002% 125858 0.000%
xoris 7662292 0.092% 60957499 0.108%
8318452722 100.000% 56489422213 100.000%


C.3 General Information

All benchmarks are compiled under the AIX version 4.1 operating system.

The C language benchmarks were compiled using:

The Fortran language benchmarks were compiled using:

The compiler flags for each specific benchmark are:


[ Table of Contents | Index ]
Copyright 1998 IBMchips