On Fri, Sep 6, 2013 at 7:40 AM, Jan Hubicka <hubi...@ucw.cz> wrote: >> 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)) > > I have tested and comitted the patch now. Hj, can you please look into the > (TARGET_AVX512F && VALID_AVX512F_REG_MODE (mode)) issue? It seems like > obvious > omission but I can not test the patch.
There are if (TARGET_AVX512F && (mode == XImode || VALID_AVX512F_REG_MODE (mode) || VALID_AVX512F_SCALAR_MODE (mode))) return true; > Honza >> >> > --- 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) >> Or we can do return ((TARGET_AVX && VALID_AVX256_REG_OR_OI_MODE (mode)) || VALID_SSE_REG_MODE (mode) || VALID_SSE2_REG_MODE (mode) || VALID_MMX_REG_MODE (mode) || VALID_MMX_REG_MODE_3DNOW (mode)); -- H.J.