# 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 supported are addition, subtraction, multiplication, division,
negation, square root, MAX, MIN, and mathematical functions such as SIN
and COS. Note that conversion to/from some types of floats is not valid.
Operation on DOUBLE PRECISION types is not valid, unless optimizing for
an Intel®
Pentium®
4 and Intel®
Xeon(TM) processors' system, and Intel® Pentium® M processor,
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. 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 Operations

No statements other than the preceding floating-point and integer operations
are permitted. The loop body cannot contain any function calls other than
the ones described above.