Skip to content

Instantly share code, notes, and snippets.

@ssvb
Created March 27, 2016 00:26
Show Gist options
  • Select an option

  • Save ssvb/75cc95379b1e3e232b7d to your computer and use it in GitHub Desktop.

Select an option

Save ssvb/75cc95379b1e3e232b7d to your computer and use it in GitHub Desktop.
diff --git a/util.c b/util.c
index 52e88b4..ec7c6ff 100644
--- a/util.c
+++ b/util.c
@@ -59,26 +59,30 @@ void aligned_block_copy_backwards(int64_t * __restrict dst,
int size)
{
int64_t t1, t2, t3, t4;
- src += size / 8 - 1;
- dst += size / 8 - 1;
+ src += size / 8 - 4;
+ dst += size / 8 - 4;
while ((size -= 64) >= 0)
{
- t1 = *src--;
- t2 = *src--;
- t3 = *src--;
- t4 = *src--;
- *dst-- = t1;
- *dst-- = t2;
- *dst-- = t3;
- *dst-- = t4;
- t1 = *src--;
- t2 = *src--;
- t3 = *src--;
- t4 = *src--;
- *dst-- = t1;
- *dst-- = t2;
- *dst-- = t3;
- *dst-- = t4;
+ t1 = src[0];
+ t2 = src[1];
+ t3 = src[2];
+ t4 = src[3];
+ src -= 4;
+ dst[0] = t1;
+ dst[1] = t2;
+ dst[2] = t3;
+ dst[3] = t4;
+ dst -= 4;
+ t1 = src[0];
+ t2 = src[1];
+ t3 = src[2];
+ t4 = src[3];
+ src -= 4;
+ dst[0] = t1;
+ dst[1] = t2;
+ dst[2] = t3;
+ dst[3] = t4;
+ dst -= 4;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment