Statements in the Loop Body

The vectorizable operations are different for floating point and integer data.

Floating-point Array Operations

The statements within the loop body may be REAL operations (typically on arrays). Arithmetic operations are limited to addition, subtraction, multiplication, division, negation, square root, max, and min. Note that conversion to/from some types of floats is not permitted. Operation on DOUBLE PRECISION types is not permitted, unless optimizing for a Pentium(R) 4 and Xeon(TM) processors system, using the -xW or -axW compiler option.

Integer Array Operations

The statements within the loop body may be arithmetic or logical operations (again, typically for arrays). Arithmetic operations are limited to such operations as addition, subtraction, ABS, MIN, and MAX. Logical operations include bitwise AND, OR and XOR operators.

Other Integer Operations

You can mix data types only if the conversion can be done without a loss of precision. Some example operators where you can mix data types are multiplication, shift, or unary operators.

Other Datatypes

No statements other than the preceding floating-point and integer operations are permitted.

No Function Calls

The loop body cannot contain any function calls.