add. Additional instructions perform min, max and average,
as well as conversion between floating-point and 32-bit inte-
ger numerical formats.
2. Intra-Element Non-Arithmetic Operations
Intra-element non-arithmetic operations include various
forms of compare, shift, and rotate. The following logical
operations are also supported: AND, OR, NOT, XOR,
AND-NOT. A select instruction is also provided. This
instruction is designed to select or choose source data from
one of two source registers and transfer that data to the
results register. The combination of compare and select pro-
vides a powerful way to mask and replace data elements
across the entire 16-byte field of the vector registers with a
very few instructions.
3. Inter-Element Arithmetic Operations
A few special inter-element arithmetic operations are pro-
vided in the AltiVec technology, these operations are sum of
products and sum across. These operations allow for ele-
ments within a single vector register to be summed in com-
bination with a separate accumulation register. These opera-
tions are valuable for generating dot products which are the
most common vector operation.
4. Inter-Element Non-Arithmetic Operations
In addition to the powerful intra-element and inter-element
arithmetic operations, AltiVec technology also defines a
group of very powerful inter-element non-arithmetic opera-
tions. These inter-element operations include wide field shift
operations, pack and unpack operations, including a special
operation to handle the 1/5/5/5 pixel format common for
16-bit color pixels. Merge operations are also provided that
can interleave data at the byte, halfword and word level.
Perhaps the most powerful inter-element operation offered
in the AltiVec technology is the permute operation. The per-
mute operation is capable of arbitrarily selecting data with
the granularity of a byte from two 16-byte source registers
into a single 16-byte destination register.
For operations where 8- and 16-bit data items must be
reorganized in memory before or after computations, per-
mute can save significant time. In many instances a single
permute operation can operate on 16 bytes of data and
replace 4 or 5 operations per byte using a traditional RISC
or DSP operation.
The powerful inter-element operations of AltiVec technology
define a microprocessor not just capable of operating on 8,
16 and 32-bit data elements in parallel but of operating on
data 128 bits (16 bytes) at a time.
Applications of AltiVec Technology
The initial target applications for AltiVec technology
include: IP telephony gateways, multi-channel modems,
speech processing systems, echo cancelers, image and video
processing systems, scientific array processing systems, as
well as network infrastructure such as Internet routers and
virtual private network servers.
In addition to accelerating next-generation applications,
AltiVec technology can, through its wide datapaths and wide
field operations, also accelerate many time-consuming tradi-
tional computing and embedded processing operations such
as memory copies, string compares and page clears.
Unlike fixed function solutions which are most often imple-
mented as application specific integrated circuits, AltiVec
technology will offer a programmable solution that can eas-
ily migrate via software upgrades to follow changing stan-
dards and customer requirements. The preferred program-
ming environment is the C and C++ languages favored by