From patchwork Tue Apr 28 16:20:49 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ilya Tocar X-Patchwork-Id: 465696 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 6A703140079 for ; Wed, 29 Apr 2015 02:21:20 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=pass reason="1024-bit key; unprotected key" header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b=qbf356CS; dkim-adsp=none (unprotected policy); 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:cc:subject:message-id:references:mime-version :content-type:in-reply-to; q=dns; s=default; b=qsWZX8AKP+eMkLStv uUVc7dyRKproHAwzlwn+JASriGUq6Qv+9j/0VYLQwimMCLqMWizAO86WGh4CH0UX XqfTC5ZXdgkDxJq/58CALg59aNZvLYoNd29oub5UUmbzgaWCLU/z5/X1fzFUOmxn syVrUPDMOOfIT1nkwEtdZU8GGA= 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:cc:subject:message-id:references:mime-version :content-type:in-reply-to; s=default; bh=rSh2gaAabP3aJMFA8gGszt5 aF4g=; b=qbf356CSbVFvWNrLenYJhOfWZFRiOsprpuS8DTsWi/2+97eyucMNRQb bUwGmEoC65KdYD9kAH4jq0duW6Kud1GfGBGLGMtEhV+wuUlN7HgjfZ414ctxq3KW 57O9Q3mAMlj5IXnIhJDUbg5W+uL1sKZWmo/22XYpggQFr5pZ7XHI= Received: (qmail 7466 invoked by alias); 28 Apr 2015 16:21:12 -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 7455 invoked by uid 89); 28 Apr 2015 16:21:11 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=0.7 required=5.0 tests=AWL, BAYES_50, FREEMAIL_FROM, RCVD_IN_DNSWL_LOW, SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-wi0-f174.google.com Received: from mail-wi0-f174.google.com (HELO mail-wi0-f174.google.com) (209.85.212.174) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Tue, 28 Apr 2015 16:21:10 +0000 Received: by widdi4 with SMTP id di4so35453249wid.0 for ; Tue, 28 Apr 2015 09:21:07 -0700 (PDT) X-Received: by 10.194.175.70 with SMTP id by6mr34425121wjc.42.1430238067341; Tue, 28 Apr 2015 09:21:07 -0700 (PDT) Received: from msticlxl7.ims.intel.com ([134.134.139.76]) by mx.google.com with ESMTPSA id vz8sm14053742wjc.27.2015.04.28.09.21.02 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 28 Apr 2015 09:21:05 -0700 (PDT) Date: Tue, 28 Apr 2015 19:20:49 +0300 From: Ilya Tocar To: Kirill Yukhin Cc: GCC Patches , Uros Bizjak , "H.J. Lu" Subject: [PATCH, PR65915] Fix float conversion split. Message-ID: <20150428162049.GA62528@msticlxl7.ims.intel.com> References: <20150319092404.GA73948@msticlxl7.ims.intel.com> <20150323160222.GB10265@msticlxl7.ims.intel.com> <20150324134311.GA40649@msticlxl57.ims.intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20150324134311.GA40649@msticlxl57.ims.intel.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-IsSubscribed: yes > > I've renamed EXT_SSE_REG_P into EXT_REX_SSE_REG_P for consistency. > > Ok for stage1? > Patch is OK for stage1. > > -- > Thanks, K > > > > On 19 Mar 12:24, Ilya Tocar wrote: > > > Hi, > > > > > > There were some discussion about "x" constraints being too conservative > > > for some patterns in i386.md. > > > Patch below fixes it. This is probably stage1 material. > > > > > > ChangeLog: > > > > > > gcc/ > > > > > 2015-03-23 Ilya Tocar > > > > * config/i386/i386.h (EXT_REX_SSE_REG_P): New. > > * config/i386/i386.md (*cmpi_mixed): Use "v" > > constraint. > > (*cmpi_sse): Ditto. > > (*movxi_internal_avx512f): Ditto. > > (define_split): Check for xmm16+, when splitting scalar float_extend. > > (*extendsfdf2_mixed): Use "v" constraint. > > (*extendsfdf2_sse): Ditto. > > (define_split): Check for xmm16+, when splitting scalar float_truncate. > > (*truncdfsf_fast_sse): Use "v" constraint. > > (fix_trunc_sse): Ditto. > > (*float2_sse): Ditto. > > (define_peephole2): Check for xmm16+, when converting scalar > > float_truncate. > > (define_peephole2): Check for xmm16+, when converting scalar > > float_extend. > > (*fop__comm_mixed): Use "v" constraint. > > (*fop__comm_sse): Ditto. > > (*fop__1_mixed): Ditto. > > (*sqrt2_sse): Ditto. > > (*ieee_s3): Ditto. > > > > Hi, Looks like I missed some splits, which caused PR65915. Patch below fixes it. Ok for trunk? 2015-04-28 Ilya Tocar * config/i386/i386.md (define_split): Check for xmm16+, when splitting scalar float conversion. --- gcc/config/i386/i386.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 937871a..af1cd9b 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -4897,7 +4897,9 @@ "TARGET_SSE2 && TARGET_SSE_MATH && TARGET_USE_VECTOR_CONVERTS && optimize_function_for_speed_p (cfun) && reload_completed && SSE_REG_P (operands[0]) - && (MEM_P (operands[1]) || TARGET_INTER_UNIT_MOVES_TO_VEC)" + && (MEM_P (operands[1]) || TARGET_INTER_UNIT_MOVES_TO_VEC) + && (!EXT_REX_SSE_REG_P (operands[0]) + || TARGET_AVX512VL)" [(const_int 0)] { operands[3] = simplify_gen_subreg (mode, operands[0], @@ -4921,7 +4923,9 @@ "TARGET_SSE2 && TARGET_SSE_MATH && TARGET_SSE_PARTIAL_REG_DEPENDENCY && optimize_function_for_speed_p (cfun) - && reload_completed && SSE_REG_P (operands[0])" + && reload_completed && SSE_REG_P (operands[0]) + && (!EXT_REX_SSE_REG_P (operands[0]) + || TARGET_AVX512VL)" [(const_int 0)] { const machine_mode vmode = mode;