http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54231
--- Comment #5 from Steven Bosscher <steven at gcc dot gnu.org> 2012-08-11 22:46:31 UTC --- "Fixing" this in the compiler isn't straight-forward. The _mm_stream functions are just wrappers around builtin functions. It may work correctly if you put the bzero functions in two separate files or call the builtins directly (a variant of __builtin_ia32_movntdq in this case), but the way your BZERO is defined, I don't think it will ever work. Have you considered using ifunc?