From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18606 invoked by alias); 17 Feb 2020 15:49:46 -0000 Mailing-List: contact binutils-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sourceware.org Received: (qmail 18592 invoked by uid 89); 17 Feb 2020 15:49:45 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-4.1 required=5.0 tests=AWL,BAYES_00,KAM_NUMSUBJECT,SPF_PASS autolearn=no version=3.3.1 spammy=SSE4*, flavors, sse4*, H*f:sk:4f3e523 X-HELO: mx2.suse.de Received: from mx2.suse.de (HELO mx2.suse.de) (195.135.220.15) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 17 Feb 2020 15:49:44 +0000 Received: from relay2.suse.de (unknown [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id 94446AF0E; Mon, 17 Feb 2020 15:49:42 +0000 (UTC) Subject: Re: [committed, PATCH] x86: Don't disable SSE4a when disabling SSE4 To: "H.J. Lu" Cc: "binutils@sourceware.org" References: <3bc597bb-10f9-80f9-8e00-f28aeb2eea77@suse.com> <4f3e5233-fb2f-a957-2788-8ffde3939ce2@suse.com> <70b8fc74-e036-1064-ab65-5e0cfe5ec401@suse.com> From: Jan Beulich Message-ID: Date: Mon, 17 Feb 2020 15:49:00 -0000 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.4.2 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2020-02/txt/msg00406.txt.bz2 On 17.02.2020 16:44, H.J. Lu wrote: > On Mon, Feb 17, 2020 at 7:32 AM Jan Beulich wrote: >> >> On 17.02.2020 16:30, H.J. Lu wrote: >>> On Mon, Feb 17, 2020 at 7:27 AM Jan Beulich wrote: >>>> >>>> On 16.02.2020 17:47, H.J. Lu wrote: >>>>> On Wed, Feb 12, 2020 at 9:18 AM H.J. Lu wrote: >>>>>> >>>>>> On Wed, Feb 12, 2020 at 9:08 AM Jan Beulich wrote: >>>>>>> >>>>>>> Since ".arch sse4a" enables SSE3 and earlier, disabling SSE3 should also >>>>>>> disable SSE4a. And as per its name, ".arch .nosse4" should also do so. >>>>>>> >>>>>>> gas/ >>>>>>> 2020-02-XX Jan Beulich >>>>>>> >>>>>>> * config/tc-i386.c (cpu_noarch): Use CPU_ANY_SSE4_FLAGS in >>>>>>> "nosse4" entry. >>>>>>> >>>>>>> opcodes/ >>>>>>> 2020-02-XX Jan Beulich >>>>>>> >>>>>>> * i386-gen.c (cpu_flag_init): Move CpuSSE4a from >>>>>>> CPU_ANY_SSE_FLAGS entry to CPU_ANY_SSE3_FLAGS one. Add >>>>>>> CPU_ANY_SSE4_FLAGS entry. >>>>>>> * i386-init.h: Re-generate. >>>>>>> >>>>>> >>>>>> OK. >>>>>> >>>>>> Thanks. >>>>> >>>>> commit 7deea9aad8 changed nosse4 to include CpuSSE4a. But AMD SSE4a is >>>>> a superset of SSE3 and Intel SSE4 is a superset of SSSE3. Disable Intel >>>>> SSE4 shouldn't disable AMD SSE4a. This patch restores nosse4. It also >>>>> adds .sse4a and nosse4a. >>>> >>>> And where is it said that "nosse4" means only the Intel flavors? As >>>> said in the commit message of said change, to me the clear implication >>>> is that anything called SSE4* will get disabled. >>>> >>> >>> SSE4 refers to SSE4 from Intel, which includes SSE4.1 and SSE4.2. >>> SSE4a from AMD is unrelated from Intel SSE4. >> >> Repeating my question then: Where is this being said? (Best imo >> would be to delete ".arch .nosse4" support then, eliminating >> the ambiguity.) > > We have both .sse4 and nosse4 which are aliases for SSE4.2. Please > feel free to add documentation. If it's not documented, then it's not clear at all what the intention is. I'm certainly not going to add documentation saying something that I don't believe should be said. I.e. if I were to add documentation here, it'd say .nosse4 covers all three SSE4* variants (and it would then be a bug of the implementation that this isn't the case). Just like for the MOVSX/MOVZX issue, I really dislike you making statements of things that were (apparently) never settled on. Jan