From patchwork Tue May 3 12:49:36 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Julian Brown X-Patchwork-Id: 93783 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) by ozlabs.org (Postfix) with SMTP id 583ACB6F57 for ; Tue, 3 May 2011 22:49:58 +1000 (EST) Received: (qmail 8963 invoked by alias); 3 May 2011 12:49:56 -0000 Received: (qmail 8955 invoked by uid 22791); 3 May 2011 12:49:56 -0000 X-SWARE-Spam-Status: No, hits=-1.7 required=5.0 tests=AWL, BAYES_00, T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mail.codesourcery.com (HELO mail.codesourcery.com) (38.113.113.100) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 03 May 2011 12:49:41 +0000 Received: (qmail 13832 invoked from network); 3 May 2011 12:49:40 -0000 Received: from unknown (HELO rex.config) (julian@127.0.0.2) by mail.codesourcery.com with ESMTPA; 3 May 2011 12:49:40 -0000 Date: Tue, 3 May 2011 13:49:36 +0100 From: Julian Brown To: gcc-patches@gcc.gnu.org Subject: [PATCH, ARM] Fix NEON vset_lane for D registers Message-ID: <20110503134936.0ecc6f81@rex.config> Mime-Version: 1.0 X-IsSubscribed: yes Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Hi, This patch fixes vset_lane intrinsic variants for D-register sized variables. A typo meant that the wrong lane would be set in many circumstances. Tested manually only. OK to apply? Thanks, Julian ChangeLog gcc/ * config/arm/neon.md (vec_set_internal): Fix misplaced parenthesis in D-register case. Index: gcc/config/arm/neon.md =================================================================== --- gcc/config/arm/neon.md (revision 173299) +++ gcc/config/arm/neon.md (working copy) @@ -426,7 +426,7 @@ (match_operand:SI 2 "immediate_operand" "i")))] "TARGET_NEON" { - int elt = ffs ((int) INTVAL (operands[2]) - 1); + int elt = ffs ((int) INTVAL (operands[2])) - 1; if (BYTES_BIG_ENDIAN) elt = GET_MODE_NUNITS (mode) - 1 - elt; operands[2] = GEN_INT (elt);