diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 63597cd4c6b4..77e6f8c0b68f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2017-03-14 Michael Meissner + + PR target/79947 + * config/rs6000/rs6000.h (TARGET_FRSQRTES): Add check for + -mpowerpc-gfxopt. + 2017-03-14 Martin Sebor PR middle-end/80020 diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h index 0180e0c3dfd8..da6fd522f9db 100644 --- a/gcc/config/rs6000/rs6000.h +++ b/gcc/config/rs6000/rs6000.h @@ -752,7 +752,8 @@ extern int rs6000_vector_align[]; && (TARGET_POPCNTB || VECTOR_UNIT_VSX_P (DFmode))) #define TARGET_FRSQRTES (TARGET_HARD_FLOAT && TARGET_POPCNTB \ - && TARGET_FPRS && TARGET_SINGLE_FLOAT) + && TARGET_PPC_GFXOPT && TARGET_FPRS \ + && TARGET_SINGLE_FLOAT) #define TARGET_FRSQRTE (TARGET_HARD_FLOAT && TARGET_FPRS \ && TARGET_DOUBLE_FLOAT \ diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 63daa280f669..f1ba337149bb 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2017-03-14 Michael Meissner + + PR target/79947 + * gcc.target/powerpc/pr79947.c: New test. + 2017-03-14 Martin Sebor PR middle-end/80020 diff --git a/gcc/testsuite/gcc.target/powerpc/pr79947.c b/gcc/testsuite/gcc.target/powerpc/pr79947.c new file mode 100644 index 000000000000..970e8c0ca892 --- /dev/null +++ b/gcc/testsuite/gcc.target/powerpc/pr79947.c @@ -0,0 +1,12 @@ +/* { dg-do compile { target { powerpc*-*-* } } } */ +/* { dg-options "-Ofast -mno-powerpc-gfxopt -mcmpb -mno-vsx" } */ + +/* PR 79949: Compiler segmentation fault due to not having conditional move + support for the target if the -mno-powerpc-gfxopt option is used. */ + +float a, b; +void +c () +{ + a = __builtin_sqrtf (b); +}