diff options
| author | Mattias Andrée <maandree@kth.se> | 2016-05-04 14:33:27 +0200 |
|---|---|---|
| committer | Mattias Andrée <maandree@kth.se> | 2016-05-04 14:33:27 +0200 |
| commit | 1f8023e18a6dc7b950826810b392fdd46bcb0d45 (patch) | |
| tree | 4e6d0de20ef8f1dd52e4bc6e3a5b16813728b674 /src/zand.c | |
| parent | Fix indent (diff) | |
| download | libzahl-1f8023e18a6dc7b950826810b392fdd46bcb0d45.tar.gz libzahl-1f8023e18a6dc7b950826810b392fdd46bcb0d45.tar.bz2 libzahl-1f8023e18a6dc7b950826810b392fdd46bcb0d45.tar.xz | |
Optimise zand, zor, and zxor
Signed-off-by: Mattias Andrée <maandree@kth.se>
Diffstat (limited to 'src/zand.c')
| -rw-r--r-- | src/zand.c | 25 |
1 files changed, 3 insertions, 22 deletions
@@ -2,25 +2,6 @@ #include "internals.h" -O2 static inline void -zand_impl_3(register zahl_char_t *restrict a, - register const zahl_char_t *restrict b, size_t n) -{ - size_t i; - for (i = 0; i < n; i++) - a[i] &= b[i]; -} - -static inline void -zand_impl_4(register zahl_char_t *restrict a, - register const zahl_char_t *restrict b, - register const zahl_char_t *restrict c, size_t n) -{ - size_t i; - for (i = 0; i < n; i++) - a[i] = b[i] & c[i]; -} - void zand(z_t a, z_t b, z_t c) { @@ -36,12 +17,12 @@ zand(z_t a, z_t b, z_t c) a->used = MIN(b->used, c->used); if (a == b) { - zand_impl_3(a->chars, c->chars, a->used); + ZMEM_OP(a->chars, a->chars, c->chars, a->used, &); } else if (unlikely(a == c)) { - zand_impl_3(a->chars, b->chars, a->used); + ZMEM_OP(a->chars, a->chars, b->chars, a->used, &); } else { ENSURE_SIZE(a, a->used); - zand_impl_4(a->chars, b->chars, c->chars, a->used); + ZMEM_OP(a->chars, b->chars, c->chars, a->used, &); } TRIM_AND_SIGN(a, zpositive1(b, c) * 2 - 1); |
