http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46253

--- Comment #3 from hjl at gcc dot gnu.org <hjl at gcc dot gnu.org> 2010-11-02 
18:08:49 UTC ---
Author: hjl
Date: Tue Nov  2 18:08:44 2010
New Revision: 166208

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=166208
Log:
Emit vzerouppers after reload.

gcc/

2010-11-02  Uros Bizjak  <ubiz...@gmail.com>
        H.J. Lu  <hongjiu...@intel.com>

    * config/i386/i386-protos.h (ix86_split_call_vzeroupper): New.
    (ix86_split_call_pop_vzeroupper): Likewise.

    * config/i386/i386.c (move_or_delete_vzeroupper_2): Rewrite
    the loop.
    (ix86_expand_call): Use UNSPEC_CALL_NEEDS_VZEROUPPER.
    (ix86_split_call_vzeroupper): New.
    (ix86_split_call_pop_vzeroupper): Likewise.

    * config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): New.
    (*call_pop_0_vzeroupper): Likewise.
    (*call_pop_1_vzeroupper): Likewise.
    (*sibcall_pop_1_vzeroupper): Likewise.
    (*call_0_vzeroupper): Likewise.
    (*call_1_vzeroupper): Likewise.
    (*sibcall_1_vzeroupper): Likewise.
    (*call_1_rex64_vzeroupper): Likewise.
    (*call_1_rex64_ms_sysv_vzeroupper): New.
    (*call_1_rex64_large_vzeroupper): Likewise.
    (*sibcall_1_rex64_vzeroupper): Likewise.
    (*call_value_pop_0_vzeroupper): New.
    (*call_value_pop_1_vzeroupper): Likewise.
    (*sibcall_value_pop_1_vzeroupper): Likewise.
    (*call_value_0_vzeroupper): New.
    (*call_value_0_rex64_vzeroupper): Use
    (*call_value_0_rex64_ms_sysv_vzeroupper): Likewise.
    (*call_value_1_vzeroupper): Likewise.
    (*sibcall_value_1_vzeroupper): Likewise.
    (*call_value_1_rex64_vzeroupper): Likewise.
    (*call_value_1_rex64_ms_sysv_vzeroupper): Likewise.
    (*call_value_1_rex64_large_vzeroupper): Likewise.
    (*sibcall_value_1_rex64_vzeroupper): Likewise.

gcc/testsuite/

2010-11-02  H.J. Lu  <hongjiu...@intel.com>

    * gcc.target/i386/avx-vzeroupper-15.c: New.
    * gcc.target/i386/avx-vzeroupper-16.c: Likewise.
    * gcc.target/i386/avx-vzeroupper-17.c: Likewise.
    * gcc.target/i386/avx-vzeroupper-18.c: Likewise.

    PR target/46253
    * gcc.target/i386/pr46253.c: New.

Added:
    trunk/gcc/testsuite/gcc.target/i386/avx-vzeroupper-15.c
    trunk/gcc/testsuite/gcc.target/i386/avx-vzeroupper-16.c
    trunk/gcc/testsuite/gcc.target/i386/avx-vzeroupper-17.c
    trunk/gcc/testsuite/gcc.target/i386/avx-vzeroupper-18.c
    trunk/gcc/testsuite/gcc.target/i386/pr46253.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/i386/i386-protos.h
    trunk/gcc/config/i386/i386.c
    trunk/gcc/config/i386/i386.md
    trunk/gcc/testsuite/ChangeLog

Reply via email to