From fe42ae7cf57616f53a17544b614b425076d694db Mon Sep 17 00:00:00 2001 From: Uros Bizjak Date: Tue, 8 Oct 2019 19:01:55 +0200 Subject: [PATCH] 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 --- gcc/ChangeLog | 9 ++++++++- 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 + + 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 * 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 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; -- 2.7.4