I would like to convert 4 packed 64-bit integers to 4 packed 64-bit floats using AVX. I tried something like:
int_64t *ls = (int64_t *) _mm_malloc(256, 32); ls[0] = a;
which will be displayed in the debugger:
(gdb) print packed $4 = {1234, 5678, 9012, 3456}
Ok, but the only cast / transform operation I can find is _mm256i_castsi256_pd, which does not give me what I want:
__m256d pd = _mm256_castsi256_pd(packed); (gdb) print pd $5 = {6.0967700696809824e-321, 2.8053047370865979e-320, 4.4525196003213139e-320, 1.7074908720273481e-320}
I would really like to see:
(gdb) print pd $5 = {1234.0, 5678.0, 9012.0, 3456.0}
source share