From feaa27743191b2b50a6cefc5f6beb425e5787065 Mon Sep 17 00:00:00 2001 From: Matthias Braun Date: Thu, 11 Oct 2007 15:58:11 +0000 Subject: [PATCH] we can only remove Convs before Cmps if sign doesn't change [r16152] --- ir/ir/iropt.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ir/ir/iropt.c b/ir/ir/iropt.c index 30551dc41..d7896ae70 100644 --- a/ir/ir/iropt.c +++ b/ir/ir/iropt.c @@ -3518,7 +3518,9 @@ static ir_node *transform_node_Proj_Cmp(ir_node *proj) { ir_mode *mode_left = get_irn_mode(op_left); ir_mode *mode_right = get_irn_mode(op_right); - if (smaller_mode(mode_left, mode) && smaller_mode(mode_right, mode)) { + if (smaller_mode(mode_left, mode) && smaller_mode(mode_right, mode) + && mode_is_signed(mode) == mode_is_signed(mode_left) + && mode_is_signed(mode) == mode_is_signed(mode_right)) { ir_graph *irg = current_ir_graph; ir_node *block = get_nodes_block(n); -- 2.20.1