From 5f2e3f9708d6440955a8142566625bb54d08159d Mon Sep 17 00:00:00 2001 From: Christoph Mallon Date: Thu, 14 Aug 2008 09:37:18 +0000 Subject: [PATCH] Local opt: -1 - x -> ~x. [r21159] --- ir/ir/iropt.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/ir/ir/iropt.c b/ir/ir/iropt.c index 85c527014..03d03d401 100644 --- a/ir/ir/iropt.c +++ b/ir/ir/iropt.c @@ -2321,6 +2321,15 @@ static ir_node *transform_node_Sub(ir_node *n) { dbg_info *dbg = get_irn_dbg_info(n); return new_rd_Conv(dbg, current_ir_graph, get_nodes_block(n), a, mode); } + + if (mode == lmode && + get_mode_arithmetic(mode) == irma_twos_complement && + is_Const(a) && + get_Const_tarval(a) == get_mode_minus_one(mode)) { + /* -1 - x -> ~x */ + dbg_info *dbg = get_irn_dbg_info(n); + return new_rd_Not(dbg, current_ir_graph, get_nodes_block(n), b, mode); + } } restart: -- 2.20.1