AVX-512 イントリンシックでスカラーを__m512iへブロードキャストする。
#include <iostream> #include <iomanip> #include <immintrin.h> using namespace std; // print template <typename T> void printData(T a[]) { cout.setf(ios::right); for (int i = (sizeof(__m512i) / sizeof(float)) - 1; i >= 0; i--) cout << fixed << setprecision(0) << setw(3) << a[i] << ","; cout << "\b \b" << endl; } //main int main(void) { const int f = -10; __m512i a = _mm512_set1_epi32(f); printData((int*)&a); return 0; }
実行結果
-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10