From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3077 invoked by alias); 20 Oct 2011 17:12:53 -0000 Received: (qmail 3065 invoked by uid 22791); 20 Oct 2011 17:12:51 -0000 X-SWARE-Spam-Status: No, hits=-1.4 required=5.0 tests=AWL,BAYES_00 X-Spam-Check-By: sourceware.org Received: from c60.cesmail.net (HELO c60.cesmail.net) (216.154.195.49) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 20 Oct 2011 17:12:35 +0000 Received: from unknown (HELO epsilon2) ([192.168.1.60]) by c60.cesmail.net with ESMTP; 20 Oct 2011 13:12:34 -0400 Received: from host-92-29-214-155.as13285.net (host-92-29-214-155.as13285.net [92.29.214.155]) by webmail.spamcop.net (Horde MIME library) with HTTP; Thu, 20 Oct 2011 13:12:34 -0400 Message-ID: <20111020131234.71tw5vjz6ogo0884-nzlynne@webmail.spamcop.net> Date: Thu, 20 Oct 2011 17:50:00 -0000 From: Joern Rennecke To: Ulrich Weigand Cc: "Paulo J. Matos" , gcc@gcc.gnu.org Subject: Re: IRA changes rules of the game References: <201110201525.p9KFPixB010921@d06av02.portsmouth.uk.ibm.com> In-Reply-To: <201110201525.p9KFPixB010921@d06av02.portsmouth.uk.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; DelSp="Yes"; format="flowed" Content-Disposition: inline Content-Transfer-Encoding: 7bit User-Agent: Internet Messaging Program (IMP) H3 (4.1.4) Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org X-SW-Source: 2011-10/txt/msg00364.txt.bz2 Quoting Ulrich Weigand : > Paulo J. Matos wrote: > >> (define_insn_and_split "neghi_internal" >> [(set (match_operand:QI 0 "register_operand" "=c") >> (neg:QI (match_dup 0))) >> (set (match_operand:QI 1 "register_operand" "=c") >> (plus:QI >> (plus:QI >> (ltu:QI (neg:QI (match_dup 0)) (const_int 0)) >> (match_dup 1)) >> (const_int 0))) >> (clobber (reg:CC RCC))] > >> Am I missing something or something here is broken? > > When reload looks at the above pattern, it will see just > two operands, both of which are output-only. So when it > decides to reload one of the operands, it will only provide > an output reload, no input reload. > > For operands that are actually used for both input and > output, you need to provide two match_operand clauses, Or just change the constraint to "+c" .