From patchwork Tue Feb 25 00:41:40 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bill Schmidt X-Patchwork-Id: 323804 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 0706A2C00C3 for ; Tue, 25 Feb 2014 11:41:36 +1100 (EST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :message-id:subject:from:to:date:content-type :content-transfer-encoding:mime-version; q=dns; s=default; b=jY5 ukhY3pCjXuHzdJeKmVSuEZbs4n1MctyN+T2fSdaV5HBaEqlqs/CvB98dkTcaSdob U7TzXohVFuau2fBTfnC0/rVIFBMtDNuPKMHUF7SsZCDFvW1B9uUwl28RxTQvALHW tufA+SJ9SxniJm2adpyff1zsCaLBK5R3GLvnfnIk= 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 :message-id:subject:from:to:date:content-type :content-transfer-encoding:mime-version; s=default; bh=2mJhEPcnG bxcQ0FDDnhSzJxboi4=; b=QXASsLuC1LrDWiLyOjOlsBY0DR4TRTWXwYhyfuToP /7sI6ala/qjfMW+ddcladeyxAlieaRnGGSpxvDMQMgwuzaeqOIYxUjNvRwMsWWY8 NC3p7lvXPzDfiFb+hP2WdQq07BKPMVMBsGRye5uC5Jt5paao/myWnkWzDgN07iTb Gw= Received: (qmail 12501 invoked by alias); 25 Feb 2014 00:41:27 -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 12489 invoked by uid 89); 25 Feb 2014 00:41:26 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.7 required=5.0 tests=AWL, BAYES_00, RP_MATCHES_RCVD autolearn=ham version=3.3.2 X-HELO: e28smtp09.in.ibm.com Received: from e28smtp09.in.ibm.com (HELO e28smtp09.in.ibm.com) (122.248.162.9) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA encrypted) ESMTPS; Tue, 25 Feb 2014 00:41:25 +0000 Received: from /spool/local by e28smtp09.in.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Tue, 25 Feb 2014 06:11:20 +0530 Received: from d28dlp02.in.ibm.com (9.184.220.127) by e28smtp09.in.ibm.com (192.168.1.139) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Tue, 25 Feb 2014 06:11:19 +0530 Received: from d28relay03.in.ibm.com (d28relay03.in.ibm.com [9.184.220.60]) by d28dlp02.in.ibm.com (Postfix) with ESMTP id 9455B3940048 for ; Tue, 25 Feb 2014 06:11:18 +0530 (IST) Received: from d28av01.in.ibm.com (d28av01.in.ibm.com [9.184.220.63]) by d28relay03.in.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id s1P0f58964422062 for ; Tue, 25 Feb 2014 06:11:05 +0530 Received: from d28av01.in.ibm.com (localhost [127.0.0.1]) by d28av01.in.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id s1P0fI3B024049 for ; Tue, 25 Feb 2014 06:11:18 +0530 Received: from [9.77.131.26] (sig-9-77-131-26.mts.ibm.com [9.77.131.26]) by d28av01.in.ibm.com (8.14.4/8.14.4/NCO v10.0 AVin) with ESMTP id s1P0fGrC023971 for ; Tue, 25 Feb 2014 06:11:17 +0530 Message-ID: <1393288900.20991.85.camel@gnopaine> Subject: [PATCH, rs6000] Canonicalize split for ordered and unordered vector compares From: Bill Schmidt To: gcc-patches@gcc.gnu.org Date: Mon, 24 Feb 2014 18:41:40 -0600 Mime-Version: 1.0 X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 14022500-2674-0000-0000-00000CE0139C X-IsSubscribed: yes Hi, The patterns *vector_ordered and *vector_unordered perform a split that's intended to match the nor3 pattern. However, they don't use the proper canonical form, so the resulting insn isn't recognized. This patch changes the splits to use the canonical form. Bootstrapped and tested on powerpc64{,le}-unknown-linux-gnu with no regressions. Is this ok for trunk? Thanks, Bill 2014-02-24 Bill Schmidt * config/rs6000/vector.md (*vector_ordered): Change split to use canonical form for nor3. (*vector_unordered): Likewise. Index: gcc/config/rs6000/vector.md =================================================================== --- gcc/config/rs6000/vector.md (revision 208062) +++ gcc/config/rs6000/vector.md (working copy) @@ -586,8 +586,8 @@ (ge:VEC_F (match_dup 2) (match_dup 1))) (set (match_dup 0) - (ior:VEC_F (match_dup 3) - (match_dup 4)))] + (and:VEC_F (not:VEC_F (match_dup 3)) + (not:VEC_F (match_dup 4))))] " { operands[3] = gen_reg_rtx (mode); @@ -608,8 +608,8 @@ (ge:VEC_F (match_dup 2) (match_dup 1))) (set (match_dup 0) - (not:VEC_F (ior:VEC_F (match_dup 3) - (match_dup 4))))] + (and:VEC_F (not:VEC_F (match_dup 3)) + (not:VEC_F (match_dup 4))))] " { operands[3] = gen_reg_rtx (mode);