UINT64 GetCycleCount()
{
#ifndef __GNUC__
#if (_MSC_VER>=1500&&_MSC_VER<=1600)
__asm _emit 0x0F
__asm _emit 0x31
#endif
return __rdtsc();
#else
__asm__("rdtsc;\nshl $32, %rdx;\norq %rdx, %rax");
#endif
UINT64 GetCycleCount()
{
#ifndef __GNUC__
#if (_MSC_VER>=1500&&_MSC_VER<=1600)
__asm _emit 0x0F
__asm _emit 0x31
#endif
return __rdtsc();
#else
__asm__("rdtsc;\nshl $32, %rdx;\norq %rdx, %rax");
#endif