From: Christoph Mallon Date: Fri, 14 Nov 2008 07:52:10 +0000 (+0000) Subject: Consider the result and operand having the same width a downconv, too. This results... X-Git-Url: http://nsz.repo.hu/git/?a=commitdiff_plain;h=373a420bb29244cc3844b944c8356e3249f3f971;p=libfirm Consider the result and operand having the same width a downconv, too. This results in a few more possibilities for AM folding. [r23644] --- diff --git a/ir/be/ia32/ia32_transform.c b/ir/be/ia32/ia32_transform.c index c3e7cc655..a4fed4327 100644 --- a/ir/be/ia32/ia32_transform.c +++ b/ir/be/ia32/ia32_transform.c @@ -593,9 +593,10 @@ static int is_downconv(const ir_node *node) src_mode = get_irn_mode(get_Conv_op(node)); dest_mode = get_irn_mode(node); - return ia32_mode_needs_gp_reg(src_mode) - && ia32_mode_needs_gp_reg(dest_mode) - && get_mode_size_bits(dest_mode) < get_mode_size_bits(src_mode); + return + ia32_mode_needs_gp_reg(src_mode) && + ia32_mode_needs_gp_reg(dest_mode) && + get_mode_size_bits(dest_mode) <= get_mode_size_bits(src_mode); } /* Skip all Down-Conv's on a given node and return the resulting node. */