Here's version 2 (filename version 6, in honor of glibc ;) of the memset code. I fixed a bug in the logic for coverage of the tail (the part past what's covered by the loop) for some values of n and alignments, and cleaned up the __GNUC__ usage a bit to use less #ifdeffery. The remaining test at the top for the __GNUC__ version is ugly, I admit, and should possibly just be removed and replaced by a configure check to add -D__may_alias__= to the CFLAGS if the compiler defines __GNUC__ but does not recognize __attribute__((__may_alias__)) -- opinions on this? Rich