Displaying 1 result from an estimated 1 matches for "indvbl_write64".
2018 May 24
0
X86 Intrinsics : _mm_storel_epi64/ _mm_loadl_epi64 with -m32
...-m32 and -msse4.2). The 64-bit load
and 64-bit store operations are replaced with two 32-bit mov
instructions, presumably due to the use of uint64_t type. If I use
__m128i instead of uint64_t everywhere, then the read and write happen
as 64-bit operations using the xmm registers as expected.
void indvbl_write64(volatile void *p, uint64_t v)
{
__m128i tmp = _mm_loadl_epi64((__m128i const *)&v);
_mm_storel_epi64((__m128i *)p, tmp);
}
uint64_t indivbl_read64 (volatile void *p)
{
__m128i tmp = _mm_loadl_epi64((__m128i const *)p);
return *(uint64_t *)&tmp;
}
Options used...