From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18669 invoked by alias); 10 Dec 2014 18:38:36 -0000 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 Received: (qmail 18643 invoked by uid 55); 10 Dec 2014 18:38:32 -0000 From: "segher at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/64180] PowerPC carry bit improvements Date: Wed, 10 Dec 2014 18:38:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: target X-Bugzilla-Version: unknown X-Bugzilla-Keywords: X-Bugzilla-Severity: enhancement X-Bugzilla-Who: segher at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: segher at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2014-12/txt/msg01181.txt.bz2 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64180 --- Comment #8 from Segher Boessenkool --- Author: segher Date: Wed Dec 10 18:37:58 2014 New Revision: 218595 URL: https://gcc.gnu.org/viewcvs?rev=218595&root=gcc&view=rev Log: PR target/64180 * config/rs6000/predicates.md (unsigned_comparison_operator): New. (signed_comparison_operator): New. * config/rs6000/rs6000-protos.h (rs6000_emit_eqne): Declare. * config/rs6000/rs6000.c (rs6000_emit_eqne): New function. (rs6000_emit_sCOND): Remove ISEL test (move it to the expander). * config/rs6000/rs6000.md (add3 for SDI): Expand DImode add to addc,adde directly, if !TARGET_POWERPC64. (sub3 for SDI): Expand DImode sub to subfc,subfe directly, if !TARGET_POWERPC64. (neg2): Delete expander. (*neg2): Rename to "neg2". (addti3, subti3): Delete. (addti3, subti3): New expanders. (*adddi3_noppc64, *subdi3_noppc64, *negdi2_noppc64): Delete. (cstore4_unsigned): New expander. (cstore4): Allow GPR as output (not just SI). Rewrite. (cstore4 for FP): Remove superfluous quotes. (*eq, *eq_compare, *plus_eqsi and splitter, *compare_plus_eqsi and splitter, *plus_eqsi_compare and splitter, *neg_eq0, *neg_eq, *ne0_, plus_ne0_, compare_plus_ne0_ and splitter, *compare_plus_ne0__1 and splitter, *plus_ne0__compare and splitter, *leu, *leu_compare and splitter, *plus_leu, *neg_leu, *and_neg_leu, *ltu, *ltu_compare, *plus_ltu, *plus_ltu_1, *plus_ltucompare, *neg_ltu, *geu, *geu_compare and splitter, *plus_geu, *neg_geu, *and_neg_geu, *plus_gt0, *gtu, *gtu_compare, *plus_gtu, *plus_gtu_1, *plus_gtu_compare, *neg_gtu, 12 anonymous insns, and 12 anonymous splitters): Delete. (eq3, ne3): New. (*neg_eq_, *neg_ne_): New. (*plus_eq_, *plus_ne_): New. (*minus_eq_, *minus_ne_): New. Modified: trunk/gcc/ChangeLog trunk/gcc/config/rs6000/predicates.md trunk/gcc/config/rs6000/rs6000-protos.h trunk/gcc/config/rs6000/rs6000.c trunk/gcc/config/rs6000/rs6000.md