ステータスレジスタ
Itaniumでは、従来のようなステータスレジスタは存在しない。というのもEPICアーキテクチャによって、複数の命令を同時に並行して実行するため、単一のステータスレジスタでは結果を保持することができないためである。そこで、Itaniumでは64ビット幅で各ビットが汎用のフラグとして使えるプレディケートレジスタを用意している。この使用方法は次のようになる。
比較命令で何らかの比較を行う。レジスタ間あるいはイミディエート値とレジスタの大小比較ができる。
比較命令では比較結果を2つのプレディケートレジスタに格納する。一方がセットされれば、もう一方はクリアされる。
各命令は、必ずチェックすべきプレディケートレジスタを指定する。
チェックすべきプレディケートレジスタが 0 の場合、その命令は実行しない。
条件分岐もプレディケートレジスタを指定し、その値によって分岐するかしないかを決定する。
このように、プレディケートレジスタを使うと、基本的にひとつのプロシージャ(サブルーチン)内では分岐命令を使わずに済む。 これにより、分岐によるパイプラインの乱れを減らすことになり、高速化に寄与する。C言語の if文の then 部と else部を同時に実行するようなものだが、たとえばelse部が非常に短い場合や存在しない場合、then部を通る場合はよいが、通らない場合には実行しない命令をずっと実行ユニットに送り続けることになるため、分岐したほうが有効な場合もある。
なお、ItaniumのIA-64モードでは前述のとおりだが、IA-32モードでは従来とおりPentium相当のステータスレジスタが存在する。