x86: Don't generate vzeroupper if caller passes AVX/AVX512 registers
authorH.J. Lu <hongjiu.lu@intel.com>
Tue, 8 Jan 2019 17:40:18 +0000 (17:40 +0000)
committerH.J. Lu <hjl@gcc.gnu.org>
Tue, 8 Jan 2019 17:40:18 +0000 (09:40 -0800)
commit53ef4e3a942fc5848690dbf36e67c8c68f7fbae4
treeb75eaa394782bb9221e5084e081b6ccc59507845
parente01ffb47c6fec6d52f254390bf863b4ca0fa32e2
x86: Don't generate vzeroupper if caller passes AVX/AVX512 registers

There is no need to generate vzeroupper if caller passes arguments in
AVX/AVX512 registers.

Tested on i686 and x86-64 with and without --with-arch=native.

gcc/

PR target/88717
* config/i386/i386.c (ix86_avx_u128_mode_exit): Call
ix86_avx_u128_mode_entry.

gcc/testsuite/

PR target/88717
* gcc.target/i386/pr88717.c: New test.

From-SVN: r267732
gcc/ChangeLog
gcc/config/i386/i386.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/pr88717.c [new file with mode: 0644]