1:80
Volume 1, Part 1: Application Programming Model
saturation form treats both sources as signed and clamps the result to the limits of a
signed range. The unsigned saturation form treats one source as unsigned and clamps
the result to the limits of an unsigned range. Two variants are defined that treat the
second source as either signed (
.uus
) or unsigned (
.uuu
).
The parallel average instruction (
pavg
,
pavg.raz
) adds corresponding elements from
each source and right shifts each result by one bit. In the simple form of the
instruction, the carry out of the most-significant bit of each sum is written into the most
significant bit of the result element. In the round-away-from-zero form, a 1 is added to
each sum before shifting. The parallel average subtract instruction (
pavgsub
) performs
a similar operation on the difference of the sources.
The parallel shift left and add instruction (
pshladd
) performs a left shift on the
elements of the first source and then adds them to the corresponding elements from
the second source. Signed saturation is performed on both the shift and the add
operations. The parallel shift right and add instruction (
pshradd
) is similar to
pshladd
.
Both of these instructions are defined for 2-byte elements only.
The parallel compare instruction (
pcmp
) compares the corresponding elements of both
sources and writes all ones (if true) or all zeroes (if false) into the corresponding
elements of the target according to one of two relations (== or >).
The parallel multiply right instruction (
pmpy.r
) multiplies the corresponding two
even-numbered signed 2-byte elements of both sources and writes the results into two
4-byte elements in the target. The
pmpy.l
instruction performs a similar operation on
odd-numbered 2-byte elements. The parallel multiply and shift right instruction
(
pmpyshr
,
pmpyshr.u
) multiplies the corresponding 2-byte elements of both sources
producing four 4-byte results. The 4-byte results are shifted right by 0, 7, 15, or 16 bits
as specified by the instruction. The least-significant 2 bytes of the 4-byte shifted results
are then stored in the target register.
The parallel sum of absolute difference instruction (
psad
) accumulates the absolute
difference of corresponding 1-byte elements and writes the result in the target.
The parallel minimum (
pmin.u
,
pmin
) and the parallel maximum (
pmax.u
,
pmax
)
instructions deliver the minimum or maximum, respectively, of the corresponding
1-byte or 2-byte elements in the target. The 1-byte elements are treated as unsigned
values and the 2-byte elements are treated as signed values.
Table 4-29.
Parallel Arithmetic Instructions
Mnemonic
Operation
1-byte
2-byte
4-byte
padd
Parallel modulo addition
x
x
x
padd.sss
Parallel addition with signed saturation
x
x
padd.uuu,
padd.uus
Parallel addition with unsigned saturation
x
x
psub
Parallel modulo subtraction
x
x
x
psub.sss
Parallel subtraction with signed saturation
x
x
psub.uuu,
psub.uus
Parallel subtraction with unsigned saturation
x
x
pavg
Parallel arithmetic average
x
x
pavg.raz
Parallel arithmetic average with round away from zero
x
x
pavgsub
Parallel average of a difference
x
x
Содержание ITANIUM ARCHITECTURE - SOFTWARE DEVELOPERS VOLUME 3 REV 2.3
Страница 1: ......
Страница 11: ...x Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Страница 12: ...1 1 Intel Itanium Architecture Software Developer s Manual Rev 2 3 Part I Application Architecture Guide ...
Страница 13: ...1 2 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Страница 33: ...1 22 Volume 1 Part 1 Introduction to the Intel Itanium Architecture ...
Страница 57: ...1 46 Volume 1 Part 1 Execution Environment ...
Страница 147: ...1 136 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Страница 149: ...1 138 Volume 1 Part 2 About the Optimization Guide ...
Страница 191: ...1 180 Volume 1 Part 2 Predication Control Flow and Instruction Stream ...
Страница 230: ......
Страница 248: ...236 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Страница 249: ...2 1 Intel Itanium Architecture Software Developer s Manual Rev 2 3 Part I System Architecture Guide ...
Страница 250: ...2 2 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Страница 264: ...2 16 Volume 2 Part 1 Intel Itanium System Environment ...
Страница 380: ...2 132 Volume 2 Part 1 Interruptions ...
Страница 398: ...2 150 Volume 2 Part 1 Register Stack Engine ...
Страница 486: ...2 238 Volume 2 Part 1 IA 32 Interruption Vector Descriptions ...
Страница 749: ...2 501 Intel Itanium Architecture Software Developer s Manual Rev 2 3 Part II System Programmer s Guide ...
Страница 750: ...2 502 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Страница 754: ...2 506 Volume 2 Part 2 About the System Programmer s Guide ...
Страница 796: ...2 548 Volume 2 Part 2 Interruptions and Serialization ...
Страница 808: ...2 560 Volume 2 Part 2 Context Management ...
Страница 842: ...2 594 Volume 2 Part 2 Floating point System Software ...
Страница 850: ...2 602 Volume 2 Part 2 IA 32 Application Support ...
Страница 862: ...2 614 Volume 2 Part 2 External Interrupt Architecture ...
Страница 870: ...2 622 Volume 2 Part 2 Performance Monitoring Support ...
Страница 891: ......
Страница 941: ...3 42 Volume 3 Instruction Reference cmp illegal_operation_fault PR p1 0 PR p2 0 Interruptions Illegal Operation fault ...
Страница 1099: ...3 200 Volume 3 Instruction Reference padd Interruptions Illegal Operation fault ...
Страница 1191: ...3 292 Volume 3 Pseudo Code Functions Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Страница 1295: ...3 396 Volume 3 Resource and Dependency Semantics ...
Страница 1296: ......
Страница 1302: ...402 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Страница 1494: ...4 192 Volume 4 Base IA 32 Instruction Reference FWAIT Wait See entry for WAIT ...
Страница 1564: ...4 262 Volume 4 Base IA 32 Instruction Reference LES Load Full Pointer See entry for LDS LES LFS LGS LSS ...
Страница 1565: ...Volume 4 Base IA 32 Instruction Reference 4 263 LFS Load Full Pointer See entry for LDS LES LFS LGS LSS ...
Страница 1568: ...4 266 Volume 4 Base IA 32 Instruction Reference LGS Load Full Pointer See entry for LDS LES LFS LGS LSS ...
Страница 1583: ...Volume 4 Base IA 32 Instruction Reference 4 281 LSS Load Full Pointer See entry for LDS LES LFS LGS LSS ...
Страница 1647: ...Volume 4 Base IA 32 Instruction Reference 4 345 ROL ROR Rotate See entry for RCL RCR ROL ROR ...
Страница 1663: ...Volume 4 Base IA 32 Instruction Reference 4 361 SHL SHR Shift Instructions See entry for SAL SAR SHL SHR ...
Страница 1668: ...4 366 Volume 4 Base IA 32 Instruction Reference SIDT Store Interrupt Descriptor Table Register See entry for SGDT SIDT ...
Страница 1884: ...4 582 Volume 4 IA 32 SSE Instruction Reference ...
Страница 1885: ...Index Intel Itanium Architecture Software Developer s Manual Rev 2 3 Index ...
Страница 1886: ...Index Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Страница 1898: ...INDEX Index 12 Index for Volumes 1 2 3 and 4 ...