Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

CPUs can do this quickly:

   __m128i src = _mm_set_epi32(0, 0, x, y);
   __m128i res = _mm_clmulepi64_si128(src, src, 0);
   uint64_t zeorder = _mm_extract_epi32(res, 0) | (_mm_extract_epi32(res, 2) << 1);
Though a blocked iteration order should perform better due to better locality.





Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: