From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 70390 invoked by alias); 28 Oct 2015 17:32:55 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 70375 invoked by uid 89); 28 Oct 2015 17:32:54 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.8 required=5.0 tests=AWL,BAYES_00,SPF_PASS autolearn=ham version=3.3.2 X-HELO: eu-smtp-delivery-143.mimecast.com Received: from eu-smtp-delivery-143.mimecast.com (HELO eu-smtp-delivery-143.mimecast.com) (146.101.78.143) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 28 Oct 2015 17:32:53 +0000 Received: from cam-owa2.Emea.Arm.com (fw-tnat.cambridge.arm.com [217.140.96.140]) by eu-smtp-1.mimecast.com with ESMTP id uk-mta-27-ZQMBOBQ2TgaR5kjfUjeKBg-1; Wed, 28 Oct 2015 17:32:47 +0000 Received: from e103246vm ([10.1.2.79]) by cam-owa2.Emea.Arm.com with Microsoft SMTPSVC(6.0.3790.3959); Wed, 28 Oct 2015 17:32:47 +0000 From: "Wilco Dijkstra" To: "'GCC Patches'" Subject: [PATCH][AArch64] Avoid emitting zero immediate as zero register Date: Wed, 28 Oct 2015 17:34:00 -0000 Message-ID: <000001d111a6$a696f790$f3c4e6b0$@com> MIME-Version: 1.0 X-MC-Unique: ZQMBOBQ2TgaR5kjfUjeKBg-1 Content-Type: text/plain; charset=WINDOWS-1252 Content-Transfer-Encoding: quoted-printable X-SW-Source: 2015-10/txt/msg03077.txt.bz2 Several instructions accidentally emit wzr/xzr even when the pattern specif= ies an immediate. Fix this by removing the register specifier in patterns that emit immediates. Passes regression tests. OK for commit? ChangeLog:=20 2015-10-28 Wilco Dijkstra * gcc/config/aarch64/aarch64.md (ccmp_and): Emit immediate as %1. (ccmp_ior): Likewise. (add3_compare0): Likewise. (addsi3_compare0_uxtw): Likewise. (add3nr_compare0): Likewise. (compare_neg): Likewise. (3): Likewise. --- gcc/config/aarch64/aarch64.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md index f90b821..d262102 100644 --- a/gcc/config/aarch64/aarch64.md +++ b/gcc/config/aarch64/aarch64.md @@ -275,7 +275,7 @@ "aarch64_ccmp_mode_to_code (GET_MODE (operands[1])) =3D=3D GET_CODE (ope= rands[5])" "@ ccmp\\t%2, %3, %k5, %m4 - ccmp\\t%2, %3, %k5, %m4 + ccmp\\t%2, %3, %k5, %m4 ccmn\\t%2, %n3, %k5, %m4" [(set_attr "type" "alus_sreg,alus_imm,alus_imm")] ) @@ -294,7 +294,7 @@ "aarch64_ccmp_mode_to_code (GET_MODE (operands[1])) =3D=3D GET_CODE (ope= rands[5])" "@ ccmp\\t%2, %3, %K5, %M4 - ccmp\\t%2, %3, %K5, %M4 + ccmp\\t%2, %3, %K5, %M4 ccmn\\t%2, %n3, %K5, %M4" [(set_attr "type" "alus_sreg,alus_imm,alus_imm")] ) @@ -1647,7 +1647,7 @@ "" "@ adds\\t%0, %1, %2 - adds\\t%0, %1, %2 + adds\\t%0, %1, %2 subs\\t%0, %1, %n2" [(set_attr "type" "alus_sreg,alus_imm,alus_imm")] ) @@ -1664,7 +1664,7 @@ "" "@ adds\\t%w0, %w1, %w2 - adds\\t%w0, %w1, %w2 + adds\\t%w0, %w1, %2 subs\\t%w0, %w1, %n2" [(set_attr "type" "alus_sreg,alus_imm,alus_imm")] ) @@ -1846,7 +1846,7 @@ "" "@ cmn\\t%0, %1 - cmn\\t%0, %1 + cmn\\t%0, %1 cmp\\t%0, %n1" [(set_attr "type" "alus_sreg,alus_imm,alus_imm")] ) @@ -2792,7 +2792,7 @@ "" "@ cmp\\t%0, %1 - cmp\\t%0, %1 + cmp\\t%0, %1 cmn\\t%0, %n1" [(set_attr "type" "alus_sreg,alus_imm,alus_imm")] ) @@ -3178,7 +3178,7 @@ "" "@ \\t%0, %1, %2 - \\t%0, %1, %2 + \\t%0, %1, %2 \\t%0., %1., %2." [(set_attr "type" "logic_reg,logic_imm,neon_logic") (set_attr "simd" "*,*,yes")] --=20 1.9.1