[PATCH][i386] PR82941/PR82942 - Adding vzeroupper generation for SKX

Peryt, Sebastian sebastian.peryt@intel.com
Tue Nov 14 09:49:00 GMT 2017


Hi,

This patch fixes PR82941 and PR82942 by adding vzeroupper generation on SKX.
Bootstrapped and tested.

14.11.2017  Sebastian Peryt  <sebastian.peryt@intel.com>

gcc/
	* config/i386/i386.c (pass_insert_vzeroupper): Modify gate condition
	to return true on Xeon and not on Xeon Phi.
	(ix86_check_avx256_register): Changed to ...
	(ix86_check_avx_upper_register): ... this.
	(ix86_check_avx_upper_register): Add extra check for
	VALID_AVX512F_REG_OR_XI_MODE.
	(ix86_avx_u128_mode_needed): Changed
	ix86_check_avx256_register to ix86_check_avx_upper_register.
	(ix86_check_avx256_stores): Changed to ...
	(ix86_check_avx_upper_stores): ... this.
	(ix86_check_avx_upper_stores): Changed
	ix86_check_avx256_register to ix86_check_avx_upper_register.
	(ix86_avx_u128_mode_after): Changed
	avx_reg256_found to avx_upper_reg_found.
	(ix86_avx_u128_mode_after): Changed
	ix86_check_avx256_stores to ix86_check_avx_upper_stores.
	(ix86_avx_u128_mode_entry): Changed
	ix86_check_avx256_register to ix86_check_avx_upper_register.
	(ix86_avx_u128_mode_exit): Ditto.
	* config/i386/i386.h: (host_detect_local_cpu): New define.

gcc/testsuite/
	* gcc.target/i386/pr82941.c: New test.
	* gcc.target/i386/pr82942.c: New test.

Is it ok for trunk?

Thanks,
Sebastian

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-VZEROUPPER.patch
Type: application/octet-stream
Size: 7752 bytes
Desc: 0001-VZEROUPPER.patch
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20171114/60947287/attachment.obj>


More information about the Gcc-patches mailing list