問題タブ [mmx]

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 投票する
1 に答える
421 参照

gcc - GCC 5.3 i686 ホスト ツールチェーンを使用して i586 ターゲット用にビルドする必要がある

i686 ホスト環境 (32 ビット Ubuntu Docker コンテナー) 内で GCC 5.3 を使用して、i586 ターゲット (MMX 命令なし) 用にビルドする必要があります。ホスト ツールチェーンは i686 です。i586クロスコンパイラを構築せずにこれを行う方法はありますか?

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

visual-c++ - MSVCで2つの__m128dから1つの__m128iに効率的に変換するには?

__m128d2から1 に変換する唯一の方法は、変換してからシフトしてからビット単位の論理和をとること__m128iですか?

これは、x64 ビルドの Xcode には完全に受け入れられます。

そして分解は使用されていることを示し_mm_cvtpd_pi32ています。ただし、Visual Studio はこれをコンパイルできず、リンカー エラーが発生します。これは VS ドキュメントでサポートされており_mm_cvtpd_pi32、x64 ではサポートされていません。

利用できないことをあまり心配していませんが、2回の変換、シフト、そしてビットごとの変換が最速の方法ですか?

0 投票する
0 に答える
2836 参照

sse - _mm_mul_ps() はどのようにして 2 つの __m128 を追加しますか?

私は、2 つの行列 4x4 を受け取り、組み込み関数を使用してそれらを乗算するプログラムを実行しています。私が今まで理解していること:

  • MMX/SSE 命令セットにより、コンピューティングを高速化できます。特に、4 バイトの要素ベクトルを使用します。
  • __m12816 バイトのベクトル (4 バイトの 4 つの要素) を表します。さらに、機能するためには__m128データを整列させる必要があります。

私が迷子になる場所はここにあります:

  • _mm_mul_ps(_m128, _m128)(私が読んだように)4バイトの4つのflotatの16バイトの2つのベクトルを取る関数。2 つのベクトルを「1 対 1」で乗算し、 を返します_m128。しかし、その_m128ベクトルには正確に何が含まれていますか (の結果)?
  • 関数_mm_hadd_ps(_m128, _m128)は、2 つの 16 バイトのベクトル (それぞれ 4 バイトの float) を追加します。このように「水平に追加」します。
    vectorA(a1, a2, a3,a4) + vectorB(b1, b2, b3, b4) = vectorResult(a1 + a2, a3 + a4, b1 + b2, b3 + b4)

私がやろうとしていること:

機能がどのように機能するかわかりません (「心的イメージ」がありません)。