diff options
author | Uros Bizjak <ubizjak@gmail.com> | 2019-10-08 19:01:55 +0200 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2019-10-08 19:01:55 +0200 |
commit | fe42ae7cf57616f53a17544b614b425076d694db (patch) | |
tree | f08a4c0258c543e4d7b176cca9d4cabd4bbcdb2a | |
parent | 8cad1ad5ade3fac0a2a796361bf5400d5f385036 (diff) | |
download | gcc-fe42ae7cf57616f53a17544b614b425076d694db.zip gcc-fe42ae7cf57616f53a17544b614b425076d694db.tar.gz gcc-fe42ae7cf57616f53a17544b614b425076d694db.tar.bz2 |
re PR rtl-optimization/91994 (r276327 breaks -mvzeroupper)
PR target/91994
* config/i386/i386.c (x86_avx_u128_mode_needed): Use SSE_REG
instead of ALL_SSE_REG to check if function call preserves some
256-bit SSE registers.
From-SVN: r276707
-rw-r--r-- | gcc/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 2 |
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bee9431..b032263 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2019-10-08 Uroš Bizjak <ubizjak@gmail.com> + + PR target/91994 + * config/i386/i386.c (x86_avx_u128_mode_needed): Use SSE_REG + instead of ALL_SSE_REG to check if function call preserves some + 256-bit SSE registers. + 2019-10-08 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com> * config.gcc: Move -L usage from LINK_OS_EXTRA_SPEC32 and @@ -116,7 +123,7 @@ * config/i386/i386-expand.c (ix86_expand_floorceildf_32, ix86_expand_rounddf_32): Reorder functions. - * config/i386/i386-protos.h: Update.. + * config/i386/i386-protos.h: Update. 2019-10-07 Jozef Lawrynowicz <jozef.l@mittosystems.com> diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 083e228..1a272d9 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -13530,7 +13530,7 @@ ix86_avx_u128_mode_needed (rtx_insn *insn) modes wider than 256 bits. It's only safe to issue a vzeroupper if all SSE registers are clobbered. */ const function_abi &abi = insn_callee_abi (insn); - if (!hard_reg_set_subset_p (reg_class_contents[ALL_SSE_REGS], + if (!hard_reg_set_subset_p (reg_class_contents[SSE_REGS], abi.mode_clobbers (V4DImode))) return AVX_U128_ANY; |