From patchwork Mon Jan 9 21:30:22 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Meissner X-Patchwork-Id: 135111 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 D3044B6EE8 for ; Tue, 10 Jan 2012 08:31:25 +1100 (EST) Comment: DKIM? See http://www.dkim.org DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=gcc.gnu.org; s=default; x=1326749487; h=Comment: DomainKey-Signature:Received:Received:Received:Received:Received: Received:Received:Received:Received:Date:From:To:Subject: Message-ID:Mail-Followup-To:MIME-Version:Content-Type: Content-Disposition:User-Agent:Mailing-List:Precedence:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:Sender: Delivered-To; bh=348BAX7Ne51By9LtzWc1nP2WHzI=; b=mNCjgAouhQsTLpD mBvelNiV42jgLC87Yg8PTBoaoqrDY6YnDzQMn4LKRTfzndZR7e8EHthvoyQel7m8 hVDIH8qMLotoMfVRIbigcf3CCfEBZBwGpj5KInNUWSz1WmNSbX5bGbwARuO9kFMZ fDGA3cB6vzj/6+VTn37EvcK4Wv4o= Comment: DomainKeys? See http://antispam.yahoo.com/domainkeys DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default; d=gcc.gnu.org; h=Received:Received:X-SWARE-Spam-Status:X-Spam-Check-By:Received:Received:Received:Received:Received:Received:Received:Date:From:To:Subject:Message-ID:Mail-Followup-To:MIME-Version:Content-Type:Content-Disposition:User-Agent:x-cbid:X-IsSubscribed:Mailing-List:Precedence:List-Id:List-Unsubscribe:List-Archive:List-Post:List-Help:Sender:Delivered-To; b=Gb18owH14Dfer4QEbFGjyRm4YAB3D+k0dZOf9EmPWhb9kHC+EfsfVojbf9kGVq +wmz3i76/TzKtQxzx72G2v9n1h0bv5olmdxNmPVmmQ93YDgWYmaA7Azw87aMcHh3 uVHCeHKZaEqVjyhqgXY9tfpq1XfIC+eAT4hXmZD/44Lfo=; Received: (qmail 18510 invoked by alias); 9 Jan 2012 21:31:22 -0000 Received: (qmail 18502 invoked by uid 22791); 9 Jan 2012 21:31:21 -0000 X-SWARE-Spam-Status: No, hits=-1.5 required=5.0 tests=AWL,BAYES_00 X-Spam-Check-By: sourceware.org Received: from e32.co.us.ibm.com (HELO e32.co.us.ibm.com) (32.97.110.150) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 09 Jan 2012 21:31:06 +0000 Received: from /spool/local by e32.co.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Mon, 9 Jan 2012 14:31:05 -0700 Received: from d03relay03.boulder.ibm.com (9.17.195.228) by e32.co.us.ibm.com (192.168.1.132) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Mon, 9 Jan 2012 14:30:36 -0700 Received: from d03av02.boulder.ibm.com (d03av02.boulder.ibm.com [9.17.195.168]) by d03relay03.boulder.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id q09LUR3S046006 for ; Mon, 9 Jan 2012 14:30:29 -0700 Received: from d03av02.boulder.ibm.com (loopback [127.0.0.1]) by d03av02.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id q09LURIB000755 for ; Mon, 9 Jan 2012 14:30:27 -0700 Received: from ibm-tiger.the-meissners.org ([9.33.37.223]) by d03av02.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id q09LUOWm032655; Mon, 9 Jan 2012 14:30:24 -0700 Received: by ibm-tiger.the-meissners.org (Postfix, from userid 500) id 57A8844543; Mon, 9 Jan 2012 16:30:22 -0500 (EST) Date: Mon, 9 Jan 2012 16:30:22 -0500 From: Michael Meissner To: gcc-patches@gcc.gnu.org, dje.gcc@gmail.com Subject: [PATCH] Fix some powerpc debug options Message-ID: <20120109213022.GA12016@ibm-tiger.the-meissners.org> Mail-Followup-To: Michael Meissner , gcc-patches@gcc.gnu.org, dje.gcc@gmail.com MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.5.20 (2009-12-10) x-cbid: 12010921-3270-0000-0000-000003182E04 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 I was recently trying to turn on some of the debug options I put in when doing the initial power7 work to track down some performance regressions. The following patches fix problems that come up in telling the compiler to use the traditional floating point insns for scalar mode on power7 (-mno-vsx-scalar-double). It also adds reload helpers for using the VSX memory load instructions when the compiler is allowed to use VSX memory instructions for scalars. There were no regressions with these patches. Are they ok to be checked in? 2012-01-09 Michael Meissner * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add DF reload patterns if -mvsx-scalar-memory. * config/rs6000/vsx.md (vsx_xscvspdp): Allow xscvspdp to be generated, even -mno-vsx-scalar-double was used. (vsx_xscvdpsp_scalar): Likewise. (vsx_xscvspdp_scalar2): Likewise. Index: gcc/config/rs6000/rs6000.c =================================================================== --- gcc/config/rs6000/rs6000.c (revision 183033) +++ gcc/config/rs6000/rs6000.c (working copy) @@ -1,6 +1,7 @@ /* Subroutines used for code generation on IBM RS/6000. Copyright (C) 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 + 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, + 2012 Free Software Foundation, Inc. Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu) @@ -2332,6 +2333,11 @@ rs6000_init_hard_regno_mode_ok (bool glo rs6000_vector_reload[V4SFmode][1] = CODE_FOR_reload_v4sf_di_load; rs6000_vector_reload[V2DFmode][0] = CODE_FOR_reload_v2df_di_store; rs6000_vector_reload[V2DFmode][1] = CODE_FOR_reload_v2df_di_load; + if (TARGET_VSX && TARGET_VSX_SCALAR_MEMORY) + { + rs6000_vector_reload[DFmode][0] = CODE_FOR_reload_df_di_store; + rs6000_vector_reload[DFmode][1] = CODE_FOR_reload_df_di_load; + } } else { @@ -2347,6 +2353,11 @@ rs6000_init_hard_regno_mode_ok (bool glo rs6000_vector_reload[V4SFmode][1] = CODE_FOR_reload_v4sf_si_load; rs6000_vector_reload[V2DFmode][0] = CODE_FOR_reload_v2df_si_store; rs6000_vector_reload[V2DFmode][1] = CODE_FOR_reload_v2df_si_load; + if (TARGET_VSX && TARGET_VSX_SCALAR_MEMORY) + { + rs6000_vector_reload[DFmode][0] = CODE_FOR_reload_df_si_store; + rs6000_vector_reload[DFmode][1] = CODE_FOR_reload_df_si_load; + } } } Index: gcc/config/rs6000/vsx.md =================================================================== --- gcc/config/rs6000/vsx.md (revision 183033) +++ gcc/config/rs6000/vsx.md (working copy) @@ -1,5 +1,5 @@ ;; VSX patterns. -;; Copyright (C) 2009, 2010, 2011 +;; Copyright (C) 2009, 2010, 2011, 2012 ;; Free Software Foundation, Inc. ;; Contributed by Michael Meissner @@ -919,7 +919,7 @@ (define_insn "vsx_xscvspdp" [(set (match_operand:DF 0 "vsx_register_operand" "=ws,?wa") (unspec:DF [(match_operand:V4SF 1 "vsx_register_operand" "wa,wa")] UNSPEC_VSX_CVSPDP))] - "VECTOR_UNIT_VSX_P (DFmode)" + "VECTOR_UNIT_VSX_P (V4SFmode)" "xscvspdp %x0,%x1" [(set_attr "type" "fp")]) @@ -929,7 +929,7 @@ (define_insn "vsx_xscvdpsp_scalar" [(set (match_operand:V4SF 0 "vsx_register_operand" "=wa") (unspec:V4SF [(match_operand:SF 1 "vsx_register_operand" "f")] UNSPEC_VSX_CVSPDP))] - "VECTOR_UNIT_VSX_P (DFmode)" + "VECTOR_UNIT_VSX_P (V4SFmode)" "xscvdpsp %x0,%x1" [(set_attr "type" "fp")]) @@ -938,7 +938,7 @@ (define_insn "vsx_xscvspdp_scalar2" [(set (match_operand:SF 0 "vsx_register_operand" "=f") (unspec:SF [(match_operand:V4SF 1 "vsx_register_operand" "wa")] UNSPEC_VSX_CVSPDP))] - "VECTOR_UNIT_VSX_P (DFmode)" + "VECTOR_UNIT_VSX_P (V4SFmode)" "xscvspdp %x0,%x1" [(set_attr "type" "fp")])