From patchwork Mon Mar 21 21:47:52 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "H.J. Lu" X-Patchwork-Id: 1607945 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.a=rsa-sha256 header.s=default header.b=XBM5zGUR; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=8.43.85.97; helo=sourceware.org; envelope-from=gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Received: from sourceware.org (ip-8-43-85-97.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4KMpCW4yw0z9s3q for ; Tue, 22 Mar 2022 08:48:38 +1100 (AEDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id A5450388981F for ; Mon, 21 Mar 2022 21:48:35 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A5450388981F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1647899315; bh=V4eqtDPijfq2E167oF28B2rltVePsKmwdPCOgAJwALU=; h=Date:To:Subject:References:In-Reply-To:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=XBM5zGURP0jjrgV47YJOxYvM5/jrFJJn4Kly2QUE+14XydF3apbdtkZ6RTakXih0v ySSsyBS3J4Ctsd+NXcJkzK1Gcqw91zSJTSMLRoc+eBciSJ8cPfp0UsikEc54yQ0ynE gyOk6GpfZupNoZ2rxjFTT7tdhalo1DpRPcwaRreA= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-pj1-x1034.google.com (mail-pj1-x1034.google.com [IPv6:2607:f8b0:4864:20::1034]) by sourceware.org (Postfix) with ESMTPS id B73C93858C50 for ; Mon, 21 Mar 2022 21:47:54 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org B73C93858C50 Received: by mail-pj1-x1034.google.com with SMTP id mm17-20020a17090b359100b001c6da62a559so598843pjb.3 for ; Mon, 21 Mar 2022 14:47:54 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=V4eqtDPijfq2E167oF28B2rltVePsKmwdPCOgAJwALU=; b=iZxpJfsRuqf2REqE5x2uhpFaZ2Df7HySCbsIYnblUtTV3ygNbmrp3yXwsRgt9czQDH KpCKaRucOqhRtuLTA/iXMD3ik5LTlxllq1xfdosqHK6NAUdOn+cAERc6Vbg7Ezlvh8R6 QL5XSPjhoBcJtTXHMvo8sbAyaaZyE29TL0VrkdEgJw6nhZR0wsq9h0mm+mqVARLWZ9ig BeW2HF8TPj5XnVEoW4warmfAKEHftho/RKX9OFqqDREW+uCBeg5p7M88BnMZYtiRcI/O sYVnpp1v+xq/KJRQFz+1e6HQ9SqBRlRrNVdkVAU0tTrFvj/i0K79vHEInAoTpjnpNpdA RAiA== X-Gm-Message-State: AOAM532swgCnDNd1vAl8cy+iNvkAPpL2QPtYtSwrWslPWxR3Lp2Qz04G BDWVxJJPA0oiRwGzpjti1iOBNuO9UjU= X-Google-Smtp-Source: ABdhPJyGuAEnOCPhZVTI0kbWqQJ2Er5aqD6Uwy/Gxmdho/Csb721jKXKxg+1EwPb+EQsy1k+mTdjVw== X-Received: by 2002:a17:902:e889:b0:151:a56d:eb8f with SMTP id w9-20020a170902e88900b00151a56deb8fmr14547188plg.142.1647899273484; Mon, 21 Mar 2022 14:47:53 -0700 (PDT) Received: from gnu-tgl-3.localdomain ([172.58.38.226]) by smtp.gmail.com with ESMTPSA id g6-20020a056a000b8600b004faa49add69sm4414896pfj.107.2022.03.21.14.47.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Mar 2022 14:47:53 -0700 (PDT) Received: by gnu-tgl-3.localdomain (Postfix, from userid 1000) id 1D173C0302; Mon, 21 Mar 2022 14:47:52 -0700 (PDT) Date: Mon, 21 Mar 2022 14:47:52 -0700 To: Uros Bizjak Subject: [PATCH v2] x86: Disable SSE in ISA2 for -mgeneral-regs-only Message-ID: References: <20220321211045.845762-1-hjl.tools@gmail.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-Spam-Status: No, score=-3028.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: "H.J. Lu via Gcc-patches" From: "H.J. Lu" Reply-To: "H.J. Lu" Cc: liuhongt , "gcc-patches@gcc.gnu.org" Errors-To: gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org Sender: "Gcc-patches" On Mon, Mar 21, 2022 at 10:23:59PM +0100, Uros Bizjak wrote: > On Mon, Mar 21, 2022 at 10:10 PM H.J. Lu wrote: > > > > SSE and AVX ISAs in ISA2 should be disabled for -mgeneral-regs-only. > > > > gcc/ > > > > PR target/105000 > > * common/config/i386/i386-common.cc > > (OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET): Also disable SSE > > and AVX. > > > > gcc/testsuite/ > > > > PR target/105000 > > * gcc.target/i386/pr105000-1.c: New test. > > * gcc.target/i386/pr105000-2.c: Likewise. > > * gcc.target/i386/pr105000-3.c: Likewise. > > --- > > gcc/common/config/i386/i386-common.cc | 4 +++- > > gcc/testsuite/gcc.target/i386/pr105000-1.c | 11 +++++++++++ > > gcc/testsuite/gcc.target/i386/pr105000-2.c | 11 +++++++++++ > > gcc/testsuite/gcc.target/i386/pr105000-3.c | 11 +++++++++++ > > 4 files changed, 36 insertions(+), 1 deletion(-) > > create mode 100644 gcc/testsuite/gcc.target/i386/pr105000-1.c > > create mode 100644 gcc/testsuite/gcc.target/i386/pr105000-2.c > > create mode 100644 gcc/testsuite/gcc.target/i386/pr105000-3.c > > > > diff --git a/gcc/common/config/i386/i386-common.cc b/gcc/common/config/i386/i386-common.cc > > index 449df6351c9..b77d495e9a4 100644 > > --- a/gcc/common/config/i386/i386-common.cc > > +++ b/gcc/common/config/i386/i386-common.cc > > @@ -321,7 +321,9 @@ along with GCC; see the file COPYING3. If not see > > | OPTION_MASK_ISA2_AVX512VP2INTERSECT_UNSET \ > > | OPTION_MASK_ISA2_AVX512FP16_UNSET) > > #define OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET \ > > - (OPTION_MASK_ISA2_AVX512F_UNSET) > > + (OPTION_MASK_ISA2_SSE_UNSET \ > > + | OPTION_MASK_ISA2_AVX_UNSET \ > > + | OPTION_MASK_ISA2_AVX512F_UNSET) > > The above should only need OPTION_MASK_ISA2_SSE_UNSET, other options > follow from #define chain. > Here is the v2 patch to use OPTION_MASK_ISA2_SSE_UNSET. OK for master and GCC 11 branches? Thanks. H.J. --- Replace OPTION_MASK_ISA2_AVX512F_UNSET with OPTION_MASK_ISA2_SSE_UNSET in OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET to disable SSE, AVX and AVX512 ISAs. gcc/ PR target/105000 * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET): Replace OPTION_MASK_ISA2_AVX512F_UNSET with OPTION_MASK_ISA2_SSE_UNSET. gcc/testsuite/ PR target/105000 * gcc.target/i386/pr105000-1.c: New test. * gcc.target/i386/pr105000-2.c: Likewise. * gcc.target/i386/pr105000-3.c: Likewise. * gcc.target/i386/pr105000-4.c: Likewise. --- gcc/common/config/i386/i386-common.cc | 2 +- gcc/testsuite/gcc.target/i386/pr105000-1.c | 11 +++++++++++ gcc/testsuite/gcc.target/i386/pr105000-2.c | 11 +++++++++++ gcc/testsuite/gcc.target/i386/pr105000-3.c | 11 +++++++++++ gcc/testsuite/gcc.target/i386/pr105000-4.c | 11 +++++++++++ 5 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gcc.target/i386/pr105000-1.c create mode 100644 gcc/testsuite/gcc.target/i386/pr105000-2.c create mode 100644 gcc/testsuite/gcc.target/i386/pr105000-3.c create mode 100644 gcc/testsuite/gcc.target/i386/pr105000-4.c diff --git a/gcc/common/config/i386/i386-common.cc b/gcc/common/config/i386/i386-common.cc index 449df6351c9..c64d7b01126 100644 --- a/gcc/common/config/i386/i386-common.cc +++ b/gcc/common/config/i386/i386-common.cc @@ -321,7 +321,7 @@ along with GCC; see the file COPYING3. If not see | OPTION_MASK_ISA2_AVX512VP2INTERSECT_UNSET \ | OPTION_MASK_ISA2_AVX512FP16_UNSET) #define OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET \ - (OPTION_MASK_ISA2_AVX512F_UNSET) + (OPTION_MASK_ISA2_SSE_UNSET) #define OPTION_MASK_ISA2_AVX_UNSET OPTION_MASK_ISA2_AVX2_UNSET #define OPTION_MASK_ISA2_SSE4_2_UNSET OPTION_MASK_ISA2_AVX_UNSET #define OPTION_MASK_ISA2_SSE4_1_UNSET OPTION_MASK_ISA2_SSE4_2_UNSET diff --git a/gcc/testsuite/gcc.target/i386/pr105000-1.c b/gcc/testsuite/gcc.target/i386/pr105000-1.c new file mode 100644 index 00000000000..020e2adca83 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr105000-1.c @@ -0,0 +1,11 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -mshstk -mavxvnni" } */ + +#include + +__attribute__((target("no-mmx,no-sse"))) +int +foo () +{ + return _get_ssp (); +} diff --git a/gcc/testsuite/gcc.target/i386/pr105000-2.c b/gcc/testsuite/gcc.target/i386/pr105000-2.c new file mode 100644 index 00000000000..a113fd1dfa2 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr105000-2.c @@ -0,0 +1,11 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -mshstk -mkl" } */ + +#include + +__attribute__((target("no-mmx,no-sse"))) +int +foo () +{ + return _get_ssp (); +} diff --git a/gcc/testsuite/gcc.target/i386/pr105000-3.c b/gcc/testsuite/gcc.target/i386/pr105000-3.c new file mode 100644 index 00000000000..7e82925270c --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr105000-3.c @@ -0,0 +1,11 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -mshstk -mwidekl" } */ + +#include + +__attribute__((target("no-mmx,no-sse"))) +int +foo () +{ + return _get_ssp (); +} diff --git a/gcc/testsuite/gcc.target/i386/pr105000-4.c b/gcc/testsuite/gcc.target/i386/pr105000-4.c new file mode 100644 index 00000000000..195eabe85a2 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr105000-4.c @@ -0,0 +1,11 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -mshstk -mavx512fp16" } */ + +#include + +__attribute__((target("no-mmx,no-sse"))) +int +foo () +{ + return _get_ssp (); +}