問題タブ [altivec]
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.
sse - altivec での _mm_srli_si128 相当
SSE 4.2 で書かれたプログラムを Altivec に移植しています。組み込みの同等のものを見つけるのに問題があり_mm_srli_si128
ます。
私がググったとき、私vec_slo
は同等のものを見つけました。
内容を 1 バイト左にシフトするサンプル プログラムを次に示します。
コンパイルすると、次のエラーが発生します。
c - AltiVec vec_ld() は 16 バイトにアラインされた変数でのみ機能しますか?
gcc 4.1.2 ではvec_ld()
、CPU MPC74XX のボードでは正しく動作しません。
ただし、float 変数が 16 バイトにアラインされている場合は、正しく機能します。
これは設計によるものですか?
sse - Apple Developer で SSE2、Altivec、VMX に関する資料が見つからない
ポールとして。R は SSE2 、 Apple 開発者の AVX に関するリソースがたくさんあることを提案しましたが、私はそれを見つけることができませんでした。誰でも私を助けることができますか?ところで、altivec のメールリストのアーカイブも探しています。
ありがとう!
assembly - PowerPC に masked-blend 命令はありますか?
__vector
PowerPC (POWER 8) で (型に対して)マスクされたブレンドを実行しようとしています。組み込み関数 (ここで利用可能なリスト) を見ると、ベクター選択が表示されますが、マージには何も表示されません。
x86 プロセッサでは、組み込み関数を知っており_mm256_blendv_ps
、同様のものを探しています。
ありがとう!
c++ - Altivec -- const 変数のロード
altivecを使用してconstポインタからロードする最良の方法は何ですか?
ドキュメント (および私の結果) によると、vec_ld は const ポインターを引数として取りません: http://www-01.ibm.com/support/knowledgecenter/SS2LWA_12.1.0/com.ibm.xlcpp121.bg.doc /compiler_ref/vec_ld.html
したがって、次のようなものは失敗します。
厄介な回避策は次のとおりです。
これを行うより良い方法はありますか?ありがとうございました。
simd - Powerpc では、Intel の movemask 組み込み関数に相当するものはありますか?
__vector bool long long 内のすべての要素を単一の int にマージしたいのですが、各ビットは入力ベクトルの最上位ビットに設定されます
例:
と
x は、vcmd[0] = 0XFFFFF の場合は 1、または vcmp[0] = 0 の場合は 0 です。y も同様。
intel では、_mm_movemask 命令 ( intel の組み込み)を使用してこれを実現できます。
PowerPC で同じことを行う方法はありますか?
助けてくれてありがとう
c++ - Altivec を使用してメモリ内のアラインされていない場所にベクトルを格納する方法
チュートリアルから、アライメントされていない読み込みと保存が次のようになることを知っています。
ひどいですね。1 つのベクトルを格納するために、非常に多くの作業が必要です。そして、適切なパフォーマンスの損失があります。
2番目の機能は、最初の機能よりも3〜4倍ゆっくりと機能します。入力メモリと出力メモリのアライメントを制御できないため、両方のバージョンを実装する必要があります。アライメントされていないケースのパフォーマンスの低下を最小限に抑えるにはどうすればよいですか?
c - パラメータ タイプは、このリンケージ タイプの関数に対して無効です
IBM の XL C コンパイラーを使用して AIX に取り組んでいます。コンパイル エラーが発生しましたが、どうすればよいかわかりません。
関連するソースコードを以下に示します。完全なソース コードは で入手できますfips197-p8.c
。ソース コードは、Power 8__cipher
およびのテスト ドライバーです__vcipherlast
。メイン関数といくつかの C 関数があります。実際には、Power 8 AES の最小限の完全な動作例です。
コンパイラのバージョンを以下に示します。私たちはコンパイラを制御していないので、これは私たちが持っているものです:
vec_xl
リトルエンディアンで問題ありません。vec_xl
ビッグエンディアンが問題を引き起こしているからです。
問題は何ですか?どうすれば修正できますか?