sse

    1

    2答えて

    コメント: #include "emmintrin.h" int main(int argc, char *argv[]) { volatile __m128i x = _mm_set_epi64x(1, 0); return 0; } を私は(唯一の興味深い部分をリスト)clang -O -S test.cを使用してアセンブリを取得できます。 ... movl

    -1

    1答えて

    SandyBridgeプロセッサ(i7-3820)で一連のアプリケーションをベンチマークしています。 ベンチマークは2つの異なるバージョンで構成されています。 これらの2つのバージョンには同じコードが含まれていますが、最初のバージョンではsse/sse2のイントリンシックが使用され、2つ目のバージョンではavxのイントリンシックが使用されます。私はどちらかのx64またはx86上のSSE instr

    -1

    1答えて

    short型の出力配列に追加する必要がある長いバイト配列があります。ソリューションは、ここで見つけることができます:私は、この命令(加算のために2つの8要素の短い配列に1つの16要素のバイト配列を開梱するために必要な)「を解凍」のサポートを欠いmanaged SIMD を使用してやろうとしています SEE byte + short. 。 ここではサポートされている操作は、管理SIMDである:誰もが

    4

    1答えて

    私はいくつかのintel-intrinsincsで書かれたCコードを持っていました。最初にavxでコンパイルした後、ssse3フラグでコンパイルした後、2つの全く異なるアセンブリコードが得られました。例えば: AVX: vpunpckhbw %xmm0, %xmm1, %xmm2 SSSE3: movdqa %xmm0, %xmm2 punpckhbw %xmm1, %xmm2 それはv

    2

    1答えて

    SSEを使用してイメージのピクセルに対してビット単位のNOT演算を実行しています。 私はいくつかの質問を持っている: これは、OpenMPのを使用してさらに最適化することができますか? アルゴリズムに最適化できるボトルネックはありますか? ここでは私のコードです: unsigned int iSSE2Size = (SrcImage1.GetHeight() * (SrcImage1.GetSte

    6

    1答えて

    私はインデックスI0、I1、I2、I3を含む整数の配列をメモリに持っています。私の目標は、I0、I0 + 1、I1、I1 + 1、I2、I2 + 1、I3、I3 + 1を含む__m256iレジスタにそれらを入れることです。難しい部分はI0、I0 、I1、I1、I2、I2、I3、I3、私は0、1、0、1、0、1、0、1 を含むレジスタを追加することができ、私は、内因、_mm256_castsi128

    1

    1答えて

    このコードをNASM 32ビットSSEからNASM 64-AVXに変換したいと思います。それを簡単に行う方法を見つけることは可能でしょうか? 64ビットコードに変換するには、32ビットコードを完全に書き直そうとします。しかし、これは非常に難しい作業であると私は思っています。私はすべてを行うほとんど自動の方法があると思います。 あなたはこのようなプロセスを認識していますか?たとえば、レジ​​スタの名

    0

    1答えて

    他のチームのソースコードをコンパイルしています。私はエラーを理解していますが、このコード行を理解できません(コードベースは正しいと思われます)。 data_vec = _mm_set1_epi64(*((__m64*)&(ub8) ddata)); (__m64 *)とは何ですか?そして、それは何をしていますか? EDIT:エラーは次のとおりです。エラー:左辺値単項「&」のオペランドとして必要

    4

    1答えて

    SSEでは、パックされた整数を可変量シフトする方法は提供されていません(AVX以上の命令を使用できます)。あなたは一様なシフトしか行うことができません。私がベクトルの各整数に対して達成しようとしている結果はこれです。 i[0] = i[0] & 0b111111; i[1] = (i[1]>>6) & 0b111111; i[2] = (i[2]>>12) & 0b111111; i[3]

    0

    1答えて

    SSE4組み込み関数を大量に使用するコードを移植しています。 SSE以外の実装がありますが、SSE2だけのCPUでも高速な機能を使用できるようにしたいと考えています。 誰か_mm_insert_epi32ための効率的な交換をお勧めでした - 私が思うに、私は他のすべては、すでにカバーされてしまったが...実際には、第二および関数の3番目の引数は、私の場合はゼロです: foo = _mm_inser