2つの関連する質問。
これは、私のコードがかなり大量のデータを処理するために必要なことです。これは内部ループ内で行われ、パフォーマンスが重要です。
- __int32の配列をdoubleに変換します(または__m128iを2つの__m128dに変換します)。
- floatの配列をdoubleに変換します(または__m128を2つの__m128dに変換します)。
基本的に、次のシグネチャを持つ関数が必要です。
void convert_int_to_double(__int32 const * input, double * output);
void convert_float_to_double(float const * input, double * output);
入力ポインタと出力ポインタが揃っており、要素の数は4の倍数です。主な問題は、__m128を2つの__m128dにすばやく解凍する方法です。