On Fri, Sep 06, 2013 at 02:38:01PM +0200, Jan Hubicka wrote:
> > > .. looks like this is target/58269, which therefore affects
> > > x86_64-linux too.
> > 
> > Now this reproduces to me, too.  apppy_args expansion is trying to preserve 
> > AVX
> > register in V8SF mode when AVX is disabled.  This leads to move expander to 
> > not
> > allow moving it and we end up infinitely recursing trying to expand the 
> > move.
> > I am not sure what change triggered it.  I am looking into fix.
> 
> I am testing the following.  Obviously AVX mode is not OK for SSE reg
> when AVX is disabled.  Other code paths allowing AVX modes seems to be 
> propertly
> guarded.

Sounds like http://gcc.gnu.org/ml/gcc-bugs/2013-09/msg00308.html
Please look at PR58139 and PR58269, various patches have been posted or
attached for that.

BTW, I wonder why this spot doesn't contain also
(TARGET_AVX512F && VALID_AVX512F_REG_MODE (mode))

> --- config/i386/i386.c        (revision 202322)
> +++ config/i386/i386.c        (working copy)
> @@ -34466,7 +34471,7 @@ ix86_hard_regno_mode_ok (int regno, enum
>  
>        /* OImode move is available only when AVX is enabled.  */
>        return ((TARGET_AVX && mode == OImode)
> -           || VALID_AVX256_REG_MODE (mode)
> +           || (TARGET_AVX && VALID_AVX256_REG_MODE (mode))
>             || VALID_SSE_REG_MODE (mode)
>             || VALID_SSE2_REG_MODE (mode)
>             || VALID_MMX_REG_MODE (mode)

        Jakub

Reply via email to