Also, AVX hat eine Funktion von immintrin.h
, die es erlauben sollte, die Verkettung von zwei __m128i
Werten in einem einzigen __m256i
Wert zu speichern. Die Funktion istEinstellung __m256i auf den Wert von zwei __m128i Werten
__m256i _mm256_set_m128i (__m128i hi, __m128i lo)
Allerdings, wenn ich es verwenden, etwa so:
__m256i as[2]; __m128i s[4]; as[0] = _mm256_setr_m128i(s[0], s[1]);
ich einen Kompilierungsfehler erhalten:
error: incompatible types when assigning to type ‘__m256i’ from type ‘int’
Ich verstehe nicht wirklich, warum dies geschieht. Jede Hilfe wird sehr geschätzt!
Sind Sie sicher, dass die Funktion in diesem Header ist? Wenn ich versuche, die Funktion zu verwenden, wie Sie nach '#include' haben, bekomme ich die Warnmeldung "implizite Deklaration von' _mm256_set_m128i' ". In C bedeutet eine implizite Deklaration, dass der Compiler annimmt, dass die Funktion einen 'int' zurückgibt, was auch den Compilerfehler erklären würde. –