http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58269
--- Comment #14 from Iain Sandoe <iains at gcc dot gnu.org> --- (In reply to Dominique d'Humieres from comment #13) > > Yes, confirmed that on x86_64-linux r202286 is the culprit. > > See pr58139 comments #6 to #11. > @@ -34466,7 +34467,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) > assuming that the patch above is applied to deal with pr58139, Are you saying that: - if (TARGET_MACHO) - { - if (SSE_REGNO_P (regno) && TARGET_SSE) - return true; - } - else - { - if (TARGET_SSE && SSE_REGNO_P (regno) - && (regno < FIRST_SSE_REG + SSE_REGPARM_MAX)) - return true; - } + if (TARGET_SSE && SSE_REGNO_P (regno) + && (regno < FIRST_SSE_REG + SSE_REGPARM_MAX)) + return true; gives a compare fail for you?