From b347941ac7c0477138d06e23373dc952144df578 Mon Sep 17 00:00:00 2001 From: Steven Bosscher Date: Sat, 9 Feb 2008 00:37:00 +0000 Subject: [PATCH] re PR middle-end/34627 (Incorrect branching with -Ox on hppa) PR middle-end/34627 combine.c (simplify_if_then_else): Make sure the comparison is against const0_rtx when simplifying to (abs x) or (neg (abs X)). From-SVN: r132195 --- gcc/ChangeLog | 6 ++++++ gcc/combine.c | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index adb51bcbc9e0..5d140fe532eb 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2008-02-08 Steven Bosscher + + PR middle-end/34627 + combine.c (simplify_if_then_else): Make sure the comparison is + against const0_rtx when simplifying to (abs x) or (neg (abs X)). + 2008-02-04 Richard Guenther PR middle-end/33631 diff --git a/gcc/combine.c b/gcc/combine.c index 87499445d091..7a732657fedb 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -5067,9 +5067,10 @@ simplify_if_then_else (rtx x) /* Look for cases where we have (abs x) or (neg (abs X)). */ if (GET_MODE_CLASS (mode) == MODE_INT + && comparison_p + && XEXP (cond, 1) == const0_rtx && GET_CODE (false_rtx) == NEG && rtx_equal_p (true_rtx, XEXP (false_rtx, 0)) - && comparison_p && rtx_equal_p (true_rtx, XEXP (cond, 0)) && ! side_effects_p (true_rtx)) switch (true_code) -- 2.47.2