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?