From patchwork Wed Oct 5 13:47:42 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Senkevich X-Patchwork-Id: 678452 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 3spxvd6tRJz9s3s for ; Thu, 6 Oct 2016 00:48:45 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b=HBOBas9R; 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 :mime-version:in-reply-to:references:from:date:message-id :subject:to:cc:content-type:content-transfer-encoding; q=dns; s= default; b=euJZluolZqppP7R/xhNViKTbX0xMbd2MTqXpdXvEcEQia7tG7u/qk nqJxawPf4G+e3jsZR56hUsYk33OUFIPghduxWQZmwmKz7eHd15yPQtePkpsr6inQ S/wQXjiJgWdMBJb3czvalABpRy9U5Ttdb1V/bfnzAoxQ9T/4HU+yBk= 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:from:date:message-id :subject:to:cc:content-type:content-transfer-encoding; s= default; bh=cE+TqWP+EScOvbsgrKpFLePL72Q=; b=HBOBas9Rn4j4uAB1DHzs Mhlf0+ecdiQ9+0dKQtOoiXK8pN0S6WIVEO/MP1tiW6rLgdlWptvZg+PGgooRwSPg V5zzBqfGIXfNdrJ1E1v3gwi5rhqa51v61xwqS72SjhETDnBLKgAGcZg/3m5vhzTF QR5CrlJnEfnmw6EdrM/dl0o= Received: (qmail 82240 invoked by alias); 5 Oct 2016 13:48:37 -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 72074 invoked by uid 89); 5 Oct 2016 13:48:25 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=2.2 required=5.0 tests=AWL, BAYES_50, FREEMAIL_FROM, LIKELY_SPAM_BODY, RCVD_IN_DNSWL_LOW, RCVD_IN_SORBS_SPAM, SPF_PASS autolearn=no version=3.3.2 spammy=tbm, TBM, UD:i386.md, i386.md X-HELO: mail-ua0-f194.google.com Received: from mail-ua0-f194.google.com (HELO mail-ua0-f194.google.com) (209.85.217.194) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 05 Oct 2016 13:48:15 +0000 Received: by mail-ua0-f194.google.com with SMTP id p25so4408783uaa.3 for ; Wed, 05 Oct 2016 06:48:14 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=JvdURTRavVDwbiMY4aozltN92GHSPWGhXC8Ke+iTAZk=; b=P/XhyIXguczpFuz68SOksABoNZ5L4KI9CZxjXd9ZHBJv8IraRRHDffhupX0+yZCh6h UTAHuHaZ3HgQXQVRRpjETGMrn0hC92UpPupeCCV8kxTI1cqkJkNdKEoLy4C55aG5m5lY S9vORHTBDutcxT1AZ2I5k0VK+4Lay2XoAGflWF1PeXwpHQuyGBLEA0uUA/Odzw9SQ3A2 SNEAEyai8PxNSoi1Eze3WXk3opNClnbaMh40ekhRKHAEtD2AMy8FfNQ8y2ipcPRzyc5f xMmfxpOm1fVaVwvLX3xZRb5ScjkOAVEH1zPCNJBMHGVcMPDpDb5b/N36upEL2qjlsVe/ u1ig== X-Gm-Message-State: AA6/9RnzJlMTqJPZ1fsgBeinU5MVX0fqQXUDQlhG8FOeDn3COTlGo2KzLVmXJ3rA+W9CIJSkkNoxE3oqXIciVQ== X-Received: by 10.176.4.41 with SMTP id 38mr2949359uav.116.1475675293051; Wed, 05 Oct 2016 06:48:13 -0700 (PDT) MIME-Version: 1.0 Received: by 10.103.133.6 with HTTP; Wed, 5 Oct 2016 06:47:42 -0700 (PDT) In-Reply-To: References: From: Andrew Senkevich Date: Wed, 5 Oct 2016 16:47:42 +0300 Message-ID: Subject: Re: [PATCH] Remove x86 pcommit instruction To: Uros Bizjak Cc: "gcc-patches@gcc.gnu.org" > -mpcommit > -Target Report Mask(ISA_PCOMMIT) Var(ix86_isa_flags) Save > -Support PCOMMIT instruction. > - > > You should not simply delete a option that was in the released > compiler, but a warning should be emitted instead. Please see how > msse5 is handled in i386.opt. Thank you, it is fixed in patch below. Ok for trunk? Is it subject for backport for 5.* and 6.* releases? 2016-10-05 Andrew Senkevich gcc/ * common/config/i386/i386-common.c (OPTION_MASK_ISA_PCOMMIT_UNSET, OPTION_MASK_ISA_PCOMMIT_SET): Deleted definitions. (ix86_handle_option): Deleted handle of OPT_mpcommit. * config.gcc: Deleted pcommitintrin.h * config/i386/pcommitintrin.h: Deleted file. * config/i386/cpuid.h (bit_PCOMMIT): Deleted. * config/i386/driver-i386.c (host_detect_local_cpu): Deleted pcommit detection. * config/i386/i386-c.c (ix86_target_macros_internal): Deleted define __PCOMMIT__. * config/i386/i386.c (ix86_target_string): Deleted -mpcommit. (PTA_PCOMMIT): Deleted define. (ix86_option_override_internal): Deleted handle of option. (ix86_valid_target_attribute_inner_p): Deleted pcommit. * config/i386/i386-builtin.def (IX86_BUILTIN_PCOMMIT, __builtin_ia32_pcommit): Deleted. * config/i386/i386.h (TARGET_PCOMMIT, TARGET_PCOMMIT_P): Deleted. * config/i386/i386.md (unspecv): Deleted UNSPECV_PCOMMIT. (pcommit): Deleted instruction. * config/i386/i386.opt: Warning about mpcommit deprecation. * config/i386/x86intrin.h: Deleted inclusion of pcommitintrin.h. gcc/testsuite/ * gcc.target/i386/pcommit-1.c: Deleted. * gcc.target/i386/sse-12.c: Deleted -mpcommit option. * gcc.target/i386/sse-13.c: Ditto. * gcc.target/i386/sse-14.c: Ditto. * gcc.target/i386/sse-22.c: Ditto. * gcc.target/i386/sse-23.c: Ditto. * g++.dg/other/i386-2.C: Ditto. * g++.dg/other/i386-3.C: Ditto. +#pragma GCC target ("sse4a,3dnow,avx,avx2,fma4,xop,aes,pclmul,popcnt,abm,lzcnt,bmi,bmi2,tbm,lwp,fsgsbase,rdrnd,f16c,fma,rtm,rdseed,prfchw,adx,fxsr,xsaveopt,avx512f,avx512er,avx512cd,avx512pf,sha,prefetchwt1,xsavec,xsaves,clflushopt,avx512bw,avx512dq,avx512vl,avx512vbmi,avx512ifma,clwb,mwaitx,clzero,pku") #include --- WBR, Andrew diff --git a/gcc/common/config/i386/i386-common.c b/gcc/common/config/i386/i386-common.c index 4f0a55f..ce1b5f7 100644 --- a/gcc/common/config/i386/i386-common.c +++ b/gcc/common/config/i386/i386-common.c @@ -86,7 +86,6 @@ along with GCC; see the file COPYING3. If not see #define OPTION_MASK_ISA_XSAVEC_SET \ (OPTION_MASK_ISA_XSAVEC | OPTION_MASK_ISA_XSAVE) #define OPTION_MASK_ISA_CLWB_SET OPTION_MASK_ISA_CLWB -#define OPTION_MASK_ISA_PCOMMIT_SET OPTION_MASK_ISA_PCOMMIT /* SSE4 includes both SSE4.1 and SSE4.2. -msse4 should be the same as -msse4.2. */ @@ -187,7 +186,6 @@ along with GCC; see the file COPYING3. If not see #define OPTION_MASK_ISA_CLFLUSHOPT_UNSET OPTION_MASK_ISA_CLFLUSHOPT #define OPTION_MASK_ISA_XSAVEC_UNSET OPTION_MASK_ISA_XSAVEC #define OPTION_MASK_ISA_XSAVES_UNSET OPTION_MASK_ISA_XSAVES -#define OPTION_MASK_ISA_PCOMMIT_UNSET OPTION_MASK_ISA_PCOMMIT #define OPTION_MASK_ISA_CLWB_UNSET OPTION_MASK_ISA_CLWB #define OPTION_MASK_ISA_MWAITX_UNSET OPTION_MASK_ISA_MWAITX #define OPTION_MASK_ISA_CLZERO_UNSET OPTION_MASK_ISA_CLZERO @@ -933,19 +931,6 @@ ix86_handle_option (struct gcc_options *opts, } return true; - case OPT_mpcommit: - if (value) - { - opts->x_ix86_isa_flags |= OPTION_MASK_ISA_PCOMMIT_SET; - opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_PCOMMIT_SET; - } - else - { - opts->x_ix86_isa_flags &= ~OPTION_MASK_ISA_PCOMMIT_UNSET; - opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_PCOMMIT_UNSET; - } - return true; - case OPT_mclwb: if (value) { diff --git a/gcc/config.gcc b/gcc/config.gcc index 7d24561..8fd07c5 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -373,8 +373,8 @@ i[34567]86-*-*) xsavesintrin.h avx512dqintrin.h avx512bwintrin.h avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h avx512ifmaintrin.h avx512ifmavlintrin.h avx512vbmiintrin.h - avx512vbmivlintrin.h clwbintrin.h pcommitintrin.h - mwaitxintrin.h clzerointrin.h pkuintrin.h" + avx512vbmivlintrin.h clwbintrin.h mwaitxintrin.h + clzerointrin.h pkuintrin.h" ;; x86_64-*-*) cpu_type=i386 @@ -395,8 +395,8 @@ x86_64-*-*) xsavesintrin.h avx512dqintrin.h avx512bwintrin.h avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h avx512ifmaintrin.h avx512ifmavlintrin.h avx512vbmiintrin.h - avx512vbmivlintrin.h clwbintrin.h pcommitintrin.h - mwaitxintrin.h clzerointrin.h pkuintrin.h" + avx512vbmivlintrin.h clwbintrin.h mwaitxintrin.h + clzerointrin.h pkuintrin.h" ;; ia64-*-*) extra_headers=ia64intrin.h diff --git a/gcc/config/i386/cpuid.h b/gcc/config/i386/cpuid.h index 4ea3f74..2a946bf 100644 --- a/gcc/config/i386/cpuid.h +++ b/gcc/config/i386/cpuid.h @@ -82,7 +82,6 @@ #define bit_RDSEED (1 << 18) #define bit_ADX (1 << 19) #define bit_AVX512IFMA (1 << 21) -#define bit_PCOMMIT (1 << 22) #define bit_CLFLUSHOPT (1 << 23) #define bit_CLWB (1 << 24) #define bit_AVX512PF (1 << 26) diff --git a/gcc/config/i386/driver-i386.c b/gcc/config/i386/driver-i386.c index 7460b59..e026482 100644 --- a/gcc/config/i386/driver-i386.c +++ b/gcc/config/i386/driver-i386.c @@ -413,8 +413,7 @@ const char *host_detect_local_cpu (int argc, const char **argv) unsigned int has_clflushopt = 0, has_xsavec = 0, has_xsaves = 0; unsigned int has_avx512dq = 0, has_avx512bw = 0, has_avx512vl = 0; unsigned int has_avx512vbmi = 0, has_avx512ifma = 0, has_clwb = 0; - unsigned int has_pcommit = 0, has_mwaitx = 0; - unsigned int has_clzero = 0, has_pku = 0; + unsigned int has_mwaitx = 0, has_clzero = 0, has_pku = 0; bool arch; @@ -492,7 +491,6 @@ const char *host_detect_local_cpu (int argc, const char **argv) has_avx512pf = ebx & bit_AVX512PF; has_avx512cd = ebx & bit_AVX512CD; has_sha = ebx & bit_SHA; - has_pcommit = ebx & bit_PCOMMIT; has_clflushopt = ebx & bit_CLFLUSHOPT; has_clwb = ebx & bit_CLWB; has_avx512dq = ebx & bit_AVX512DQ; @@ -1024,7 +1022,6 @@ const char *host_detect_local_cpu (int argc, const char **argv) const char *avx512ifma = has_avx512ifma ? " -mavx512ifma" : " -mno-avx512ifma"; const char *avx512vbmi = has_avx512vbmi ? " -mavx512vbmi" : " -mno-avx512vbmi"; const char *clwb = has_clwb ? " -mclwb" : " -mno-clwb"; - const char *pcommit = has_pcommit ? " -mpcommit" : " -mno-pcommit"; const char *mwaitx = has_mwaitx ? " -mmwaitx" : " -mno-mwaitx"; const char *clzero = has_clzero ? " -mclzero" : " -mno-clzero"; const char *pku = has_pku ? " -mpku" : " -mno-pku"; @@ -1036,7 +1033,7 @@ const char *host_detect_local_cpu (int argc, const char **argv) fxsr, xsave, xsaveopt, avx512f, avx512er, avx512cd, avx512pf, prefetchwt1, clflushopt, xsavec, xsaves, avx512dq, avx512bw, avx512vl, - avx512ifma, avx512vbmi, clwb, pcommit, mwaitx, + avx512ifma, avx512vbmi, clwb, mwaitx, clzero, pku, NULL); } diff --git a/gcc/config/i386/i386-builtin.def b/gcc/config/i386/i386-builtin.def index de65ea7..8518b74 100644 --- a/gcc/config/i386/i386-builtin.def +++ b/gcc/config/i386/i386-builtin.def @@ -377,9 +377,6 @@ BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_avx512vl_ss_truncatev4siv4hi2_mask_sto BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_avx512vl_us_truncatev8siv8hi2_mask_store, "__builtin_ia32_pmovusdw256mem_mask", IX86_BUILTIN_PMOVUSDW256_MEM, UNKNOWN, (int) VOID_FTYPE_PV8HI_V8SI_UQI) BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_avx512vl_us_truncatev4siv4hi2_mask_store, "__builtin_ia32_pmovusdw128mem_mask", IX86_BUILTIN_PMOVUSDW128_MEM, UNKNOWN, (int) VOID_FTYPE_PV8HI_V4SI_UQI) -/* PCOMMIT. */ -BDESC (OPTION_MASK_ISA_PCOMMIT, CODE_FOR_pcommit, "__builtin_ia32_pcommit", IX86_BUILTIN_PCOMMIT, UNKNOWN, (int) VOID_FTYPE_VOID) - /* RDPKRU and WRPKRU. */ BDESC (OPTION_MASK_ISA_PKU, CODE_FOR_rdpkru, "__builtin_ia32_rdpkru", IX86_BUILTIN_RDPKRU, UNKNOWN, (int) UNSIGNED_FTYPE_VOID) BDESC (OPTION_MASK_ISA_PKU, CODE_FOR_wrpkru, "__builtin_ia32_wrpkru", IX86_BUILTIN_WRPKRU, UNKNOWN, (int) VOID_FTYPE_UNSIGNED) diff --git a/gcc/config/i386/i386-c.c b/gcc/config/i386/i386-c.c index f93a09d..d4d2674 100644 --- a/gcc/config/i386/i386-c.c +++ b/gcc/config/i386/i386-c.c @@ -433,8 +433,6 @@ ix86_target_macros_internal (HOST_WIDE_INT isa_flag, def_or_undef (parse_in, "__XSAVES__"); if (isa_flag & OPTION_MASK_ISA_MPX) def_or_undef (parse_in, "__MPX__"); - if (isa_flag & OPTION_MASK_ISA_PCOMMIT) - def_or_undef (parse_in, "__PCOMMIT__"); if (isa_flag & OPTION_MASK_ISA_CLWB) def_or_undef (parse_in, "__CLWB__"); if (isa_flag & OPTION_MASK_ISA_MWAITX) diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index e0b2d57..c103ae6 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -4212,7 +4212,6 @@ ix86_target_string (HOST_WIDE_INT isa, int flags, int ix86_flags, { "-mxsaves", OPTION_MASK_ISA_XSAVES }, { "-mmpx", OPTION_MASK_ISA_MPX }, { "-mclwb", OPTION_MASK_ISA_CLWB }, - { "-mpcommit", OPTION_MASK_ISA_PCOMMIT }, { "-mmwaitx", OPTION_MASK_ISA_MWAITX }, { "-mclzero", OPTION_MASK_ISA_CLZERO }, { "-mpku", OPTION_MASK_ISA_PKU }, @@ -4800,11 +4799,10 @@ ix86_option_override_internal (bool main_args_p, #define PTA_AVX512IFMA (HOST_WIDE_INT_1 << 53) #define PTA_AVX512VBMI (HOST_WIDE_INT_1 << 54) #define PTA_CLWB (HOST_WIDE_INT_1 << 55) -#define PTA_PCOMMIT (HOST_WIDE_INT_1 << 56) -#define PTA_MWAITX (HOST_WIDE_INT_1 << 57) -#define PTA_CLZERO (HOST_WIDE_INT_1 << 58) -#define PTA_NO_80387 (HOST_WIDE_INT_1 << 59) -#define PTA_PKU (HOST_WIDE_INT_1 << 60) +#define PTA_MWAITX (HOST_WIDE_INT_1 << 56) +#define PTA_CLZERO (HOST_WIDE_INT_1 << 57) +#define PTA_NO_80387 (HOST_WIDE_INT_1 << 58) +#define PTA_PKU (HOST_WIDE_INT_1 << 59) #define PTA_CORE2 \ (PTA_64BIT | PTA_MMX | PTA_SSE | PTA_SSE2 | PTA_SSE3 | PTA_SSSE3 \ @@ -5427,9 +5425,6 @@ ix86_option_override_internal (bool main_args_p, if (processor_alias_table[i].flags & PTA_PREFETCHWT1 && !(opts->x_ix86_isa_flags_explicit & OPTION_MASK_ISA_PREFETCHWT1)) opts->x_ix86_isa_flags |= OPTION_MASK_ISA_PREFETCHWT1; - if (processor_alias_table[i].flags & PTA_PCOMMIT - && !(opts->x_ix86_isa_flags_explicit & OPTION_MASK_ISA_PCOMMIT)) - opts->x_ix86_isa_flags |= OPTION_MASK_ISA_PCOMMIT; if (processor_alias_table[i].flags & PTA_CLWB && !(opts->x_ix86_isa_flags_explicit & OPTION_MASK_ISA_CLWB)) opts->x_ix86_isa_flags |= OPTION_MASK_ISA_CLWB; @@ -6559,7 +6554,6 @@ ix86_valid_target_attribute_inner_p (tree args, char *p_strings[], IX86_ATTR_ISA ("avx512vbmi", OPT_mavx512vbmi), IX86_ATTR_ISA ("avx512ifma", OPT_mavx512ifma), IX86_ATTR_ISA ("clwb", OPT_mclwb), - IX86_ATTR_ISA ("pcommit", OPT_mpcommit), IX86_ATTR_ISA ("mwaitx", OPT_mmwaitx), IX86_ATTR_ISA ("clzero", OPT_mclzero), IX86_ATTR_ISA ("pku", OPT_mpku), diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h index 8751143..f7b1e66 100644 --- a/gcc/config/i386/i386.h +++ b/gcc/config/i386/i386.h @@ -152,8 +152,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #define TARGET_PREFETCHWT1_P(x) TARGET_ISA_PREFETCHWT1_P(x) #define TARGET_MPX TARGET_ISA_MPX #define TARGET_MPX_P(x) TARGET_ISA_MPX_P(x) -#define TARGET_PCOMMIT TARGET_ISA_PCOMMIT -#define TARGET_PCOMMIT_P(x) TARGET_ISA_PCOMMIT_P(x) #define TARGET_CLWB TARGET_ISA_CLWB #define TARGET_CLWB_P(x) TARGET_ISA_CLWB_P(x) #define TARGET_MWAITX TARGET_ISA_MWAITX diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 6337a5d..32794ac 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -259,9 +259,6 @@ ;; For CLWB support UNSPECV_CLWB - ;; For PCOMMIT support - UNSPECV_PCOMMIT - ;; For CLFLUSHOPT support UNSPECV_CLFLUSHOPT @@ -19369,13 +19366,6 @@ [(set_attr "type" "other") (set_attr "length" "3")]) -(define_insn "pcommit" - [(unspec_volatile [(const_int 0)] UNSPECV_PCOMMIT)] - "TARGET_PCOMMIT" - "pcommit" - [(set_attr "type" "other") - (set_attr "length" "4")]) - (define_insn "clwb" [(unspec_volatile [(match_operand 0 "address_operand" "p")] UNSPECV_CLWB)] diff --git a/gcc/config/i386/i386.opt b/gcc/config/i386/i386.opt index 4b75ba8..9eef558 100644 --- a/gcc/config/i386/i386.opt +++ b/gcc/config/i386/i386.opt @@ -752,8 +752,8 @@ Target Report Mask(ISA_CLWB) Var(ix86_isa_flags) Save Support CLWB instruction. mpcommit -Target Report Mask(ISA_PCOMMIT) Var(ix86_isa_flags) Save -Support PCOMMIT instruction. +Target Undocumented Warn(%<-mpcommit%> was deprecated) +;; Deprecated mfxsr Target Report Mask(ISA_FXSR) Var(ix86_isa_flags) Save diff --git a/gcc/config/i386/pcommitintrin.h b/gcc/config/i386/pcommitintrin.h deleted file mode 100644 index 44e7a77..0000000 --- a/gcc/config/i386/pcommitintrin.h +++ /dev/null @@ -1,49 +0,0 @@ -/* Copyright (C) 2013-2016 Free Software Foundation, Inc. - - This file is part of GCC. - - GCC is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3, or (at your option) - any later version. - - GCC is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - Under Section 7 of GPL version 3, you are granted additional - permissions described in the GCC Runtime Library Exception, version - 3.1, as published by the Free Software Foundation. - - You should have received a copy of the GNU General Public License and - a copy of the GCC Runtime Library Exception along with this program; - see the files COPYING3 and COPYING.RUNTIME respectively. If not, see - . */ - -#if !defined _X86INTRIN_H_INCLUDED -# error "Never use directly; include instead." -#endif - -#ifndef _PCOMMITINTRIN_H_INCLUDED -#define _PCOMMITINTRIN_H_INCLUDED - -#ifndef __PCOMMIT__ -#pragma GCC push_options -#pragma GCC target("pcommit") -#define __DISABLE_PCOMMIT__ -#endif /* __PCOMMIT__ */ - -extern __inline void -__attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_pcommit (void) -{ - __builtin_ia32_pcommit (); -} - -#ifdef __DISABLE_PCOMMIT__ -#undef __DISABLE_PCOMMIT__ -#pragma GCC pop_options -#endif /* __DISABLE_PCOMMIT__ */ - -#endif /* _PCOMMITINTRIN_H_INCLUDED */ diff --git a/gcc/config/i386/x86intrin.h b/gcc/config/i386/x86intrin.h index e666c4e..ee5c38a 100644 --- a/gcc/config/i386/x86intrin.h +++ b/gcc/config/i386/x86intrin.h @@ -83,8 +83,6 @@ #include -#include - #include #include diff --git a/gcc/testsuite/g++.dg/other/i386-2.C b/gcc/testsuite/g++.dg/other/i386-2.C index 74b3cb8..b6b3559 100644 --- a/gcc/testsuite/g++.dg/other/i386-2.C +++ b/gcc/testsuite/g++.dg/other/i386-2.C @@ -1,5 +1,5 @@ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */ -/* { dg-options "-O -pedantic-errors -march=k8 -msse4a -m3dnow -mavx -mavx2 -mfma4 -mxop -maes -mpclmul -mpopcnt -mabm -mlzcnt -mbmi -mbmi2 -mtbm -mlwp -mfsgsbase -mrdrnd -mf16c -mfma -mrtm -mrdseed -mprfchw -madx -mfxsr -mxsaveopt -mavx512f -mavx512er -mavx512cd -mavx512pf -msha -mprefetchwt1 -mxsavec -mxsaves -mclflushopt -mavx512dq -mavx512bw -mavx512vl -mavx512ifma -mavx512vbmi -mclwb -mpcommit -mmwaitx -mclzero -mpku" } */ +/* { dg-options "-O -pedantic-errors -march=k8 -msse4a -m3dnow -mavx -mavx2 -mfma4 -mxop -maes -mpclmul -mpopcnt -mabm -mlzcnt -mbmi -mbmi2 -mtbm -mlwp -mfsgsbase -mrdrnd -mf16c -mfma -mrtm -mrdseed -mprfchw -madx -mfxsr -mxsaveopt -mavx512f -mavx512er -mavx512cd -mavx512pf -msha -mprefetchwt1 -mxsavec -mxsaves -mclflushopt -mavx512dq -mavx512bw -mavx512vl -mavx512ifma -mavx512vbmi -mclwb -mmwaitx -mclzero -mpku" } */ /* Test that {,x,e,p,t,s,w,a,b,i}mmintrin.h, mm3dnow.h, fma4intrin.h, xopintrin.h, abmintrin.h, bmiintrin.h, tbmintrin.h, lwpintrin.h, diff --git a/gcc/testsuite/g++.dg/other/i386-3.C b/gcc/testsuite/g++.dg/other/i386-3.C index 04ea372..994ed28 100644 --- a/gcc/testsuite/g++.dg/other/i386-3.C +++ b/gcc/testsuite/g++.dg/other/i386-3.C @@ -1,5 +1,5 @@ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */ -/* { dg-options "-O -fkeep-inline-functions -march=k8 -msse4a -m3dnow -mavx -mavx2 -mfma4 -mxop -maes -mpclmul -mpopcnt -mabm -mlzcnt -mbmi -mbmi2 -mtbm -mlwp -mfsgsbase -mrdrnd -mf16c -mfma -mrtm -mrdseed -mprfchw -madx -mfxsr -mxsaveopt -mavx512f -mavx512er -mavx512cd -mavx512pf -msha -mprefetchwt1 -mxsavec -mxsaves -mclflushopt -mavx512dq -mavx512bw -mavx512vl -mavx512ifma -mavx512vbmi -mclwb -mpcommit -mmwaitx -mclzero -mpku" } */ +/* { dg-options "-O -fkeep-inline-functions -march=k8 -msse4a -m3dnow -mavx -mavx2 -mfma4 -mxop -maes -mpclmul -mpopcnt -mabm -mlzcnt -mbmi -mbmi2 -mtbm -mlwp -mfsgsbase -mrdrnd -mf16c -mfma -mrtm -mrdseed -mprfchw -madx -mfxsr -mxsaveopt -mavx512f -mavx512er -mavx512cd -mavx512pf -msha -mprefetchwt1 -mxsavec -mxsaves -mclflushopt -mavx512dq -mavx512bw -mavx512vl -mavx512ifma -mavx512vbmi -mclwb -mmwaitx -mclzero -mpku" } */ /* Test that {,x,e,p,t,s,w,a,b,i}mmintrin.h, mm3dnow.h, fma4intrin.h, xopintrin.h, abmintrin.h, bmiintrin.h, tbmintrin.h, lwpintrin.h, diff --git a/gcc/testsuite/gcc.target/i386/pcommit-1.c b/gcc/testsuite/gcc.target/i386/pcommit-1.c deleted file mode 100644 index dc4bc9d..0000000 --- a/gcc/testsuite/gcc.target/i386/pcommit-1.c +++ /dev/null @@ -1,11 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-O2 -mpcommit" } */ -/* { dg-final { scan-assembler "pcommit" } } */ - -#include "x86intrin.h" - -void -test_pcommit () -{ - _mm_pcommit (); -} diff --git a/gcc/testsuite/gcc.target/i386/sse-12.c b/gcc/testsuite/gcc.target/i386/sse-12.c index af15946..f0f5457 100644 --- a/gcc/testsuite/gcc.target/i386/sse-12.c +++ b/gcc/testsuite/gcc.target/i386/sse-12.c @@ -3,7 +3,7 @@ popcntintrin.h and mm_malloc.h are usable with -O -std=c89 -pedantic-errors. */ /* { dg-do compile } */ -/* { dg-options "-O -std=c89 -pedantic-errors -march=k8 -msse4a -m3dnow -mavx -mavx2 -mfma4 -mxop -maes -mpclmul -mpopcnt -mabm -mlzcnt -mbmi -mbmi2 -mtbm -mlwp -mfsgsbase -mrdrnd -mf16c -mfma -mrtm -mrdseed -mprfchw -madx -mfxsr -mxsaveopt -mavx512f -mavx512er -mavx512cd -mavx512pf -msha -mprefetchwt1 -mxsavec -mxsaves -mclflushopt -mavx512bw -mavx512dq -mavx512vl -mavx512vbmi -mavx512ifma -mclwb -mpcommit -mmwaitx -mclzero -mpku" } */ +/* { dg-options "-O -std=c89 -pedantic-errors -march=k8 -msse4a -m3dnow -mavx -mavx2 -mfma4 -mxop -maes -mpclmul -mpopcnt -mabm -mlzcnt -mbmi -mbmi2 -mtbm -mlwp -mfsgsbase -mrdrnd -mf16c -mfma -mrtm -mrdseed -mprfchw -madx -mfxsr -mxsaveopt -mavx512f -mavx512er -mavx512cd -mavx512pf -msha -mprefetchwt1 -mxsavec -mxsaves -mclflushopt -mavx512bw -mavx512dq -mavx512vl -mavx512vbmi -mavx512ifma -mclwb -mmwaitx -mclzero -mpku" } */ #include diff --git a/gcc/testsuite/gcc.target/i386/sse-13.c b/gcc/testsuite/gcc.target/i386/sse-13.c index 5562fbc..80d8c20 100644 --- a/gcc/testsuite/gcc.target/i386/sse-13.c +++ b/gcc/testsuite/gcc.target/i386/sse-13.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -Werror-implicit-function-declaration -march=k8 -msse4a -m3dnow -mavx -mavx2 -mfma4 -mxop -maes -mpclmul -mpopcnt -mabm -mlzcnt -mbmi -mbmi2 -mtbm -mlwp -mfsgsbase -mrdrnd -mf16c -mfma -mrtm -mrdseed -mprfchw -madx -mfxsr -mxsaveopt -mavx512f -mavx512er -mavx512cd -mavx512pf -msha -mprefetchwt1 -mxsavec -mxsaves -mclflushopt -mavx512vl -mavx512dq -mavx512bw -mavx512vbmi -mavx512ifma -mclwb -mpcommit -mmwaitx -mclzero -mpku" } */ +/* { dg-options "-O2 -Werror-implicit-function-declaration -march=k8 -msse4a -m3dnow -mavx -mavx2 -mfma4 -mxop -maes -mpclmul -mpopcnt -mabm -mlzcnt -mbmi -mbmi2 -mtbm -mlwp -mfsgsbase -mrdrnd -mf16c -mfma -mrtm -mrdseed -mprfchw -madx -mfxsr -mxsaveopt -mavx512f -mavx512er -mavx512cd -mavx512pf -msha -mprefetchwt1 -mxsavec -mxsaves -mclflushopt -mavx512vl -mavx512dq -mavx512bw -mavx512vbmi -mavx512ifma -mclwb -mmwaitx -mclzero -mpku" } */ /* { dg-add-options bind_pic_locally } */ #include diff --git a/gcc/testsuite/gcc.target/i386/sse-14.c b/gcc/testsuite/gcc.target/i386/sse-14.c index 1baf6fc..3370d07 100644 --- a/gcc/testsuite/gcc.target/i386/sse-14.c +++ b/gcc/testsuite/gcc.target/i386/sse-14.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O0 -Werror-implicit-function-declaration -march=k8 -msse4a -m3dnow -mavx -mavx2 -mfma4 -mxop -maes -mpclmul -mpopcnt -mabm -mlzcnt -mbmi -mbmi2 -mtbm -mlwp -mfsgsbase -mrdrnd -mf16c -mfma -mrtm -mrdseed -mprfchw -madx -mfxsr -mxsaveopt -mavx512f -mavx512er -mavx512cd -mavx512pf -msha -mprefetchwt1 -mxsavec -mxsaves -mclflushopt -mavx512dq -mavx512bw -mavx512vl -mavx512ifma -mavx512vbmi -mclwb -mpcommit -mmwaitx -mclzero" } */ +/* { dg-options "-O0 -Werror-implicit-function-declaration -march=k8 -msse4a -m3dnow -mavx -mavx2 -mfma4 -mxop -maes -mpclmul -mpopcnt -mabm -mlzcnt -mbmi -mbmi2 -mtbm -mlwp -mfsgsbase -mrdrnd -mf16c -mfma -mrtm -mrdseed -mprfchw -madx -mfxsr -mxsaveopt -mavx512f -mavx512er -mavx512cd -mavx512pf -msha -mprefetchwt1 -mxsavec -mxsaves -mclflushopt -mavx512dq -mavx512bw -mavx512vl -mavx512ifma -mavx512vbmi -mclwb -mmwaitx -mclzero" } */ /* { dg-add-options bind_pic_locally } */ #include diff --git a/gcc/testsuite/gcc.target/i386/sse-22.c b/gcc/testsuite/gcc.target/i386/sse-22.c index 9b15515..9242493 100644 --- a/gcc/testsuite/gcc.target/i386/sse-22.c +++ b/gcc/testsuite/gcc.target/i386/sse-22.c @@ -699,7 +699,7 @@ test_2 (_mm_clmulepi64_si128, __m128i, __m128i, __m128i, 1) /* x86intrin.h (FMA4/XOP/LWP/BMI/BMI2/TBM/LZCNT/FMA). */ #ifdef DIFFERENT_PRAGMAS -#pragma GCC target ("fma4,xop,lwp,bmi,bmi2,tbm,lzcnt,fma,rdseed,prfchw,adx,fxsr,xsaveopt,xsavec,xsaves,clflushopt,clwb,pcommit,pku") +#pragma GCC target ("fma4,xop,lwp,bmi,bmi2,tbm,lzcnt,fma,rdseed,prfchw,adx,fxsr,xsaveopt,xsavec,xsaves,clflushopt,clwb,pku") #endif #include /* xopintrin.h */ diff --git a/gcc/testsuite/gcc.target/i386/sse-23.c b/gcc/testsuite/gcc.target/i386/sse-23.c index d29d2d7..4635fb0 100644 --- a/gcc/testsuite/gcc.target/i386/sse-23.c +++ b/gcc/testsuite/gcc.target/i386/sse-23.c @@ -594,6 +594,6 @@ #define __builtin_ia32_extracti64x2_256_mask(A, E, C, D) __builtin_ia32_extracti64x2_256_mask(A, 1, C, D) #define __builtin_ia32_extractf64x2_256_mask(A, E, C, D) __builtin_ia32_extractf64x2_256_mask(A, 1, C, D) -#pragma GCC target ("sse4a,3dnow,avx,avx2,fma4,xop,aes,pclmul,popcnt,abm,lzcnt,bmi,bmi2,tbm,lwp,fsgsbase,rdrnd,f16c,fma,rtm,rdseed,prfchw,adx,fxsr,xsaveopt,avx512f,avx512er,avx512cd,avx512pf,sha,prefetchwt1,xsavec,xsaves,clflushopt,avx512bw,avx512dq,avx512vl,avx512vbmi,avx512ifma,clwb,pcommit,mwaitx,clzero,pku")