c++ - AVX convert 64 bit integer to 64 bit float -
i convert 4 packed 64 bit integers 4 packed 64 bit floats using avx. i've tried like: int_64t *ls = (int64_t *) _mm_malloc(256, 32); ls[0] = a; //... ls[3] = d; __mm256i packed = _mm256_load_si256((__m256i const *)ls); which display in debugger: (gdb) print packed $4 = {1234, 5678, 9012, 3456} okay far, cast/conversion operation can find _mm256i_castsi256_pd, doesn't me want: __m256d pd = _mm256_castsi256_pd(packed); (gdb) print pd $5 = {6.0967700696809824e-321, 2.8053047370865979e-320, 4.4525196003213139e-320, 1.7074908720273481e-320} what i'd see is: (gdb) print pd $5 = {1234.0, 5678.0, 9012.0, 3456.0} all of cast intrinsics perform bitwise cast, why you're not seeing meaningful results that. a vector conversion (the cvt intrinsics) between 64-bit integer , 64-bit float not exist.