Skip to content

Instantly share code, notes, and snippets.

@shana
Created November 14, 2018 09:54
Show Gist options
  • Save shana/f599bd28253ca0580ff3eca32f1db320 to your computer and use it in GitHub Desktop.
Save shana/f599bd28253ca0580ff3eca32f1db320 to your computer and use it in GitHub Desktop.
Duff's device
// Type your code here, or load an example.
void copy(short* to, short* from, int count) {
auto n = (count + 7) / 8;
switch (count % 8) {
case 0: do { *to++ = *from++;
case 7: *to++ = *from++;
case 6: *to++ = *from++;
case 5: *to++ = *from++;
case 4: *to++ = *from++;
case 3: *to++ = *from++;
case 2: *to++ = *from++;
case 1: *to++ = *from++;
} while (--n > 0);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment