diff --git a/gcc/config/mips/mips.cc b/gcc/config/mips/mips.cc index a304e1c5637..cbd7d9bb284 100644 --- a/gcc/config/mips/mips.cc +++ b/gcc/config/mips/mips.cc @@ -20550,6 +20550,8 @@ mips_option_override (void) /* Set NaN and ABS defaults. */ if (mips_nan == MIPS_IEEE_754_DEFAULT && !ISA_HAS_IEEE_754_LEGACY) mips_nan = MIPS_IEEE_754_2008; + if (mips_abs == MIPS_IEEE_754_DEFAULT && mips_nan == MIPS_IEEE_754_2008) + mips_abs = MIPS_IEEE_754_2008; if (mips_abs == MIPS_IEEE_754_DEFAULT && !ISA_HAS_IEEE_754_LEGACY) mips_abs = MIPS_IEEE_754_2008; diff --git a/gcc/testsuite/gcc.target/mips/fabs-nan2008.c b/gcc/testsuite/gcc.target/mips/fabs-nan2008.c new file mode 100644 index 00000000000..9e2719bbf36 --- /dev/null +++ b/gcc/testsuite/gcc.target/mips/fabs-nan2008.c @@ -0,0 +1,10 @@ +/* { dg-do compile } */ +/* { dg-options "-mnan=2008" } */ + +NOMIPS16 double +fabs_2008 (double d) +{ + return __builtin_fabs (d); +} + +/* { dg-final { scan-assembler "\tabs\\.d\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/fabsf-nan2008.c b/gcc/testsuite/gcc.target/mips/fabsf-nan2008.c new file mode 100644 index 00000000000..11c423429d6 --- /dev/null +++ b/gcc/testsuite/gcc.target/mips/fabsf-nan2008.c @@ -0,0 +1,10 @@ +/* { dg-do compile } */ +/* { dg-options "-mnan=2008" } */ + +NOMIPS16 float +fabsf_2008 (float f) +{ + return __builtin_fabsf (f); +} + +/* { dg-final { scan-assembler "\tabs\\.s\t" } } */