Shatters existing limitations: the number of instructions supported is increased
from 128 to 65,536 through the use of data-dependent branching and more
instructions, registers, and constants.
Provides greater flow control: dynamic loops and branches provide for forward and
backward changes in flow; call and return functions have been introduced, and
vertex processing can also invoke an early exit on program termination.
Introduces new capabilities: per-component condition codes and write masks.
Evolves to an advanced instruction set: new instructions and capabilities including
branching (BRA), high-precision trigonometric functions (COS, SIN), and high-precision
exponentiation and logarithm functions (EX2, LG2, and others).