From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26882 invoked by alias); 22 Apr 2007 11:27:12 -0000 Received: (qmail 26847 invoked by alias); 22 Apr 2007 11:27:02 -0000 Date: Sun, 22 Apr 2007 11:27:00 -0000 Message-ID: <20070422112702.26846.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug tree-optimization/29789] Missed invariant out of the loop with conditionals and shifts In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "rguenth at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2007-04/txt/msg01607.txt.bz2 ------- Comment #8 from rguenth at gcc dot gnu dot org 2007-04-22 12:27 ------- Subject: Bug 29789 Author: rguenth Date: Sun Apr 22 12:26:49 2007 New Revision: 124042 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=124042 Log: 2007-04-22 Richard Guenther PR tree-optimization/29789 * tree-ssa-loop-im.c (stmt_cost): Adjust cost of shifts. (rewrite_reciprocal): New helper split out from determine_invariantness_stmt. (rewrite_bittest): Likewise. (determine_invariantness_stmt): Rewrite (A >> B) & 1 to A & (1 << B) if (1 << B) is loop invariant but (A >> B) is not. * gcc.dg/tree-ssa/ssa-lim-1.c: New testcase. * gcc.dg/tree-ssa/ssa-lim-2.c: Likewise. Added: trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-1.c trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-2.c Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog trunk/gcc/tree-ssa-loop-im.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29789