The following are special terms and syntax used in this chapter to describe functionality of the classes with respect to their associated operations.
The name of each class denotes the data type, signedness, bit size, number of elements using the following generic format:
<type><signedness><bits>vec<elements>
{ F | I } { s | u } { 64 | 32 | 16 | 8 } vec { 8 | 4 | 2 | 1 }
where
type |
indicates floating point ( F ) or integer ( I ) |
signedness |
indicates signed ( s ) or unsigned ( u ). For the Ivec class, leaving this field blank indicates an intermediate class. There are no unsigned Fvec classes, therefore for the Fvec classes, this field is blank. |
bits |
specifies the number of bits per element |
elements |
specifies the number of elements |
The following terms are used to define the functionality and characteristics of the classes and operations defined in this manual.
Nearest Common Ancestor -- This is the intermediate or parent class of two classes of the same size. For example, the nearest common ancestor of Iu8vec8 and Is8vec8 is I8vec8. Also, the nearest common ancestor between Iu8vec8 and I16vec4 is M64.
Casting -- Changes the data type from one class to another. When an operation uses different data types as operands, the return value of the operation must be assigned to a single data type. Therefore, one or more of the data types must be converted to a required data type. This conversion is known as a typecast. Sometimes, typecasting is automatic, other times you must use special syntax to explicitly typecast it yourself.
Operator Overloading -- This is the ability to use various operators on the same user-defined data type of a given class. Once you declare a variable, you can add, subtract, multiply, and perform a range of operations. Each family of classes accepts a specified range of operators, and must comply by rules and restrictions regarding typecasting and operator overloading as defined in the header files. The following table shows the notation used in this documention to address typecasting, operator overloading, and other rules.
Class Syntax Notation Conventions
Class Name |
Description |
---|---|
I[s|u][N]vec[N] |
Any value except I128vec1 nor I64vec1 |
I64vec1 |
__m64 data type |
I[s|u]64vec2 |
two 64-bit values of any signedness |
I[s|u]32vec4 |
four 32-bit values of any signedness |
I[s|u]8vec16 |
eight 16-bit values of any signedness |
I[s|u]16vec8 |
sixteen 8-bit values of any signedness |
I[s|u]32vec2 |
two 32-bit values of any signedness |
I[s|u]16vec4 |
four 16-bit values of any signedness |
I[s|u]8vec8 |
eight 8-bit values of any signedness |
Copyright © 1996-2010, Intel Corporation. All rights reserved.