diff options
Diffstat (limited to 'gcc/simplify-rtx.c')
-rw-r--r-- | gcc/simplify-rtx.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c index 97ff266..f700958 100644 --- a/gcc/simplify-rtx.c +++ b/gcc/simplify-rtx.c @@ -4712,6 +4712,12 @@ simplify_ternary_operation (enum rtx_code code, enum machine_mode mode, switch (code) { + /* At present, don't simplify fused multiply and add ops, because we need + to make sure there are no intermediate rounding steps used, and that + we get the right sign if negative 0 would be returned. */ + case FMA: + return NULL_RTX; + case SIGN_EXTRACT: case ZERO_EXTRACT: if (CONST_INT_P (op0) |