Vì vậy, AVX có chức năng từ immintrin.h
, cho phép lưu trữ kết nối hai giá trị __m128i
thành một giá trị __m256i
. Chức năng làĐặt __m256i thành giá trị của hai giá trị __m128i
__m256i _mm256_set_m128i (__m128i hi, __m128i lo)
Tuy nhiên, khi tôi sử dụng nó, như vậy:
__m256i as[2]; __m128i s[4]; as[0] = _mm256_setr_m128i(s[0], s[1]);
tôi nhận được một lỗi biên dịch:
error: incompatible types when assigning to type ‘__m256i’ from type ‘int’
Tôi thực sự không hiểu tại sao điều này xảy ra. Bất kỳ trợ giúp nào cũng được đánh giá rất cao!
Bạn có chắc chắn rằng chức năng nằm trong tiêu đề đó không? Khi tôi cố gắng sử dụng hàm như bạn có sau '#include ', tôi nhận được thông báo cảnh báo" khai báo ngầm định '_mm256_set_m128i'". Trong C, một khai báo ngầm nghĩa là trình biên dịch giả sử hàm sẽ trả về một 'int', điều này cũng sẽ giải thích lỗi trình biên dịch. –