Predication in IA-64 ISA
At run time, the CPU scans the templates, picks out the independent instructions, and issues them in parallel to the FUs.
Predicated branch: the processor executes the code for every possible branch outcome.
In spite of the fact that the processor has probably executed some instructions from both possible paths, none of the (possible) results is stored yet.
To do this, the processor checks predicate register of each of these instructions.
- If the predicate register contains a 1, ? the instruction is on the TRUE path (i.e., valid path), so the processor retires the instruction and stores the result.
- If the register contains a 0,
? the instruction is invalid, so the processor discards the result.