re PR rtl-optimization/91994 (r276327 breaks -mvzeroupper)
authorUros Bizjak <ubizjak@gmail.com>
Tue, 8 Oct 2019 17:01:55 +0000 (19:01 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Tue, 8 Oct 2019 17:01:55 +0000 (19:01 +0200)
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
gcc/config/i386/i386.c

index bee9431..b032263 100644 (file)
@@ -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
 
        * 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>
 
index 083e228..1a272d9 100644 (file)
@@ -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;