Hi,

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

14.11.2017  Sebastian Peryt  <sebastian.pe...@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

Attachment: 0001-VZEROUPPER.patch
Description: 0001-VZEROUPPER.patch

Reply via email to