Quindi, AVX ha una funzione da immintrin.h
, che dovrebbe consentire di archiviare la concatenazione di due valori __m128i
in un unico valore __m256i
. La funzione èImpostazione di __m256i sul valore di due valori __m128i
__m256i _mm256_set_m128i (__m128i hi, __m128i lo)
Tuttavia, quando lo uso, in questo modo:
__m256i as[2]; __m128i s[4]; as[0] = _mm256_setr_m128i(s[0], s[1]);
ottengo un errore di compilazione:
error: incompatible types when assigning to type ‘__m256i’ from type ‘int’
Io non capisco il motivo per cui questo accade. Qualsiasi aiuto è molto apprezzato!
Sei sicuro che la funzione sia in quella intestazione? Quando provo ad usare la funzione come dopo "#include", ricevo il messaggio di avviso "dichiarazione implicita di' _mm256_set_m128i' ". In C, una dichiarazione implicita significa che il compilatore assume che la funzione restituirà un 'int', che spiegherebbe anche l'errore del compilatore. –