From patchwork Tue Mar 26 12:40:39 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Uros Bizjak X-Patchwork-Id: 231191 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 3C1362C0090 for ; Tue, 26 Mar 2013 23:41:01 +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=McrUEEuK/PVmimJji0HYRfiqYcv5h6jjxqsJ31c+x6QPWp WVVZxRgRLFQoc8p2yrOEm+CdpETc0O37w93rNcYsa6QjaE6dOAdjiEXXX56PmsoR mFu/fddQRFZgJVVqJBy+2B8o02jIGlrFVeqLu1GUGksr2pJo+sf0YBn60Qkmw= 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=azgQY2/LtOdwxOZLn5QGiUmizVg=; b=El3vkFWX+e2iy1ZLmfgm a1Gh86aowyK+iIUx3meOsHnBOR3MJNTX42+ZGoqDfbdZ4VtW179uEpFos2HPXwbC 4epRGzTLZgERTT4n8KzZ3bvSsx2Ki2vF8zCz6OzzhswJvaU1RlYxliPWyvNM6LCH 9a6V4vbnBcZTCfLcFoyPktI= Received: (qmail 23444 invoked by alias); 26 Mar 2013 12:40:51 -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 23418 invoked by uid 89); 26 Mar 2013 12:40:44 -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; Tue, 26 Mar 2013 12:40:41 +0000 Received: by mail-ob0-f176.google.com with SMTP id er7so3429953obc.35 for ; Tue, 26 Mar 2013 05:40:40 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.182.19.135 with SMTP id f7mr1430887obe.95.1364301639938; Tue, 26 Mar 2013 05:40:39 -0700 (PDT) Received: by 10.182.49.68 with HTTP; Tue, 26 Mar 2013 05:40:39 -0700 (PDT) Date: Tue, 26 Mar 2013 13:40:39 +0100 Message-ID: Subject: [PATCH 7/n, i386]: Merge *movdfcc_1_rex64 with base pattern using x64 and nox64 isa attribute From: Uros Bizjak To: gcc-patches@gcc.gnu.org X-Virus-Found: No Hello! 2013-03-26 Uros Bizjak * config/i386/i386.md (*movdfcc_1): Merge with *movdfcc_1_rex64. Use x64 and nox64 isa attributes. Tested on x86_64-pc-linux-gnu {,-m32} and committed to mainline SVN. Uros. Index: i386.md =================================================================== --- i386.md (revision 197100) +++ i386.md (working copy) @@ -15969,38 +15969,27 @@ [(set_attr "type" "fcmov") (set_attr "mode" "XF")]) -(define_insn "*movdfcc_1_rex64" - [(set (match_operand:DF 0 "register_operand" "=f,f,r,r") +(define_insn "*movdfcc_1" + [(set (match_operand:DF 0 "register_operand" "=f,f,&r,&r,r ,r") (if_then_else:DF (match_operator 1 "fcmov_comparison_operator" [(reg FLAGS_REG) (const_int 0)]) - (match_operand:DF 2 "nonimmediate_operand" "f,0,rm,0") - (match_operand:DF 3 "nonimmediate_operand" "0,f,0,rm")))] - "TARGET_64BIT && TARGET_80387 && TARGET_CMOVE + (match_operand:DF 2 "nonimmediate_operand" + "f ,0,rm,0 ,rm,0") + (match_operand:DF 3 "nonimmediate_operand" + "0 ,f,0 ,rm,0, rm")))] + "TARGET_80387 && TARGET_CMOVE && !(MEM_P (operands[2]) && MEM_P (operands[3]))" "@ fcmov%F1\t{%2, %0|%0, %2} fcmov%f1\t{%3, %0|%0, %3} + # + # cmov%O2%C1\t{%2, %0|%0, %2} cmov%O2%c1\t{%3, %0|%0, %3}" - [(set_attr "type" "fcmov,fcmov,icmov,icmov") - (set_attr "mode" "DF,DF,DI,DI")]) + [(set_attr "isa" "*,*,nox64,nox64,x64,x64") + (set_attr "type" "fcmov,fcmov,multi,multi,icmov,icmov") + (set_attr "mode" "DF,DF,DI,DI,DI,DI")]) -(define_insn "*movdfcc_1" - [(set (match_operand:DF 0 "register_operand" "=f,f,&r,&r") - (if_then_else:DF (match_operator 1 "fcmov_comparison_operator" - [(reg FLAGS_REG) (const_int 0)]) - (match_operand:DF 2 "nonimmediate_operand" "f,0,rm,0") - (match_operand:DF 3 "nonimmediate_operand" "0,f,0,rm")))] - "!TARGET_64BIT && TARGET_80387 && TARGET_CMOVE - && !(MEM_P (operands[2]) && MEM_P (operands[3]))" - "@ - fcmov%F1\t{%2, %0|%0, %2} - fcmov%f1\t{%3, %0|%0, %3} - # - #" - [(set_attr "type" "fcmov,fcmov,multi,multi") - (set_attr "mode" "DF,DF,DI,DI")]) - (define_split [(set (match_operand:DF 0 "register_and_not_any_fp_reg_operand") (if_then_else:DF (match_operator 1 "fcmov_comparison_operator"