Intel ITANIUM ARCHITECTURE - SOFTWARE DEVELOPERS MANUAL VOLUME 1 REV 2.3 Manual page 1865

Hide thumbs Also See for ITANIUM ARCHITECTURE - SOFTWARE DEVELOPERS MANUAL VOLUME 1 REV 2.3:
Table of Contents

Advertisement

PAVGB/PAVGW: Packed Average
Opcode
0F,E0, /r
0F,E3, /r
Operation:
if (instruction == PAVGB) {
x[0]
x[1]
x[2]
x[3]
x[4]
x[5]
x[6]
x[7]
for (i = 0; i < 8; i++) {
temp[i] = zero_ext(x[i], 8) + zero_ext(y[i], 8);
res[i] = (temp[i] +1) >> 1;
}
mm1[7-0]
...
mm1[63-56]
}
else if (instruction == PAVGW){
x[0]
x[1]
x[2]
x[3]
for (i = 0; i < 4; i++) {
Volume 4: IA-32 SSE Instruction Reference
Instruction
PAVGB mm1,mm2/m64
PAVGW mm1, mm2/m64
= mm1[7-0]
= mm1[15-8]
= mm1[23-16]
= mm1[31-24]
= mm1[39-32]
= mm1[47-40]
= mm1[55-48]
= mm1[63-56]
=
res[0];
=
res[7];
= mm1[15-0]
= mm1[31-16]
= mm1[47-32]
= mm1[63-48]
Average with rounding packed unsigned bytes from
MM2/Mem to packed bytes in MM1 register.
Average with rounding packed unsigned words from
MM2/Mem to packed words in MM1 register.
y[0] = mm2/m64[7-0];
y[1] = mm2/m64[15-8];
y[2] = mm2/m64[23-16];
y[3] = mm2/m64[31-24];
y[4] = mm2/m64[39-32];
y[5] = mm2/m64[47-40];
y[6] = mm2/m64[55-48];
y[7] = mm2/m64[63-56];
y[0] = mm2/m64[15-0];
y[1] = mm2/m64[31-16];
y[2] = mm2/m64[47-32];
y[3] = mm2/m64[63-48];
Description
4:563

Advertisement

Table of Contents
loading

This manual is also suitable for:

Itanium architecture 2.3

Table of Contents