From patchwork Sun Mar 24 22:27:15 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Uros Bizjak X-Patchwork-Id: 230503 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 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "localhost", Issuer "www.qmailtoaster.com" (not verified)) by ozlabs.org (Postfix) with ESMTPS id B8FEF2C00A5 for ; Mon, 25 Mar 2013 09:27:35 +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 :mime-version:date:message-id:subject:from:to:content-type; q= dns; s=default; b=LnQZO6OL0bmM7wSbA8pfGaDbIIx4CojeKwk0Amaf1Udy+C lghpTVF/uoZhydjMU84XBkr3F2EjS0m1ABTwivqxbVm5iLV7fFuKc3Ac+5EaoT6a 02uaqgno636Mk2mlNHjuIPh1iMGICMqsy0OCdoEe2qbenMrJXFMebPMuUa/iI= 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 :mime-version:date:message-id:subject:from:to:content-type; s= default; bh=4KHrkgWkeT8Ys2a2KEi+tt9vXq4=; b=FZyYeLdTm27/TIRe1Ae7 dKHpO1cWhWUKqy/i3G9wxxy1Ij84lkgOm5sYuRVxnddJBHe66OWs4PAg9HBWxdml 30uOP31OTcu4xTbHjnhj/taYpcCfaapRxOxPp1N8Hb79rPUETUxCp5jmXZOtjzA1 O/cBeTlSiBrQgw7zq1J0dS8= Received: (qmail 14004 invoked by alias); 24 Mar 2013 22:27: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 13979 invoked by uid 89); 24 Mar 2013 22:27:19 -0000 X-Spam-SWARE-Status: No, score=-2.5 required=5.0 tests=AWL, BAYES_00, FREEMAIL_FROM, RCVD_IN_DNSWL_LOW, TW_ZJ autolearn=ham version=3.3.1 Received: from mail-ob0-f176.google.com (HELO mail-ob0-f176.google.com) (209.85.214.176) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Sun, 24 Mar 2013 22:27:17 +0000 Received: by mail-ob0-f176.google.com with SMTP id er7so1874491obc.35 for ; Sun, 24 Mar 2013 15:27:15 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.60.7.97 with SMTP id i1mr9248698oea.89.1364164035416; Sun, 24 Mar 2013 15:27:15 -0700 (PDT) Received: by 10.182.49.68 with HTTP; Sun, 24 Mar 2013 15:27:15 -0700 (PDT) Date: Sun, 24 Mar 2013 23:27:15 +0100 Message-ID: Subject: [PATCH, i386]: Add a couple of missing MMX move alternatives From: Uros Bizjak To: gcc-patches@gcc.gnu.org X-Virus-Found: No Hello! y->r and r->y interunit alternatives were missing for 64bit targets for true MMX moves. These alternatives are present in a movdi pattern. 2013-03-24 Uros Bizjak * config/i386/mmx.md (mov): Add ?!Ym,r and r,?!Ym alternatives. Tested on x86_64-pc-linux-gnu {,-m32} and committed to mainline SVN. Uros. Index: mmx.md =================================================================== --- mmx.md (revision 197021) +++ mmx.md (working copy) @@ -78,9 +78,9 @@ (define_insn "*mov_internal" [(set (match_operand:MMXMODE 0 "nonimmediate_operand" - "=r ,o ,r,r ,m ,!?y,!y,!?y,m ,x,x,x,m,*x,*x,*x,m ,r ,Yi,!Ym,*Yi") + "=r ,o ,r,r ,m ,?!y,!y,?!y,m ,r ,?!Ym,x,x,x,m,*x,*x,*x,m ,r ,Yi,!Ym,*Yi") (match_operand:MMXMODE 1 "vector_move_operand" - "rCo,rC,C,rm,rC,C ,!y,m ,!?y,C,x,m,x,C ,*x,m ,*x,Yi,r ,*Yi,!Ym"))] + "rCo,rC,C,rm,rC,C ,!y,m ,?!y,?!Ym,r ,C,x,m,x,C ,*x,m ,*x,Yi,r ,*Yi,!Ym"))] "TARGET_MMX && !(MEM_P (operands[0]) && MEM_P (operands[1]))" { @@ -146,7 +146,7 @@ [(set (attr "isa") (cond [(eq_attr "alternative" "0,1") (const_string "nox64") - (eq_attr "alternative" "2,3,4,9,10,11,12,17,18") + (eq_attr "alternative" "2,3,4,9,10,11,12,13,14,19,20") (const_string "x64") ] (const_string "*"))) @@ -157,16 +157,16 @@ (const_string "imov") (eq_attr "alternative" "5") (const_string "mmx") - (eq_attr "alternative" "6,7,8") + (eq_attr "alternative" "6,7,8,9,10") (const_string "mmxmov") - (eq_attr "alternative" "9,13") + (eq_attr "alternative" "11,15") (const_string "sselog1") - (eq_attr "alternative" "19,20") + (eq_attr "alternative" "21,22") (const_string "ssecvt") ] (const_string "ssemov"))) (set (attr "prefix_rex") - (if_then_else (eq_attr "alternative" "17,18") + (if_then_else (eq_attr "alternative" "9,10,19,20") (const_string "1") (const_string "*"))) (set (attr "prefix") @@ -181,7 +181,7 @@ (set (attr "mode") (cond [(eq_attr "alternative" "2") (const_string "SI") - (eq_attr "alternative" "9,10,13,14") + (eq_attr "alternative" "11,12,15,16") (cond [(match_test "mode == V2SFmode") (const_string "V4SF") (ior (not (match_test "TARGET_SSE2")) @@ -194,7 +194,7 @@ ] (const_string "TI")) - (and (eq_attr "alternative" "11,12,15,16") + (and (eq_attr "alternative" "13,14,17,18") (ior (match_test "mode == V2SFmode") (not (match_test "TARGET_SSE2")))) (const_string "V2SF")