「AVX-SSE 切り替えペナルティー」を回避する?過去の妄想?TVTestでAVX有り無し最適化でどう変化するのか試してみた。

AVX-SSE 切り替えペナルティーを気にする人は多くても調べた報告が見つからないポンコツなので自分で試してみた。
またやってるよこのおっさんって感じですが・゚・(ノД`)・゚・

i7-3770T環境で動かなかったビルド品が「インテル® Software Development Emulator」(SDE)の上では動くんですよ(爆笑)
デバッグにならんね。エラー起きないんだもの。エミュレータかますとどのオプションでも全部動くってどうなのそれ(^◇^;

・オプション変えても結果が変わらないというつまらない落ちでした。

◆ TVTest(AVX,_inline展開のみ,最大速度最適化),zlib(最大速度最適化,展開できる関数すべて,拡張命令指定なし)のビルド。
チューナー指定してTV見てるだけなら「AVX-SSE 切り替え」のペナルティーは発生していないようなので、AVXと拡張命令指定なし混在ビルドもありってことですね。
ライブラリ単位というか、大雑把な話ですが、好きなようにビルドして動けばOKってことで。

バイナリコードを見つけるんじゃなく、動作中に使用したかどうかを見るだけなので。
今回は出なかったという感じ。

# ===================================================
# AVX/SSE transition checker
#
# ‘Penalty in Block’ provides the address (rIP) of the code basic block with
# the penaties.
#
# ‘Dynamic AVX to SSE Transition’ counts the number of potentially
# costly AVX-to-SSE sequences
#
# ‘Dynamic SSE to AVX Transition’ counts the number of potentially
# costly SSE-to-AVX sequences
#
# ‘Static Icount’ is the static number instructions in the block
#
# ‘Executions’ is the dynamic number of times the block was executed
#
# ‘Dynamic Icount’ is the product of the static icount and executions columns
#
# ‘Previous Block’ is an attempt to find the previous control flow block
#
# ‘State Change Block’ is an attempt to find the block that put the
# state machine in a state that conflicted with this block, causing a
# transition in this block
#
# ===================================================
Penalty Dynamic Dynamic State
in AVX to SSE SSE to AVX Static Dynamic Previous Change
Block Transition Transition Icount Executions Icount Block Block
================ ============ ============ ======== ========== ======== ================ ================
# SUMMARY
# AVX_to_SSE_transition_instances: 0
# SSE_to_AVX_transition_instances: 0
# Dynamic_insts: 22547791372
# AVX_to_SSE_instances/instruction: 0.0000
# SSE_to_AVX_instances/instruction: 0.0000
# AVX_to_SSE_instances/100instructions: 0.0000
# SSE_to_AVX_instances/100instructions: 0.0000

# AVX_to_SSE_transition_instances:
# SSE_to_AVX_transition_instances:
この2つの値の変化が見れると思ったんですけどね…
コンパイラの最適化最適化が優秀すぎて表に出にくい感じ?過去の妄想?