Bug 15627 - Testsuite failure: tst-xmmymm.out
Summary: Testsuite failure: tst-xmmymm.out
Status: RESOLVED FIXED
Alias: None
Product: glibc
Classification: Unclassified
Component: dynamic-link (show other bugs)
Version: unspecified
: P2 normal
Target Milestone: ---
Assignee: Siddhesh Poyarekar
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-06-14 10:03 UTC by Siddhesh Poyarekar
Modified: 2014-06-13 15:05 UTC (History)
0 users

See Also:
Host:
Target:
Build:
Last reconfirmed:
fweimer: security-


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Siddhesh Poyarekar 2013-06-14 10:03:43 UTC
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
=====================
Comment 1 Siddhesh Poyarekar 2013-06-14 18:45:00 UTC
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.