/* Check that certain preprocessor macros are defined, and do some
   consistency checks.  */
/* { dg-do compile { target mips*-*-* } } */

const char *compiled_for = _MIPS_ARCH;
const char *optimized_for = _MIPS_TUNE;

#if __mips_fpr != 32 && __mips_fpr != 64
#error Bad __mips_fpr
#endif

/* Test complementary macro pairs: exactly one of each pair
   must be defined.  */

#if defined (_R3000) == defined (_R4000) && !defined (__sgi__)
#error _R3000 / _R4000 mismatch
#endif

#if defined (__mips_hard_float) == defined (__mips_soft_float)
#error __mips_hard_float / __mips_soft_float mismatch
#endif

#if defined (_MIPSEL) == defined (_MIPSEB)
#error _MIPSEL / _MIPSEB mismatch
#endif

/* Check for __mips64 consistency.  */

#if defined (__mips64) != defined (_R4000) && !defined (__sgi__)
#error __mips64 / _R4000 mismatch
#endif

#if defined (__mips64) && __mips != 3 && __mips != 4 && __mips != 64
#error __mips64 / __mips mismatch
#endif
