[Bug rtl-optimization/91994] [10 Regression] r276327 breaks -mvzeroupper

ubizjak at gmail dot com gcc-bugzilla@gcc.gnu.org
Mon Oct 7 18:47:00 GMT 2019


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91994

--- Comment #10 from Uroš Bizjak <ubizjak at gmail dot com> ---
Richard, since vzeroupper clobbers only xmm0-xmm15 (xmm0-xmm7 on 32it targets),
shouldn't we use SSE_REGS instead of ALL_SSE_REGS here:

Index: i386.c
===================================================================
--- i386.c      (revision 276660)
+++ i386.c      (working copy)
@@ -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;


More information about the Gcc-bugs mailing list