> > .. 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.

Index: config/i386/i386.c
===================================================================
--- 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)

Reply via email to