From patchwork Mon Aug 12 16:21:21 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Uros Bizjak X-Patchwork-Id: 266567 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 3695B2C00E5 for ; Tue, 13 Aug 2013 02:21:34 +1000 (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:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; q=dns; s=default; b=F/XY2ViS7rkUKWWqhV Wg3iIdp6Fn1m3JnMSMFdhIF9oBHkr207Ey0A2rNpsGTGsA5Ct/+cA2EogWZ4PCJw uQJijhlHHITaMd2+j0P6w/8l76TwpaXCi0HFJeXx7wMgxeh7oWRRXtG08KWzUH2Z yUgvYY8hzZFwKKqOid5kbViHo= 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:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; s=default; bh=3JKf0lmZloXUBsmcGhVyr4Gs rmY=; b=loH4wGy9S3J8ZbG0/aa5MfzjtZbFusAXfGrhemGoZTMTR5Cvg8LkvqLz ZdEqSghj01Mqfrz4jSRGN61EAFKoxsSer+zG2RSBy2a6WhWoCNX1SzzlM5uaM1oa GOpHcUKCNi7bGVvIAM9rMRPjPRrAF43+Lb1CGN1wbgu3FsT5pEg= Received: (qmail 14029 invoked by alias); 12 Aug 2013 16:21:25 -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 14010 invoked by uid 89); 12 Aug 2013 16:21:24 -0000 X-Spam-SWARE-Status: No, score=-3.3 required=5.0 tests=AWL, BAYES_00, FREEMAIL_FROM, KHOP_THREADED, RCVD_IN_DNSWL_LOW, RCVD_IN_HOSTKARMA_YE, SPF_PASS autolearn=ham version=3.3.2 Received: from mail-oa0-f47.google.com (HELO mail-oa0-f47.google.com) (209.85.219.47) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Mon, 12 Aug 2013 16:21:23 +0000 Received: by mail-oa0-f47.google.com with SMTP id g12so7592015oah.34 for ; Mon, 12 Aug 2013 09:21:21 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.182.236.169 with SMTP id uv9mr1782670obc.59.1376324481441; Mon, 12 Aug 2013 09:21:21 -0700 (PDT) Received: by 10.182.111.167 with HTTP; Mon, 12 Aug 2013 09:21:21 -0700 (PDT) In-Reply-To: <20130812123154.GA43012@msticlxl57.ims.intel.com> References: <20130812123154.GA43012@msticlxl57.ims.intel.com> Date: Mon, 12 Aug 2013 18:21:21 +0200 Message-ID: Subject: Re: Fwd: [x86, PATCH] More effecient code for short unsigned conversion to float-point. From: Uros Bizjak To: Kirill Yukhin Cc: Yuri Rumyantsev , Richard Henderson , GCC Patches On Mon, Aug 12, 2013 at 2:31 PM, Kirill Yukhin wrote: > > part of the thread was accidentally removed from gcc-patches. > > I've comitted Yuri's patch into ML: http://gcc.gnu.org/ml/gcc-cvs/2013-08/msg00272.html > > As far as discussion was out of ML - feel free to object. I have changed X87MODEF mode iterator to MODEF, since SSE_FLOAT_MODE_P is always false for XFmode. 2013-08-12 Uros Bizjak * config/i386/i386.md (floatunssi2 expand): Use MODEF mode iterator instead of X87MODEF. Tested on x86_64-pc-linux-gnu {,-m32}, will be committed to mainline SVN. Uros. Index: i386.md =================================================================== --- i386.md (revision 201665) +++ i386.md (working copy) @@ -5037,15 +5037,15 @@ && reload_completed" [(set (match_dup 0) (float:X87MODEF (match_dup 1)))]) -(define_expand "floatuns2" - [(set (match_operand:X87MODEF 0 "register_operand") - (unsigned_float:X87MODEF +(define_expand "floatuns2" + [(set (match_operand:MODEF 0 "register_operand") + (unsigned_float:MODEF (match_operand:SWI12 1 "nonimmediate_operand")))] "!TARGET_64BIT - && SSE_FLOAT_MODE_P (mode) && TARGET_SSE_MATH" + && SSE_FLOAT_MODE_P (mode) && TARGET_SSE_MATH" { operands[1] = convert_to_mode (SImode, operands[1], 1); - emit_insn (gen_floatsi2 (operands[0], operands[1])); + emit_insn (gen_floatsi2 (operands[0], operands[1])); DONE; })