From patchwork Wed Mar 23 11:47:54 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kirill Yukhin X-Patchwork-Id: 601196 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 3qVSWy24ygz9snm for ; Wed, 23 Mar 2016 22:49:01 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b=U+cM/lJR; 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=B19dath3dhs9jOfj0 iD0my+pVSUnroJDlFR/LORUw6SE9NEzayHYUwou+dSLxlE7ryoYC5BbagUgxwnnn t4Kn8hv9UucYvAeZZGj2R6RkeRrLgGa59GzU5567s5GKGE/9tgfNMc4HHCxuIOem jz/bnPHKCBVqDznJO0wPcy8H1c= 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=1zzrsbCglrN9Pd2RMKUs2dc exho=; b=U+cM/lJRMtm5kyr1KPa6k1hzPBz+6z6buntSrcfnHyk8FVxGL7xkC6w mOwDnIubQh4YcYWJLevFoEYNtM5hTmVTDnS7Lm2+YAQUl5UXEWLyy5wvzpaT2LEJ lOgsV/r8qpQQpmRssbePSkhh7zwrJmAX1CEq1976nt9mhrNs/78A= Received: (qmail 125632 invoked by alias); 23 Mar 2016 11:48:54 -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 124588 invoked by uid 89); 23 Mar 2016 11:48:53 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.6 required=5.0 tests=BAYES_00, FREEMAIL_FROM, RCVD_IN_DNSWL_LOW, SPF_PASS autolearn=ham version=3.3.2 spammy=Hx-languages-length:1851 X-HELO: mail-wm0-f44.google.com Received: from mail-wm0-f44.google.com (HELO mail-wm0-f44.google.com) (74.125.82.44) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Wed, 23 Mar 2016 11:48:43 +0000 Received: by mail-wm0-f44.google.com with SMTP id l68so230039735wml.0 for ; Wed, 23 Mar 2016 04:48:43 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=Ug9jCqpP2OaADLDAMigSEkkXftBnv0Zx2nEXruUQxXk=; b=PbqUh8wwD33k/rrdUsOfCxQLV/oMgTpvf13GlNrccGZlVrhr39+5FaLUQ60vYE0Z0O Q8onjZU8ou+6gXLF5xVcfzd6Y30iDZCzQ1WaP/sq/z4ECIowg/s+e1HjSKWeV2W+nvrC gnqHCWuYGtEGb6PqXucB6olqERTR1YvW9b+Bx1fTaEc0uhhRhPa4NwHA/UoX7GoxhJVX i6kRjD22PAEP7oPvmBC+wBnLkJtUwSi+TtqOLK/7VS/ouWd9dMAbv9MRXTZ6P0Pd7qk6 TDqzk0zYUWT11xGeU4bPG4av7TfiTKyvwxH3tbAeXU77tX8yh0VU5Shzb3S7xq3zeM8F YHRQ== X-Gm-Message-State: AD7BkJK+dDFNiPyfrf9GrL6IQvd0A6W4xdM9NMETMxEN4HdxLcOMF/aXJf6anYjKG2mOdw== X-Received: by 10.194.248.163 with SMTP id yn3mr2870481wjc.179.1458733720557; Wed, 23 Mar 2016 04:48:40 -0700 (PDT) Received: from msticlxl57.ims.intel.com (irdmzpr01-ext.ir.intel.com. [192.198.151.36]) by smtp.gmail.com with ESMTPSA id ka7sm2212309wjb.8.2016.03.23.04.48.39 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 23 Mar 2016 04:48:40 -0700 (PDT) Date: Wed, 23 Mar 2016 14:47:54 +0300 From: Kirill Yukhin To: Jakub Jelinek Cc: Richard Biener , GCC Patches , Uros Bizjak Subject: Re: [PATCH, i386, AVX] Fix typo in i386.c/standard_sse_constant_opcode (). Message-ID: <20160323114753.GC59478@msticlxl57.ims.intel.com> References: <20160323112150.GA59478@msticlxl57.ims.intel.com> <20160323114111.GW3017@tucnak.redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20160323114111.GW3017@tucnak.redhat.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-IsSubscribed: yes On 23 Mar 12:41, Jakub Jelinek wrote: > On Wed, Mar 23, 2016 at 02:28:03PM +0300, Kirill Yukhin wrote: > > Hello, > > > > `vpcmpeqd' insn is only available in AVX2, however > > [1] added check for AVX instead. Looks like a typo. > > > > Patch in the bottom fixes that. > > > > Bootstrapped, regtest still run. > > Is it ok for main trunk if pass? > > ?? > I see > VEX.NDS.128.66.0F.WIG 76 /r RVM V/V AVX Compare packed doublewords in xmm3/m128 and > VPCMPEQD xmm1, xmm2, xmm3/m128 xmm2 for equality. > and > VEX.NDS.256.66.0F.WIG 76 /r RVM V/V AVX2 Compare packed doublewords in ymm3/m256 and > VPCMPEQD ymm1, ymm2, ymm3 /m256 ymm2 for equality. > in the ISA pdfs. > This code is only executed if standard_sse_constant_p returns 2, which > is for 16-byte vectors and all ones for TARGET_SSE2, and for > 32-byte vectors for TARGET_AVX2. > Thus, IMNSHO the patch is wrong, even for plain -mavx -mno-avx2 > we want to emit vpcmpeqd %xmm?, %xmm?, %xmm?, so that we don't mix > VEX with non-VEX encoded insns. You're right. I've updated the patch to check mode size as well. --- Thanks, K commit ae82089e3a4244d870737a7022e66e87042da811 Author: Kirill Yukhin Date: Wed Mar 23 14:08:07 2016 +0300 AVX2. Emit vpcmpeqd for const_m1 only if AVX2 is enabled. diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 1639704..963cc3d 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -10859,7 +10859,7 @@ standard_sse_constant_opcode (rtx_insn *insn, rtx x) || get_attr_mode (insn) == MODE_V8DF || get_attr_mode (insn) == MODE_V16SF) return "vpternlogd\t{$0xFF, %g0, %g0, %g0|%g0, %g0, %g0, 0xFF}"; - if (TARGET_AVX) + if (TARGET_AVX2 || get_attr_mode (insn) == 16) return "vpcmpeqd\t%0, %0, %0"; else return "pcmpeqd\t%0, %0";