問題タブ [auto-vectorization]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
418 参照

c++ - 単純なゲッター/アクセサーはベクトル化を妨げます - gcc バグ?

この固定の最小限の実装を検討してくださいvector<int>

次のテスト ケースがあるとします。

コンパイラは、ベクトル化されていないアセンブリを生成します: Godbolt.orgのライブ サンプル

Godbolt のスクリーンショット - ベクトル化されていない


次の変更のいずれかを行うと...

  • values[size()]->values[_size]

  • __attribute__((always_inline))に追加size()

...その後、コンパイラはベクトル化されたアセンブリを生成します: Godbolt.org のライブ サンプル

Godbolt のスクリーンショット - ベクター化


これはgccのバグですか?または、明示的に追加されsize()ない限り、単純なアクセサーが自動ベクトル化を妨げる理由はありますか?always_inline

0 投票する
1 に答える
309 参照

c++ - コンパイラが SIMD 比較に最適化できるコードを作成する方法は?

スマート コンパイラは上記を SIMD にうまくコンパイルできます。しかし、以下のように比較を書く方法は、SIMD にもうまくコンパイルできます。