問題タブ [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 を使用したビットマップへのバイトの SSE2 movemask による自動ベクトル化
適切に構築された C/C++ コードを使用すると、組み込み関数を使用せずに効率的な SIMD アセンブラーを独自に生成するように gcc にヒントを与えることができます (例: https://locklessinc.com/articles/vectorize/ )。
movemask 操作 ( PMOVMSKB / *_movemask_epi8 ファミリ) で同様の効果を達成しようとしていますが、これまでのところ成功していません。
私が考えることができる最も単純なコード:
ムーブ マスク命令を利用できないアセンブリにつながる: https://godbolt.org/z/3XimYc
組み込み関数を明示的に使用せずに gcc でそれを行う方法があるかどうか、誰か考えがありますか?
MD ファイルと関連する gcc の実装はまだ調べていません ( https://github.com/gcc-mirror/gcc/tree/master/gcc/config/i386 )。