問題タブ [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.
c++ - 単純なゲッター/アクセサーはベクトル化を妨げます - gcc バグ?
この固定の最小限の実装を検討してくださいvector<int>
。
次のテスト ケースがあるとします。
コンパイラは、ベクトル化されていないアセンブリを生成します: Godbolt.orgのライブ サンプル
次の変更のいずれかを行うと...
values[size()]
->values[_size]
__attribute__((always_inline))
に追加size()
...その後、コンパイラはベクトル化されたアセンブリを生成します: Godbolt.org のライブ サンプル
これはgccのバグですか?または、明示的に追加されsize()
ない限り、単純なアクセサーが自動ベクトル化を妨げる理由はありますか?always_inline
c++ - コンパイラが SIMD 比較に最適化できるコードを作成する方法は?
スマート コンパイラは上記を SIMD にうまくコンパイルできます。しかし、以下のように比較を書く方法は、SIMD にもうまくコンパイルできます。