"ubizjak at gmail dot com" <gcc-bugzi...@gcc.gnu.org> writes:
> 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;

Ah, yeah.  LGTM, thanks.

Reply via email to