15/11/18 22:41:53.43 Ia1eO7yB.net
Haswellの場合、
vaddpdのレイテンシは3クロック, vfmadd132pdのレイテンシは5クロックなので、
以下のレイテンシはいずれも8になりそうですが、
ループを組んで時間を測定したところ、レイテンシが8~10クロックとばらつくようです。
レイテンシ8の例
vaddpd ymm0, ymm0, ymm1
vfmadd132pd ymm1, ymm1, ymm0
レイテンシ9の例
vaddpd ymm0, ymm0, ymm0
vfmadd132pd ymm0, ymm1, ymm0
レイテンシ10の例
vaddpd ymm0, ymm0, ymm1
vfmadd132pd ymm0, ymm0, ymm1
コード領域のアラインメント、ループアンローリング数、レジスタの値、132,213,231の選択
には依存しないようです。
想定より遅いコードがあるのでいろいろと測ってみてわかりました。
原理、法則、原因がわかる人がいたら教えてください。