From patchwork Mon Nov 16 22:21:30 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Meissner X-Patchwork-Id: 545208 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]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4063E14145C for ; Tue, 17 Nov 2015 09:21:47 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b=umQV0Q7s; dkim-atps=neutral DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:date :from:to:subject:message-id:mime-version:content-type; q=dns; s= default; b=YqEIYtUpnwdnjKx40g9ZdqLdQ0VEMRBpja9ZuYe6lN3P8KS/DTf59 7ZZqZ2Jc9YoUbw+96jRzQ7dRZVK4uzv2od1pGnFfrXBSMGD88RvBw+20zpQ9ZNl2 /uhwo8vbqgOLG1dTGpw9jN1r4mpquMaGoIda+V1j3RcPL9j3O3CkpY= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:date :from:to:subject:message-id:mime-version:content-type; s= default; bh=WlRpoHHuccRefSIyBxzXFocWPHo=; b=umQV0Q7sPD6EBnbU/NCG izdBQbOtiWAs9eMjOUquWva6EeL3HlyPp0MxjBs8T9cpMHnpfokxpYq9IloTRr1r XvGEbO0ZfCduTwnC+Gj4eZRuQprCPyQGQw0v68S9alWtcQtnD/WVZ406V4vXh7fF I3LR8uVATfaw3N9aNk1cvZ4= Received: (qmail 29976 invoked by alias); 16 Nov 2015 22:21:38 -0000 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 Received: (qmail 29965 invoked by uid 89); 16 Nov 2015 22:21:38 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.3 required=5.0 tests=AWL, BAYES_00, KAM_ASCII_DIVIDERS, KAM_LAZY_DOMAIN_SECURITY autolearn=no version=3.3.2 X-HELO: e36.co.us.ibm.com Received: from e36.co.us.ibm.com (HELO e36.co.us.ibm.com) (32.97.110.154) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (CAMELLIA256-SHA encrypted) ESMTPS; Mon, 16 Nov 2015 22:21:37 +0000 Received: from localhost by e36.co.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Mon, 16 Nov 2015 15:21:35 -0700 Received: from d03dlp03.boulder.ibm.com (9.17.202.179) by e36.co.us.ibm.com (192.168.1.136) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Mon, 16 Nov 2015 15:21:34 -0700 X-IBM-Helo: d03dlp03.boulder.ibm.com X-IBM-MailFrom: meissner@ibm-tiger.the-meissners.org X-IBM-RcptTo: gcc-patches@gcc.gnu.org Received: from b03cxnp08025.gho.boulder.ibm.com (b03cxnp08025.gho.boulder.ibm.com [9.17.130.17]) by d03dlp03.boulder.ibm.com (Postfix) with ESMTP id CA5D819D8026 for ; Mon, 16 Nov 2015 15:09:41 -0700 (MST) Received: from d03av01.boulder.ibm.com (d03av01.boulder.ibm.com [9.17.195.167]) by b03cxnp08025.gho.boulder.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id tAGMK36X9830876 for ; Mon, 16 Nov 2015 15:20:03 -0700 Received: from d03av01.boulder.ibm.com (localhost [127.0.0.1]) by d03av01.boulder.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id tAGMLXff031704 for ; Mon, 16 Nov 2015 15:21:34 -0700 Received: from ibm-tiger.the-meissners.org (dhcp-9-32-77-111.usma.ibm.com [9.32.77.111]) by d03av01.boulder.ibm.com (8.14.4/8.14.4/NCO v10.0 AVin) with ESMTP id tAGMLXGa031687; Mon, 16 Nov 2015 15:21:33 -0700 Received: by ibm-tiger.the-meissners.org (Postfix, from userid 500) id 798BE46028; Mon, 16 Nov 2015 17:21:31 -0500 (EST) Date: Mon, 16 Nov 2015 17:21:30 -0500 From: Michael Meissner To: gcc-patches@gcc.gnu.org, dje.gcc@gmail.com Subject: [PATCH, applied] Fixup PowerPC error from my last commit Message-ID: <20151116222130.GA16351@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-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 15111622-0021-0000-0000-0000148E73D8 X-IsSubscribed: yes In my last commit, I had a case where the mode iterator (VSX_L, FMOVE128_GPR) used IFmode (IBM extended double) in code that was only meant for 128-bit types that fit in a single vector. In the case of VSX_L, it had a condition on the iterator, that would never be true for IFmode. But it didn't have the same protection on FMOVE128_GPR, which calls an xxperm insn to reconstruct the direct move on power8 (power8 can only move 32 or 64-bit objects directly, and it needs to construct intermediate steps to move the value). I have removed IFmode from the two iterators, and for KFmode/TFmode, added a check to make sure the type is a vector type. Since this was breaking the build, I applied the fix directly. 2015-11-16 Michael Meissner * config/rs6000/vsx.md (VSX_L): Do not include IBM extended double 128-bit types, just types that fit in a single vector. * config/rs6000/rs6000.md (FMOVE128_GPR): Likewise. Index: gcc/config/rs6000/vsx.md =================================================================== --- gcc/config/rs6000/vsx.md (revision 230430) +++ gcc/config/rs6000/vsx.md (working copy) @@ -46,8 +46,6 @@ (define_mode_iterator VSX_DF [V2DF DF]) (define_mode_iterator VSX_F [V4SF V2DF]) ;; Iterator for logical types supported by VSX -;; Note, IFmode won't actually be used since it isn't a VSX type, but it simplifies -;; the code by using 128-bit iterators for floating point. (define_mode_iterator VSX_L [V16QI V8HI V4SI @@ -57,8 +55,7 @@ (define_mode_iterator VSX_L [V16QI V1TI TI (KF "FLOAT128_VECTOR_P (KFmode)") - (TF "FLOAT128_VECTOR_P (TFmode)") - (IF "FLOAT128_VECTOR_P (IFmode)")]) + (TF "FLOAT128_VECTOR_P (TFmode)")]) ;; Iterator for memory move. Handle TImode specially to allow ;; it to use gprs as well as vsx registers. Index: gcc/config/rs6000/rs6000.md =================================================================== --- gcc/config/rs6000/rs6000.md (revision 230430) +++ gcc/config/rs6000/rs6000.md (working copy) @@ -409,9 +409,8 @@ (define_mode_iterator FMOVE128_GPR [(TI (V2DI "") (V2DF "") (V1TI "") - (KF "") - (TF "") - (IF "")]) + (KF "FLOAT128_VECTOR_P (KFmode)") + (TF "FLOAT128_VECTOR_P (TFmode)")]) ; Iterator for 128-bit VSX types for pack/unpack (define_mode_iterator FMOVE128_VSX [V1TI KF])