>>27

a ^= b; ・・・(1)
b ^= a; ・・・(2)
a ^= b; ・・・(3)

(2)は(1)の演算が終わるまで、(3)は(2)が終わるまで実行できない。だから3クロックかかる。
これがいわゆる依存関係ってやつで、モダンなCPUアーキテクチャでは好まれない。

t = a;  ・・・(1)´
a = b; ・・・(2)´
b = t; ・・・(3)´

これなら、ALUが2個以上有る場合、(1)と(2)、もしくは(2)と(3)を並列実行できるから2クロックほどで済む。

もっとも1インストラクション1クロックという前提の話だけど。