Skip to content

Instantly share code, notes, and snippets.

View catid's full-sized avatar

Chris Taylor catid

View GitHub Profile
Bitslice(7) 2122196 us; cnt = 15730702
Bitslice(24) 1957533 us; cnt = 15730702
Lauradoux 878497 us; cnt = 15730702
Skipping SSE2 timings; not compiled for that architecture
Skipping SSSE3 timing; not compiled for that architecture.
16-bit LUT 1558676 us; cnt = 15730702
8-bit LUT 2762595 us; cnt = 15730702
popcount 1215033 us; cnt = 15730702
popcountll 427195 us; cnt = 15730702
FreeBSD version 1 4423153 us; cnt = 15730702
// Get the next bit to flip to produce the 8-bit Gray code at the provided index
// Precondition: index > 0 and index < 256
static int GetBitFlipForGrayCode8(int index)
{
if (index & 1)
return 0;
if (index & 15)
return (0x6764 >> (index & 14)) & 3;
// Get the next bit to flip to produce the 8-bit Gray code at the provided index
// Precondition: index > 0 and index < 256
static int GetBitFlipForGrayCode8(int index)
{
if (index & 1)
return 0;
if (index & 15)
return (0x6764 >> (index & 14)) & 3;