From patchwork Thu Mar 28 18:21:24 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Uros Bizjak X-Patchwork-Id: 232165 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 BFE982C00B7 for ; Fri, 29 Mar 2013 05:21:48 +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=YMbKxxy7bS3LFRHqztQFABygB36rxu63FMs5tVEYT7sacg KUxvw/YQZlUYZFQMtizxoHoXaNvyJLxSDH8w1gaMWT2yRgvDMCRpssyz6VjGEO+N OJBPkoOutHLusc7KEZhZhjsgHNlCKvwWZ0P/lCSjjcaT660JpmMmgslCfyXXk= 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=NmnEALZiUa23ZWSenTihvyf7uCk=; b=TiRfMxNlj9CcuKcHraNd u3zv7rhhurm6XUkgk2Hh251KQ9Dyym/HjgtYbb13BNyBCF6e8eJ14qKvhhUCUEc4 Giv7BRA1rcBcwz5JbHi/Cc/4gFATcLj2Wv/MsVwcgG1BQPoYsk05j7uDBfMgmYc2 PlpGDNBFFP/tB+WN/Zupy+s= Received: (qmail 29661 invoked by alias); 28 Mar 2013 18:21:35 -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 29632 invoked by uid 89); 28 Mar 2013 18:21:28 -0000 X-Spam-SWARE-Status: No, score=-4.2 required=5.0 tests=AWL, BAYES_00, FREEMAIL_FROM, KHOP_RCVD_TRUST, RCVD_IN_DNSWL_LOW, RCVD_IN_HOSTKARMA_YE, TW_ZJ autolearn=ham version=3.3.1 Received: from mail-ob0-f170.google.com (HELO mail-ob0-f170.google.com) (209.85.214.170) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Thu, 28 Mar 2013 18:21:25 +0000 Received: by mail-ob0-f170.google.com with SMTP id wc20so9574311obb.15 for ; Thu, 28 Mar 2013 11:21:24 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.182.156.20 with SMTP id wa20mr6017950obb.59.1364494884433; Thu, 28 Mar 2013 11:21:24 -0700 (PDT) Received: by 10.182.49.68 with HTTP; Thu, 28 Mar 2013 11:21:24 -0700 (PDT) Date: Thu, 28 Mar 2013 19:21:24 +0100 Message-ID: Subject: [PATCH 9/n, i386]: Merge *vec_extractv2di_1_rex64 with base pattern using x64 isa attribute From: Uros Bizjak To: gcc-patches@gcc.gnu.org X-Virus-Found: No Hello! 2013-03-28 Uros Bizjak * config/i386/i386.md (*vec_extract2vdi_1): Merge with *vec_extractv2di_1_rex64. Use x64 isa attribute. Tested on x86_64-pc-linux-gnu {,-m32} and committed to mainline SVN. Uros. Index: sse.md =================================================================== --- sse.md (revision 197207) +++ sse.md (working copy) @@ -7426,31 +7426,12 @@ [(set (match_dup 0) (match_dup 1))] "operands[1] = gen_rtx_REG (DImode, REGNO (operands[1]));") -(define_insn "*vec_extractv2di_1_rex64" - [(set (match_operand:DI 0 "nonimmediate_operand" "=m,x,x,x,r") - (vec_select:DI - (match_operand:V2DI 1 "nonimmediate_operand" " x,0,x,o,o") - (parallel [(const_int 1)])))] - "TARGET_64BIT && !(MEM_P (operands[0]) && MEM_P (operands[1]))" - "@ - %vmovhps\t{%1, %0|%0, %1} - psrldq\t{$8, %0|%0, 8} - vpsrldq\t{$8, %1, %0|%0, %1, 8} - %vmovq\t{%H1, %0|%0, %H1} - mov{q}\t{%H1, %0|%0, %H1}" - [(set_attr "isa" "*,noavx,avx,*,*") - (set_attr "type" "ssemov,sseishft1,sseishft1,ssemov,imov") - (set_attr "length_immediate" "*,1,1,*,*") - (set_attr "memory" "*,none,none,*,*") - (set_attr "prefix" "maybe_vex,orig,vex,maybe_vex,orig") - (set_attr "mode" "V2SF,TI,TI,TI,DI")]) - (define_insn "*vec_extractv2di_1" - [(set (match_operand:DI 0 "nonimmediate_operand" "=m,x,x,x,x,x") + [(set (match_operand:DI 0 "nonimmediate_operand" "=m,x,x,x,x,x,r") (vec_select:DI - (match_operand:V2DI 1 "nonimmediate_operand" " x,0,x,o,x,o") + (match_operand:V2DI 1 "nonimmediate_operand" " x,0,x,o,x,o,o") (parallel [(const_int 1)])))] - "!TARGET_64BIT && TARGET_SSE + "(TARGET_64BIT || TARGET_SSE) && !(MEM_P (operands[0]) && MEM_P (operands[1]))" "@ %vmovhps\t{%1, %0|%0, %1} @@ -7458,13 +7439,14 @@ vpsrldq\t{$8, %1, %0|%0, %1, 8} %vmovq\t{%H1, %0|%0, %H1} movhlps\t{%1, %0|%0, %1} - movlps\t{%H1, %0|%0, %H1}" - [(set_attr "isa" "*,sse2_noavx,avx,sse2,noavx,noavx") - (set_attr "type" "ssemov,sseishft1,sseishft1,ssemov,ssemov,ssemov") - (set_attr "length_immediate" "*,1,1,*,*,*") - (set_attr "memory" "*,none,none,*,*,*") - (set_attr "prefix" "maybe_vex,orig,vex,maybe_vex,orig,orig") - (set_attr "mode" "V2SF,TI,TI,TI,V4SF,V2SF")]) + movlps\t{%H1, %0|%0, %H1} + mov{q}\t{%H1, %0|%0, %H1}" + [(set_attr "isa" "*,sse2_noavx,avx,sse2,noavx,noavx,x64") + (set_attr "type" "ssemov,sseishft1,sseishft1,ssemov,ssemov,ssemov,imov") + (set_attr "length_immediate" "*,1,1,*,*,*,*") + (set_attr "memory" "*,none,none,*,*,*,*") + (set_attr "prefix" "maybe_vex,orig,vex,maybe_vex,orig,orig,orig") + (set_attr "mode" "V2SF,TI,TI,TI,V4SF,V2SF,DI")]) (define_insn "*vec_dupv4si" [(set (match_operand:V4SI 0 "register_operand" "=x,x,x")