From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21952 invoked by alias); 4 Sep 2018 16:36:51 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 21943 invoked by uid 89); 4 Sep 2018 16:36:51 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-11.5 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_PASS,UPPERCASE_50_75 autolearn=ham version=3.3.2 spammy= X-HELO: mail-it0-f68.google.com Received: from mail-it0-f68.google.com (HELO mail-it0-f68.google.com) (209.85.214.68) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 04 Sep 2018 16:36:49 +0000 Received: by mail-it0-f68.google.com with SMTP id h1-v6so5607183itj.4 for ; Tue, 04 Sep 2018 09:36:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=zrXb7TI+ZWT5Qe0V3Dnjn6ZWfxVCXJdWVbyOilVsAtk=; b=NqV8o+3TzFSrchnmbegw6t7F0F6RbzwpoR5aOJ6JmCscOq7TxU5cJsJYy9sYyOYOsd fyVcvMGNwloQbOdy2WyUuMRFnWGtDg+LaZgpDIUUWlgpVRew4lD0M9mLont5Os1PgJW6 VcjVXyoTAI9I+lIdiNO3NbMfjUlGMvmvMSalA+IlNGJdp1bDqCwQIqNmKsHYYkQoIFVN mmA0oSRGf1b6FZLLVeVrHAzmLrqHdK8Qhm6Wx1e9A+7acgGMBQSN9welL5gCx6hzv8U0 /UxXYv+kyeG5RxsBYhbeDA5dSvDg8YAgoIjmfJY50AtXxkk/lGnugswiSE+mTmQnBTcj IVDQ== MIME-Version: 1.0 Received: by 2002:a02:704:0:0:0:0:0 with HTTP; Tue, 4 Sep 2018 09:36:46 -0700 (PDT) In-Reply-To: <20180904142830.GI1995@tucnak> References: <20180904142830.GI1995@tucnak> From: Uros Bizjak Date: Tue, 04 Sep 2018 16:36:00 -0000 Message-ID: Subject: Re: [PATCH] Fix up -mno-xsave handling (PR target/87198) To: Jakub Jelinek Cc: "H.J. Lu" , Kirill Yukhin , "gcc-patches@gcc.gnu.org" Content-Type: text/plain; charset="UTF-8" X-SW-Source: 2018-09/txt/msg00208.txt.bz2 On Tue, Sep 4, 2018 at 4:28 PM, Jakub Jelinek wrote: > Hi! > > The -mxsave{opt,s,c} options turn on automatically -mxsave option and > the patterns rely on TARGET_XSAVE{OPT,S,C} implying TARGET_XSAVE, > but if somebody uses e.g. -mxsave{opt,s,c} -mno-xsave (or something that implies > -mno-xsave), TARGET_XSAVE{OPT,S,C} remains set and TARGET_XSAVE is clear. > > Fixed by making sure OPTION_MASK_ISA_XSAVE_UNSET unsets also xsave{s,c} > (xsaveopt was already there). > > This patch doesn't try to address PR87171, which I believe needs further > discussions and doesn't touch the same code anyway, so I think it should be > resolved independently. > > Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk and > release branches? > > 2018-09-04 Jakub Jelinek > > PR target/87198 > * common/config/i386/i386-common.c (OPTION_MASK_ISA_XSAVEOPT_SET, > OPTION_MASK_ISA_XSAVES_SET, OPTION_MASK_ISA_XSAVEC_SET): Use > OPTION_MASK_ISA_XSAVE_SET instead of OPTION_MASK_ISA_XSAVE. > (OPTION_MASK_ISA_XSAVE_UNSET): Add OPTION_MASK_ISA_XSAVES_UNSET > and OPTION_MASK_ISA_XSAVEC_UNSET. > > * gcc.target/i386/pr87198.c: New test. OK. Thanks, Uros. > --- gcc/common/config/i386/i386-common.c.jj 2018-07-17 12:48:23.388587985 +0200 > +++ gcc/common/config/i386/i386-common.c 2018-09-03 11:45:03.543653449 +0200 > @@ -59,7 +59,7 @@ along with GCC; see the file COPYING3. > #define OPTION_MASK_ISA_FXSR_SET OPTION_MASK_ISA_FXSR > #define OPTION_MASK_ISA_XSAVE_SET OPTION_MASK_ISA_XSAVE > #define OPTION_MASK_ISA_XSAVEOPT_SET \ > - (OPTION_MASK_ISA_XSAVEOPT | OPTION_MASK_ISA_XSAVE) > + (OPTION_MASK_ISA_XSAVEOPT | OPTION_MASK_ISA_XSAVE_SET) > #define OPTION_MASK_ISA_AVX512F_SET \ > (OPTION_MASK_ISA_AVX512F | OPTION_MASK_ISA_AVX2_SET) > #define OPTION_MASK_ISA_AVX512CD_SET \ > @@ -95,9 +95,9 @@ along with GCC; see the file COPYING3. > #define OPTION_MASK_ISA_PREFETCHWT1_SET OPTION_MASK_ISA_PREFETCHWT1 > #define OPTION_MASK_ISA_CLFLUSHOPT_SET OPTION_MASK_ISA_CLFLUSHOPT > #define OPTION_MASK_ISA_XSAVES_SET \ > - (OPTION_MASK_ISA_XSAVES | OPTION_MASK_ISA_XSAVE) > + (OPTION_MASK_ISA_XSAVES | OPTION_MASK_ISA_XSAVE_SET) > #define OPTION_MASK_ISA_XSAVEC_SET \ > - (OPTION_MASK_ISA_XSAVEC | OPTION_MASK_ISA_XSAVE) > + (OPTION_MASK_ISA_XSAVEC | OPTION_MASK_ISA_XSAVE_SET) > #define OPTION_MASK_ISA_CLWB_SET OPTION_MASK_ISA_CLWB > > /* SSE4 includes both SSE4.1 and SSE4.2. -msse4 should be the same > @@ -185,7 +185,8 @@ along with GCC; see the file COPYING3. > #define OPTION_MASK_ISA_FMA_UNSET OPTION_MASK_ISA_FMA > #define OPTION_MASK_ISA_FXSR_UNSET OPTION_MASK_ISA_FXSR > #define OPTION_MASK_ISA_XSAVE_UNSET \ > - (OPTION_MASK_ISA_XSAVE | OPTION_MASK_ISA_XSAVEOPT_UNSET) > + (OPTION_MASK_ISA_XSAVE | OPTION_MASK_ISA_XSAVEOPT_UNSET \ > + | OPTION_MASK_ISA_XSAVES_UNSET | OPTION_MASK_ISA_XSAVEC_UNSET) > #define OPTION_MASK_ISA_XSAVEOPT_UNSET OPTION_MASK_ISA_XSAVEOPT > #define OPTION_MASK_ISA_AVX2_UNSET \ > (OPTION_MASK_ISA_AVX2 | OPTION_MASK_ISA_AVX512F_UNSET) > --- gcc/testsuite/gcc.target/i386/pr87198.c.jj 2018-09-03 12:07:48.277760935 +0200 > +++ gcc/testsuite/gcc.target/i386/pr87198.c 2018-09-03 12:07:27.624107043 +0200 > @@ -0,0 +1,13 @@ > +/* PR target/87198 */ > +/* { dg-do compile } */ > +/* { dg-options "-O2 -mxsavec -mno-xsave" } */ > + > +#include > + > +void > +test_xsavec (void *__A, long long __B) > +{ > + _xsavec (__A, __B); > +} > + > +/* { dg-error "target specific option mismatch" "" { target *-*-* } 0 } */ > > Jakub