Comment Comment by saynsedit Nah, correct solution is simply to use memcpy(), works on all compilers, all platforms, all versions, with SSE and with any flags specified: #include <stdlib.h> #include <stdint.h> uint64_t sum (char *p, size_t nwords) { uint64_t res = 0; size_t i; for (i = 0; i < nwords; i += 8) { uint64_t tmp; memcpy(&tmp, &p[i], sizeof(tmp)); res += tmp; } return res; } parent saynsedit 10 years ago