Message ID | CAFULd4anJjB+S3z58h5zmbKZQ2G2mry_CtC0GnunbpBv_u0vMg@mail.gmail.com |
---|---|
State | New |
Headers | show |
Series | i386: Disable *<absneg:code><mode>2_i387_1 for TARGET_SSE_MATH modes [PR97787] | expand |
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 52e306de00a..29935014772 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -10258,7 +10258,7 @@ (absneg:X87MODEF (match_operand:X87MODEF 1 "register_operand" "0,0"))) (clobber (reg:CC FLAGS_REG))] - "TARGET_80387" + "TARGET_80387 && !(SSE_FLOAT_MODE_P (<MODE>mode) && TARGET_SSE_MATH)" "#") (define_split diff --git a/gcc/testsuite/gcc.target/i386/pr97887.c b/gcc/testsuite/gcc.target/i386/pr97887.c new file mode 100644 index 00000000000..b457f054bed --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr97887.c @@ -0,0 +1,15 @@ +/* PR target/97887 */ +/* { dg-do compile } */ +/* { dg-options "-O2 -msse2 -mfpmath=sse" } */ + +float f (float a) +{ + return -a / a; +} + +double d (double a) +{ + return -a / a; +} + +/* { dg-final { scan-assembler-not "fchs" } } */