http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54231
--- Comment #10 from Thiago Macieira <thiago at kde dot org> 2012-08-13 09:53:32 UTC --- Another test: $ cat main_avx.c #define BZERO bzero_avx #pragma GCC target ("avx") #include "main.c" $ cat main_sse2.c #define BZERO bzero_sse2 #pragma GCC target ("sse2") #include "main.c" $ cat main.c #include <immintrin.h> void BZERO(char *ptr, size_t count) { __m128i zero = _mm_set1_epi8(0); while (count--) { _mm_stream_si128((__m128i*)ptr, zero); ptr += 16; } } $ gcc -flto -O2 -shared -o libtest.so main_avx.c main_sse2.c $ objdump -Cdr --no-show-raw-insn libtest.so [...] 0000000000000650 <bzero_sse2>: 650: test %rsi,%rsi 653: pxor %xmm0,%xmm0 657: je 66e <bzero_sse2+0x1e> 659: nopl 0x0(%rax) 660: movntdq %xmm0,(%rdi) 664: add $0x10,%rdi 668: sub $0x1,%rsi 66c: jne 660 <bzero_sse2+0x10> 66e: repz retq 0000000000000670 <bzero_avx>: 670: test %rsi,%rsi 673: pxor %xmm0,%xmm0 677: je 68e <bzero_avx+0x1e> 679: nopl 0x0(%rax) 680: movntdq %xmm0,(%rdi) 684: add $0x10,%rdi 688: sub $0x1,%rsi 68c: jne 680 <bzero_avx+0x10> 68e: repz retq