Description of problem: tst-xmmymm fails with -O3 when built with gcc-4.8. The reason seems to be that the gcc-4.8 vectorizer (-ftree-vectorize enabled by default with -O3) manages to vectorize instructions in memset. =====tst-xmmymm.out===== dl-minimal.os needed for __GI___assert_fail dl-lookup.os needed for _dl_lookup_symbol_x dl-profile.os needed for _dl_mcount_internal dl-trampoline.os needed for _dl_x86_64_restore_sse rtld-mmap.os needed for __mmap dl-misc.os needed for _dl_dprintf rtld-_exit.os needed for _exit rtld-memcpy.os needed for memcpy rtld-memset.os needed for memset dl-scope.os needed for _dl_scope_free dl-error.os needed for _dl_signal_cerror rtld-stpcpy.os needed for stpcpy rtld-strcmp.os needed for strcmp rtld-strlen.os needed for strlen rtld-fxstat.os needed for __GI___fxstat64 rtld-close.os needed for __close rtld-write.os needed for __libc_write rtld-llseek.os needed for __lseek rtld-munmap.os needed for __munmap rtld-open.os needed for __open rtld-profil.os needed for __profil rtld-prof-freq.os needed for __profile_frequency rtld-memcmp.os needed for memcmp rtld-getpid.os needed for __getpid rtld-__longjmp.os needed for __longjmp rtld-setjmp.os needed for __sigsetjmp rtld-mempcpy.os needed for mempcpy rtld-setitimer.os needed for __setitimer rtld-sigaction.os needed for __sigaction object files needed: dl-runtime.os dl-minimal.os dl-lookup.os dl-profile.os dl-trampoline.os rtld-mmap.os dl-misc.os rtld-_exit.os rtld-memcpy.os rtld-memset.os dl-scope.os dl-error.os rtld-stpcpy.os rtld-strcmp.os rtld-strlen.os rtld-fxstat.os rtld-close.os rtld-write.os rtld-llseek.os rtld-munmap.os rtld-open.os rtld-profil.os rtld-prof-freq.os rtld-memcmp.os rtld-getpid.os rtld-__longjmp.os rtld-setjmp.os rtld-mempcpy.os rtld-setitimer.os rtld-sigaction.os function memset in rtld-memset.os modifies xmm/ymm =====================
Fixed in master: commit 747ef469ffc9c9179ca9d76854167925b4e44346 Author: Siddhesh Poyarekar <siddhesh@redhat.com> Date: Sat Jun 15 00:09:26 2013 +0530 Add rtld-memset.S for x86_64 Resolves: BZ #15627 Add an assembler version of rtld-memset to avoid using SSE registers.