From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS17314 8.43.84.0/22 X-Spam-Status: No, score=-3.8 required=3.0 tests=AWL,BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI,NICE_REPLY_A, PDS_RDNS_DYNAMIC_FP,RCVD_IN_DNSWL_MED,RCVD_IN_MSPIKE_H2,RDNS_DYNAMIC, SPF_HELO_PASS,SPF_PASS,UPPERCASE_50_75 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 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 dcvr.yhbt.net (Postfix) with ESMTPS id 4827B1F5AE for ; Fri, 23 Jul 2021 03:17:48 +0000 (UTC) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 461FF393B02A for ; Fri, 23 Jul 2021 03:17:47 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 461FF393B02A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1627010267; bh=vRAOykBIMx+Zwpd6IOODwIKoHgDIdVSRoxJJ612xeDs=; h=Subject:To:References:Date:In-Reply-To:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=f3cu2qatOLMxZ2G6hs0fJajTOfXOL7zfwNf23I+vaUpSGuVdSWbbFrjxlUdHJgKkc icJQpxi/ZnVRQn+oAWAJKo3KGvq0DOh2khYi5cO0T0JS1LblfrvsMpxLKa0qWbWQug VoMlUNRJOdbslGTezRIhb1igWy0mWKPRoB9PIu/g= Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by sourceware.org (Postfix) with ESMTP id A2703383581E for ; Fri, 23 Jul 2021 03:17:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org A2703383581E Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-349-MCVe4o7DMW6A7EEvWdu7Lg-1; Thu, 22 Jul 2021 23:17:17 -0400 X-MC-Unique: MCVe4o7DMW6A7EEvWdu7Lg-1 Received: by mail-qt1-f198.google.com with SMTP id e19-20020ac84b530000b0290251f0b91196so622657qts.14 for ; Thu, 22 Jul 2021 20:17:17 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:organization :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=vRAOykBIMx+Zwpd6IOODwIKoHgDIdVSRoxJJ612xeDs=; b=g8uu3EyELzSe8Xl5PTwrecG+e3u2M0DrXFok2mwTW5nx01z+bXoLTOzoTV8De4C81h dCGCUxjDsx4NeXLTTzr5BdfIvThw2a/GttNpZiAAVl19fLWi7xu6n5HkYI0d6ovnwbQY seq1TZjCFuv8/9pk+g6e5Q/qJuesIb8EiTu0Hpg+qe1sSXQ6xMF3SoZoFryZrcPl8KbG ogMIltSLToIVNSuHAfi2WknAISW3Y9dntYjSBGA1PB/0952flFx1QWVgOt9XTqU+Wn/U 3N4OkDI9hxF6iu06n6i3r/qrgRTgrffqvdoOlpo0QgYJ2qBnou5oYsedKQ8hyhJaOBoW eItA== X-Gm-Message-State: AOAM533HxIUjqbNrzFoshnUR/P6CxKsoVOpHpXMhdvrDdhvIYNW9xOqS VIFx6AEdoFmlkZmj2yTiOOXgO5Aj2t2iwo9gdeRq9GiCutRa1jHACr3pXCa/GLHbaSHETiirLsh gghXdYWBDVjUjuchOlauRcAtGlPB+8iy93JQAzSJ61SyQNpdJ8tTfAPhAW0HkS0bSOvs1iQ== X-Received: by 2002:a05:6214:1303:: with SMTP id a3mr2859017qvv.49.1627010237031; Thu, 22 Jul 2021 20:17:17 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwJGoZQksJRs24Hqb7d7wooezHORB1jdVOPjbq7frfGE2OEYyXeKk20Yma2UM4MKm6ZsrsGDw== X-Received: by 2002:a05:6214:1303:: with SMTP id a3mr2859000qvv.49.1627010236596; Thu, 22 Jul 2021 20:17:16 -0700 (PDT) Received: from [192.168.1.16] (198-84-214-74.cpe.teksavvy.com. [198.84.214.74]) by smtp.gmail.com with ESMTPSA id o63sm976166qkf.4.2021.07.22.20.17.15 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 22 Jul 2021 20:17:15 -0700 (PDT) Subject: Re: [PATCH v3] x86: Install [BZ #27958] To: "H.J. Lu" , libc-alpha@sourceware.org References: <20210719151905.4026640-1-hjl.tools@gmail.com> Organization: Red Hat Message-ID: <8b1b991e-3c93-0f46-1645-6f093edcddf2@redhat.com> Date: Thu, 22 Jul 2021 23:17:14 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 In-Reply-To: <20210719151905.4026640-1-hjl.tools@gmail.com> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Carlos O'Donell via Libc-alpha Reply-To: Carlos O'Donell Errors-To: libc-alpha-bounces+e=80x24.org@sourceware.org Sender: "Libc-alpha" On 7/19/21 11:19 AM, H.J. Lu wrote: > 1. Install for which includes > . > 2. Rename HAS_CPU_FEATURE to CPU_FEATURE_PRESENT which checks if the > processor has the feature. > 3. Rename CPU_FEATURE_ACTIVE to CPU_FEATURE_POSSIBLE which checks if the Fix: Rename CPU_FEATURE_USABLE to CPU_FEATURE_ACTIVE which checks if the Please post v4 and I'll ACK that after reviewing new commit message, and the suggested wording change in the example. > feature is active. There may be other preconditions, like sufficient > stack space or further setup for AMX, which must be satisfied before the > feature can be used. Agreed. 100%. > > This fixes BZ #27958. > --- > manual/platform.texi | 18 +- > sysdeps/x86/Makefile | 2 +- > sysdeps/x86/bits/platform/x86.h | 2 +- > sysdeps/x86/cpu-features.c | 188 +++---- > sysdeps/x86/dl-diagnostics-cpu.c | 4 +- > sysdeps/x86/include/cpu-features.h | 20 +- > sysdeps/x86/sys/platform/x86.h | 14 +- > sysdeps/x86/tst-cet-legacy-10.c | 8 +- > sysdeps/x86/tst-cpu-features-cpuinfo.c | 4 +- > sysdeps/x86/tst-cpu-features-supports.c | 184 +++---- > sysdeps/x86/tst-get-cpu-features.c | 670 ++++++++++++------------ > sysdeps/x86/tst-ifunc-isa.h | 12 +- > sysdeps/x86/tst-string-rtm.h | 2 +- > sysdeps/x86_64/fpu/math-tests-arch.h | 6 +- > 14 files changed, 570 insertions(+), 564 deletions(-) > > diff --git a/manual/platform.texi b/manual/platform.texi > index 037dfc4f20..8e023d20d1 100644 > --- a/manual/platform.texi > +++ b/manual/platform.texi > @@ -148,14 +148,16 @@ Return a pointer to x86 CPU feature structure used by query macros for x86 > CPU feature @var{leaf}. > @end deftypefun > > -@deftypefn Macro int HAS_CPU_FEATURE (@var{name}) > +@deftypefn Macro int CPU_FEATURE_PRESENT (@var{name}) > This macro returns a nonzero value (true) if the processor has the feature > @var{name}. > @end deftypefn > > -@deftypefn Macro int CPU_FEATURE_USABLE (@var{name}) > +@deftypefn Macro int CPU_FEATURE_ACTIVE (@var{name}) > This macro returns a nonzero value (true) if the processor has the feature > -@var{name} and the feature is supported by the operating system. > +@var{name} and the feature is active. There may be other preconditions, > +like sufficient stack space or further setup for AMX, which must be > +satisfied before the feature can be used. OK. Excellent text, good note "may be other preconditions," > @end deftypefn > > The supported processor features are: > @@ -682,20 +684,20 @@ You could query if a processor supports @code{AVX} with: > #include > > int > -support_avx (void) > +avx_present (void) > @{ > - return HAS_CPU_FEATURE (AVX); > + return CPU_FEATURE_PRESENT (AVX); > @} > @end smallexample > > -and if @code{AVX} is usable with: > +and if @code{AVX} may be supported with: Suggest: and if @code{AVX} is active and may be used: > > @smallexample > #include > > int > -usable_avx (void) > +avx_active (void) > @{ > - return CPU_FEATURE_USABLE (AVX); > + return CPU_FEATURE_ACTIVE (AVX); > @} > @end smallexample > diff --git a/sysdeps/x86/Makefile b/sysdeps/x86/Makefile > index 346ec491b3..567ea54243 100644 > --- a/sysdeps/x86/Makefile > +++ b/sysdeps/x86/Makefile > @@ -5,7 +5,7 @@ endif > ifeq ($(subdir),elf) > sysdep_routines += get-cpuid-feature-leaf > sysdep-dl-routines += dl-get-cpu-features > -sysdep_headers += sys/platform/x86.h > +sysdep_headers += sys/platform/x86.h bits/platform/x86.h > > CFLAGS-get-cpuid-feature-leaf.o += $(no-stack-protector) > > diff --git a/sysdeps/x86/bits/platform/x86.h b/sysdeps/x86/bits/platform/x86.h > index 5509b1ad87..0757804e30 100644 > --- a/sysdeps/x86/bits/platform/x86.h > +++ b/sysdeps/x86/bits/platform/x86.h > @@ -36,7 +36,7 @@ enum > struct cpuid_feature > { > unsigned int cpuid_array[4]; > - unsigned int usable_array[4]; > + unsigned int active_array[4]; > }; > > enum cpuid_register_index > diff --git a/sysdeps/x86/cpu-features.c b/sysdeps/x86/cpu-features.c > index 563a206ac1..706a172ba9 100644 > --- a/sysdeps/x86/cpu-features.c > +++ b/sysdeps/x86/cpu-features.c > @@ -40,69 +40,69 @@ extern void TUNABLE_CALLBACK (set_x86_shstk) (tunable_val_t *) > #endif > > static void > -update_usable (struct cpu_features *cpu_features) > +update_active (struct cpu_features *cpu_features) > { > - /* Copy the cpuid bits to usable bits for CPU featuress whose usability > + /* Copy the cpuid bits to active bits for CPU featuress whose usability > in user space can be detected without additonal OS support. */ > - CPU_FEATURE_SET_USABLE (cpu_features, SSE3); > - CPU_FEATURE_SET_USABLE (cpu_features, PCLMULQDQ); > - CPU_FEATURE_SET_USABLE (cpu_features, SSSE3); > - CPU_FEATURE_SET_USABLE (cpu_features, CMPXCHG16B); > - CPU_FEATURE_SET_USABLE (cpu_features, SSE4_1); > - CPU_FEATURE_SET_USABLE (cpu_features, SSE4_2); > - CPU_FEATURE_SET_USABLE (cpu_features, MOVBE); > - CPU_FEATURE_SET_USABLE (cpu_features, POPCNT); > - CPU_FEATURE_SET_USABLE (cpu_features, AES); > - CPU_FEATURE_SET_USABLE (cpu_features, OSXSAVE); > - CPU_FEATURE_SET_USABLE (cpu_features, TSC); > - CPU_FEATURE_SET_USABLE (cpu_features, CX8); > - CPU_FEATURE_SET_USABLE (cpu_features, CMOV); > - CPU_FEATURE_SET_USABLE (cpu_features, CLFSH); > - CPU_FEATURE_SET_USABLE (cpu_features, MMX); > - CPU_FEATURE_SET_USABLE (cpu_features, FXSR); > - CPU_FEATURE_SET_USABLE (cpu_features, SSE); > - CPU_FEATURE_SET_USABLE (cpu_features, SSE2); > - CPU_FEATURE_SET_USABLE (cpu_features, HTT); > - CPU_FEATURE_SET_USABLE (cpu_features, BMI1); > - CPU_FEATURE_SET_USABLE (cpu_features, HLE); > - CPU_FEATURE_SET_USABLE (cpu_features, BMI2); > - CPU_FEATURE_SET_USABLE (cpu_features, ERMS); > - CPU_FEATURE_SET_USABLE (cpu_features, RDSEED); > - CPU_FEATURE_SET_USABLE (cpu_features, ADX); > - CPU_FEATURE_SET_USABLE (cpu_features, CLFLUSHOPT); > - CPU_FEATURE_SET_USABLE (cpu_features, CLWB); > - CPU_FEATURE_SET_USABLE (cpu_features, SHA); > - CPU_FEATURE_SET_USABLE (cpu_features, PREFETCHWT1); > - CPU_FEATURE_SET_USABLE (cpu_features, OSPKE); > - CPU_FEATURE_SET_USABLE (cpu_features, WAITPKG); > - CPU_FEATURE_SET_USABLE (cpu_features, GFNI); > - CPU_FEATURE_SET_USABLE (cpu_features, RDPID); > - CPU_FEATURE_SET_USABLE (cpu_features, RDRAND); > - CPU_FEATURE_SET_USABLE (cpu_features, CLDEMOTE); > - CPU_FEATURE_SET_USABLE (cpu_features, MOVDIRI); > - CPU_FEATURE_SET_USABLE (cpu_features, MOVDIR64B); > - CPU_FEATURE_SET_USABLE (cpu_features, FSRM); > - CPU_FEATURE_SET_USABLE (cpu_features, RTM_ALWAYS_ABORT); > - CPU_FEATURE_SET_USABLE (cpu_features, SERIALIZE); > - CPU_FEATURE_SET_USABLE (cpu_features, TSXLDTRK); > - CPU_FEATURE_SET_USABLE (cpu_features, LAHF64_SAHF64); > - CPU_FEATURE_SET_USABLE (cpu_features, LZCNT); > - CPU_FEATURE_SET_USABLE (cpu_features, SSE4A); > - CPU_FEATURE_SET_USABLE (cpu_features, PREFETCHW); > - CPU_FEATURE_SET_USABLE (cpu_features, TBM); > - CPU_FEATURE_SET_USABLE (cpu_features, RDTSCP); > - CPU_FEATURE_SET_USABLE (cpu_features, WBNOINVD); > - CPU_FEATURE_SET_USABLE (cpu_features, FZLRM); > - CPU_FEATURE_SET_USABLE (cpu_features, FSRS); > - CPU_FEATURE_SET_USABLE (cpu_features, FSRCS); > - CPU_FEATURE_SET_USABLE (cpu_features, PTWRITE); > + CPU_FEATURE_SET_ACTIVE (cpu_features, SSE3); > + CPU_FEATURE_SET_ACTIVE (cpu_features, PCLMULQDQ); > + CPU_FEATURE_SET_ACTIVE (cpu_features, SSSE3); > + CPU_FEATURE_SET_ACTIVE (cpu_features, CMPXCHG16B); > + CPU_FEATURE_SET_ACTIVE (cpu_features, SSE4_1); > + CPU_FEATURE_SET_ACTIVE (cpu_features, SSE4_2); > + CPU_FEATURE_SET_ACTIVE (cpu_features, MOVBE); > + CPU_FEATURE_SET_ACTIVE (cpu_features, POPCNT); > + CPU_FEATURE_SET_ACTIVE (cpu_features, AES); > + CPU_FEATURE_SET_ACTIVE (cpu_features, OSXSAVE); > + CPU_FEATURE_SET_ACTIVE (cpu_features, TSC); > + CPU_FEATURE_SET_ACTIVE (cpu_features, CX8); > + CPU_FEATURE_SET_ACTIVE (cpu_features, CMOV); > + CPU_FEATURE_SET_ACTIVE (cpu_features, CLFSH); > + CPU_FEATURE_SET_ACTIVE (cpu_features, MMX); > + CPU_FEATURE_SET_ACTIVE (cpu_features, FXSR); > + CPU_FEATURE_SET_ACTIVE (cpu_features, SSE); > + CPU_FEATURE_SET_ACTIVE (cpu_features, SSE2); > + CPU_FEATURE_SET_ACTIVE (cpu_features, HTT); > + CPU_FEATURE_SET_ACTIVE (cpu_features, BMI1); > + CPU_FEATURE_SET_ACTIVE (cpu_features, HLE); > + CPU_FEATURE_SET_ACTIVE (cpu_features, BMI2); > + CPU_FEATURE_SET_ACTIVE (cpu_features, ERMS); > + CPU_FEATURE_SET_ACTIVE (cpu_features, RDSEED); > + CPU_FEATURE_SET_ACTIVE (cpu_features, ADX); > + CPU_FEATURE_SET_ACTIVE (cpu_features, CLFLUSHOPT); > + CPU_FEATURE_SET_ACTIVE (cpu_features, CLWB); > + CPU_FEATURE_SET_ACTIVE (cpu_features, SHA); > + CPU_FEATURE_SET_ACTIVE (cpu_features, PREFETCHWT1); > + CPU_FEATURE_SET_ACTIVE (cpu_features, OSPKE); > + CPU_FEATURE_SET_ACTIVE (cpu_features, WAITPKG); > + CPU_FEATURE_SET_ACTIVE (cpu_features, GFNI); > + CPU_FEATURE_SET_ACTIVE (cpu_features, RDPID); > + CPU_FEATURE_SET_ACTIVE (cpu_features, RDRAND); > + CPU_FEATURE_SET_ACTIVE (cpu_features, CLDEMOTE); > + CPU_FEATURE_SET_ACTIVE (cpu_features, MOVDIRI); > + CPU_FEATURE_SET_ACTIVE (cpu_features, MOVDIR64B); > + CPU_FEATURE_SET_ACTIVE (cpu_features, FSRM); > + CPU_FEATURE_SET_ACTIVE (cpu_features, RTM_ALWAYS_ABORT); > + CPU_FEATURE_SET_ACTIVE (cpu_features, SERIALIZE); > + CPU_FEATURE_SET_ACTIVE (cpu_features, TSXLDTRK); > + CPU_FEATURE_SET_ACTIVE (cpu_features, LAHF64_SAHF64); > + CPU_FEATURE_SET_ACTIVE (cpu_features, LZCNT); > + CPU_FEATURE_SET_ACTIVE (cpu_features, SSE4A); > + CPU_FEATURE_SET_ACTIVE (cpu_features, PREFETCHW); > + CPU_FEATURE_SET_ACTIVE (cpu_features, TBM); > + CPU_FEATURE_SET_ACTIVE (cpu_features, RDTSCP); > + CPU_FEATURE_SET_ACTIVE (cpu_features, WBNOINVD); > + CPU_FEATURE_SET_ACTIVE (cpu_features, FZLRM); > + CPU_FEATURE_SET_ACTIVE (cpu_features, FSRS); > + CPU_FEATURE_SET_ACTIVE (cpu_features, FSRCS); > + CPU_FEATURE_SET_ACTIVE (cpu_features, PTWRITE); > > if (!CPU_FEATURES_CPU_P (cpu_features, RTM_ALWAYS_ABORT)) > - CPU_FEATURE_SET_USABLE (cpu_features, RTM); > + CPU_FEATURE_SET_ACTIVE (cpu_features, RTM); > > #if CET_ENABLED > - CPU_FEATURE_SET_USABLE (cpu_features, IBT); > - CPU_FEATURE_SET_USABLE (cpu_features, SHSTK); > + CPU_FEATURE_SET_ACTIVE (cpu_features, IBT); > + CPU_FEATURE_SET_ACTIVE (cpu_features, SHSTK); > #endif > > /* Can we call xgetbv? */ > @@ -131,17 +131,17 @@ update_usable (struct cpu_features *cpu_features) > |= bit_arch_AVX_Fast_Unaligned_Load; > } > /* Determine if AVX-VNNI is usable. */ > - CPU_FEATURE_SET_USABLE (cpu_features, AVX_VNNI); > + CPU_FEATURE_SET_ACTIVE (cpu_features, AVX_VNNI); > /* Determine if FMA is usable. */ > - CPU_FEATURE_SET_USABLE (cpu_features, FMA); > + CPU_FEATURE_SET_ACTIVE (cpu_features, FMA); > /* Determine if VAES is usable. */ > - CPU_FEATURE_SET_USABLE (cpu_features, VAES); > + CPU_FEATURE_SET_ACTIVE (cpu_features, VAES); > /* Determine if VPCLMULQDQ is usable. */ > - CPU_FEATURE_SET_USABLE (cpu_features, VPCLMULQDQ); > + CPU_FEATURE_SET_ACTIVE (cpu_features, VPCLMULQDQ); > /* Determine if XOP is usable. */ > - CPU_FEATURE_SET_USABLE (cpu_features, XOP); > + CPU_FEATURE_SET_ACTIVE (cpu_features, XOP); > /* Determine if F16C is usable. */ > - CPU_FEATURE_SET_USABLE (cpu_features, F16C); > + CPU_FEATURE_SET_ACTIVE (cpu_features, F16C); > } > > /* Check if OPMASK state, upper 256-bit of ZMM0-ZMM15 and > @@ -155,41 +155,41 @@ update_usable (struct cpu_features *cpu_features) > { > CPU_FEATURE_SET (cpu_features, AVX512F); > /* Determine if AVX512CD is usable. */ > - CPU_FEATURE_SET_USABLE (cpu_features, AVX512CD); > + CPU_FEATURE_SET_ACTIVE (cpu_features, AVX512CD); > /* Determine if AVX512ER is usable. */ > - CPU_FEATURE_SET_USABLE (cpu_features, AVX512ER); > + CPU_FEATURE_SET_ACTIVE (cpu_features, AVX512ER); > /* Determine if AVX512PF is usable. */ > - CPU_FEATURE_SET_USABLE (cpu_features, AVX512PF); > + CPU_FEATURE_SET_ACTIVE (cpu_features, AVX512PF); > /* Determine if AVX512VL is usable. */ > - CPU_FEATURE_SET_USABLE (cpu_features, AVX512VL); > + CPU_FEATURE_SET_ACTIVE (cpu_features, AVX512VL); > /* Determine if AVX512DQ is usable. */ > - CPU_FEATURE_SET_USABLE (cpu_features, AVX512DQ); > + CPU_FEATURE_SET_ACTIVE (cpu_features, AVX512DQ); > /* Determine if AVX512BW is usable. */ > - CPU_FEATURE_SET_USABLE (cpu_features, AVX512BW); > + CPU_FEATURE_SET_ACTIVE (cpu_features, AVX512BW); > /* Determine if AVX512_4FMAPS is usable. */ > - CPU_FEATURE_SET_USABLE (cpu_features, AVX512_4FMAPS); > + CPU_FEATURE_SET_ACTIVE (cpu_features, AVX512_4FMAPS); > /* Determine if AVX512_4VNNIW is usable. */ > - CPU_FEATURE_SET_USABLE (cpu_features, AVX512_4VNNIW); > + CPU_FEATURE_SET_ACTIVE (cpu_features, AVX512_4VNNIW); > /* Determine if AVX512_BITALG is usable. */ > - CPU_FEATURE_SET_USABLE (cpu_features, AVX512_BITALG); > + CPU_FEATURE_SET_ACTIVE (cpu_features, AVX512_BITALG); > /* Determine if AVX512_IFMA is usable. */ > - CPU_FEATURE_SET_USABLE (cpu_features, AVX512_IFMA); > + CPU_FEATURE_SET_ACTIVE (cpu_features, AVX512_IFMA); > /* Determine if AVX512_VBMI is usable. */ > - CPU_FEATURE_SET_USABLE (cpu_features, AVX512_VBMI); > + CPU_FEATURE_SET_ACTIVE (cpu_features, AVX512_VBMI); > /* Determine if AVX512_VBMI2 is usable. */ > - CPU_FEATURE_SET_USABLE (cpu_features, AVX512_VBMI2); > + CPU_FEATURE_SET_ACTIVE (cpu_features, AVX512_VBMI2); > /* Determine if is AVX512_VNNI usable. */ > - CPU_FEATURE_SET_USABLE (cpu_features, AVX512_VNNI); > + CPU_FEATURE_SET_ACTIVE (cpu_features, AVX512_VNNI); > /* Determine if AVX512_VPOPCNTDQ is usable. */ > - CPU_FEATURE_SET_USABLE (cpu_features, > + CPU_FEATURE_SET_ACTIVE (cpu_features, > AVX512_VPOPCNTDQ); > /* Determine if AVX512_VP2INTERSECT is usable. */ > - CPU_FEATURE_SET_USABLE (cpu_features, > + CPU_FEATURE_SET_ACTIVE (cpu_features, > AVX512_VP2INTERSECT); > /* Determine if AVX512_BF16 is usable. */ > - CPU_FEATURE_SET_USABLE (cpu_features, AVX512_BF16); > + CPU_FEATURE_SET_ACTIVE (cpu_features, AVX512_BF16); > /* Determine if AVX512_FP16 is usable. */ > - CPU_FEATURE_SET_USABLE (cpu_features, AVX512_FP16); > + CPU_FEATURE_SET_ACTIVE (cpu_features, AVX512_FP16); > } > } > } > @@ -199,19 +199,19 @@ update_usable (struct cpu_features *cpu_features) > == (bit_XTILECFG_state | bit_XTILEDATA_state)) > { > /* Determine if AMX_BF16 is usable. */ > - CPU_FEATURE_SET_USABLE (cpu_features, AMX_BF16); > + CPU_FEATURE_SET_ACTIVE (cpu_features, AMX_BF16); > /* Determine if AMX_TILE is usable. */ > - CPU_FEATURE_SET_USABLE (cpu_features, AMX_TILE); > + CPU_FEATURE_SET_ACTIVE (cpu_features, AMX_TILE); > /* Determine if AMX_INT8 is usable. */ > - CPU_FEATURE_SET_USABLE (cpu_features, AMX_INT8); > + CPU_FEATURE_SET_ACTIVE (cpu_features, AMX_INT8); > } > > /* These features are usable only when OSXSAVE is enabled. */ > CPU_FEATURE_SET (cpu_features, XSAVE); > - CPU_FEATURE_SET_USABLE (cpu_features, XSAVEOPT); > - CPU_FEATURE_SET_USABLE (cpu_features, XSAVEC); > - CPU_FEATURE_SET_USABLE (cpu_features, XGETBV_ECX_1); > - CPU_FEATURE_SET_USABLE (cpu_features, XFD); > + CPU_FEATURE_SET_ACTIVE (cpu_features, XSAVEOPT); > + CPU_FEATURE_SET_ACTIVE (cpu_features, XSAVEC); > + CPU_FEATURE_SET_ACTIVE (cpu_features, XGETBV_ECX_1); > + CPU_FEATURE_SET_ACTIVE (cpu_features, XFD); > > /* For _dl_runtime_resolve, set xsave_state_size to xsave area > size + integer register save size and align it to 64 bytes. */ > @@ -289,8 +289,8 @@ update_usable (struct cpu_features *cpu_features) > if (CPU_FEATURES_CPU_P (cpu_features, AESKLE)) > { > CPU_FEATURE_SET (cpu_features, AESKLE); > - CPU_FEATURE_SET_USABLE (cpu_features, KL); > - CPU_FEATURE_SET_USABLE (cpu_features, WIDE_KL); > + CPU_FEATURE_SET_ACTIVE (cpu_features, KL); > + CPU_FEATURE_SET_ACTIVE (cpu_features, WIDE_KL); > } > > cpu_features->isa_1 = get_isa_level (cpu_features); > @@ -426,7 +426,7 @@ init_cpu_features (struct cpu_features *cpu_features) > > get_extended_indices (cpu_features); > > - update_usable (cpu_features); > + update_active (cpu_features); > > if (family == 0x06) > { > @@ -569,7 +569,7 @@ init_cpu_features (struct cpu_features *cpu_features) > > get_extended_indices (cpu_features); > > - update_usable (cpu_features); > + update_active (cpu_features); > > ecx = cpu_features->features[CPUID_INDEX_1].cpuid.ecx; > > @@ -577,7 +577,7 @@ init_cpu_features (struct cpu_features *cpu_features) > { > /* Since the FMA4 bit is in CPUID_INDEX_80000001 and > FMA4 requires AVX, determine if FMA4 is usable here. */ > - CPU_FEATURE_SET_USABLE (cpu_features, FMA4); > + CPU_FEATURE_SET_ACTIVE (cpu_features, FMA4); > } > > if (family == 0x15) > @@ -608,7 +608,7 @@ init_cpu_features (struct cpu_features *cpu_features) > > get_extended_indices (cpu_features); > > - update_usable (cpu_features); > + update_active (cpu_features); > > model += extended_model; > if (family == 0x6) > @@ -652,7 +652,7 @@ init_cpu_features (struct cpu_features *cpu_features) > { > kind = arch_kind_other; > get_common_indices (cpu_features, NULL, NULL, NULL, NULL); > - update_usable (cpu_features); > + update_active (cpu_features); > } > > /* Support i586 if CX8 is available. */ > diff --git a/sysdeps/x86/dl-diagnostics-cpu.c b/sysdeps/x86/dl-diagnostics-cpu.c > index 5d04527ad1..715a9dd81f 100644 > --- a/sysdeps/x86/dl-diagnostics-cpu.c > +++ b/sysdeps/x86/dl-diagnostics-cpu.c > @@ -62,8 +62,8 @@ _dl_diagnostics_cpu (void) > cpu_features->features[index].cpuid_array[reg]); > for (unsigned int reg = 0; reg < 4; ++reg) > print_cpu_feature_internal > - (index, "usable", reg, > - cpu_features->features[index].usable_array[reg]); > + (index, "active", reg, > + cpu_features->features[index].active_array[reg]); > } > > /* The preferred indicators are not part of the ABI and need to be > diff --git a/sysdeps/x86/include/cpu-features.h b/sysdeps/x86/include/cpu-features.h > index 59e01df543..fc589e98b9 100644 > --- a/sysdeps/x86/include/cpu-features.h > +++ b/sysdeps/x86/include/cpu-features.h > @@ -43,11 +43,11 @@ enum > > /* Only used directly in cpu-features.c. */ > #define CPU_FEATURE_SET(ptr, name) \ > - ptr->features[index_cpu_##name].usable.reg_##name |= bit_cpu_##name; > + ptr->features[index_cpu_##name].active.reg_##name |= bit_cpu_##name; > #define CPU_FEATURE_UNSET(ptr, name) \ > - ptr->features[index_cpu_##name].usable.reg_##name &= ~bit_cpu_##name; > -#define CPU_FEATURE_SET_USABLE(ptr, name) \ > - ptr->features[index_cpu_##name].usable.reg_##name \ > + ptr->features[index_cpu_##name].active.reg_##name &= ~bit_cpu_##name; > +#define CPU_FEATURE_SET_ACTIVE(ptr, name) \ > + ptr->features[index_cpu_##name].active.reg_##name \ > |= ptr->features[index_cpu_##name].cpuid.reg_##name & bit_cpu_##name; > #define CPU_FEATURE_PREFERRED_P(ptr, name) \ > ((ptr->preferred[index_arch_##name] & bit_arch_##name) != 0) > @@ -55,10 +55,14 @@ enum > #define CPU_FEATURE_CHECK_P(ptr, name, check) \ > ((ptr->features[index_cpu_##name].check.reg_##name \ > & bit_cpu_##name) != 0) > -#define CPU_FEATURE_CPU_P(ptr, name) \ > +#define CPU_FEATURE_PRESENT_P(ptr, name) \ > CPU_FEATURE_CHECK_P (ptr, name, cpuid) > +#define CPU_FEATURE_ACTIVE_P(ptr, name) \ > + CPU_FEATURE_CHECK_P (ptr, name, active) > +#define CPU_FEATURE_CPU_P(ptr, name) \ > + CPU_FEATURE_PRESENT_P (ptr, name) > #define CPU_FEATURE_USABLE_P(ptr, name) \ > - CPU_FEATURE_CHECK_P (ptr, name, usable) > + CPU_FEATURE_ACTIVE_P (ptr, name) > > /* HAS_CPU_FEATURE evaluates to true if CPU supports the feature. */ > #define HAS_CPU_FEATURE(name) \ > @@ -846,8 +850,8 @@ struct cpuid_feature_internal > }; > union > { > - unsigned int usable_array[4]; > - struct cpuid_registers usable; > + unsigned int active_array[4]; > + struct cpuid_registers active; > }; > }; > > diff --git a/sysdeps/x86/sys/platform/x86.h b/sysdeps/x86/sys/platform/x86.h > index e930219944..2d119f312f 100644 > --- a/sysdeps/x86/sys/platform/x86.h > +++ b/sysdeps/x86/sys/platform/x86.h > @@ -30,7 +30,7 @@ extern const struct cpuid_feature *__x86_get_cpuid_feature_leaf (unsigned int) > __attribute__ ((pure)); > > static __inline__ _Bool > -x86_cpu_has_feature (unsigned int __index) > +x86_cpu_present (unsigned int __index) > { > const struct cpuid_feature *__ptr = __x86_get_cpuid_feature_leaf > (__index / (8 * sizeof (unsigned int) * 4)); > @@ -43,7 +43,7 @@ x86_cpu_has_feature (unsigned int __index) > } > > static __inline__ _Bool > -x86_cpu_is_usable (unsigned int __index) > +x86_cpu_active (unsigned int __index) > { > const struct cpuid_feature *__ptr = __x86_get_cpuid_feature_leaf > (__index / (8 * sizeof (unsigned int) * 4)); > @@ -52,13 +52,13 @@ x86_cpu_is_usable (unsigned int __index) > unsigned int __bit = __reg & (8 * sizeof (unsigned int) - 1); > __reg /= 8 * sizeof (unsigned int); > > - return __ptr->usable_array[__reg] & (1 << __bit); > + return __ptr->active_array[__reg] & (1 << __bit); > } > > -/* HAS_CPU_FEATURE evaluates to true if CPU supports the feature. */ > -#define HAS_CPU_FEATURE(name) x86_cpu_has_feature (x86_cpu_##name) > -/* CPU_FEATURE_USABLE evaluates to true if the feature is usable. */ > -#define CPU_FEATURE_USABLE(name) x86_cpu_is_usable (x86_cpu_##name) > +/* CPU_FEATURE_PRESENT evaluates to true if CPU supports the feature. */ > +#define CPU_FEATURE_PRESENT(name) x86_cpu_present (x86_cpu_##name) > +/* CPU_FEATURE_ACTIVE evaluates to true if the feature is active. */ > +#define CPU_FEATURE_ACTIVE(name) x86_cpu_active (x86_cpu_##name) > > __END_DECLS > > diff --git a/sysdeps/x86/tst-cet-legacy-10.c b/sysdeps/x86/tst-cet-legacy-10.c > index a618557f45..cee4013c92 100644 > --- a/sysdeps/x86/tst-cet-legacy-10.c > +++ b/sysdeps/x86/tst-cet-legacy-10.c > @@ -1,4 +1,4 @@ > -/* Check CPU_FEATURE_USABLE on IBT and SHSTK. > +/* Check CPU_FEATURE_ACTIVE on IBT and SHSTK. > Copyright (C) 2021 Free Software Foundation, Inc. > This file is part of the GNU C Library. > > @@ -21,19 +21,19 @@ > #include > #include > > -/* Check that CPU_FEATURE_USABLE on IBT and SHSTK matches _get_ssp. */ > +/* Check that CPU_FEATURE_ACTIVE on IBT and SHSTK matches _get_ssp. */ > > static int > do_test (void) > { > if (_get_ssp () != 0) > { > - if (CPU_FEATURE_USABLE (IBT) && CPU_FEATURE_USABLE (SHSTK)) > + if (CPU_FEATURE_ACTIVE (IBT) && CPU_FEATURE_ACTIVE (SHSTK)) > return EXIT_SUCCESS; > } > else > { > - if (!CPU_FEATURE_USABLE (IBT) && !CPU_FEATURE_USABLE (SHSTK)) > + if (!CPU_FEATURE_ACTIVE (IBT) && !CPU_FEATURE_ACTIVE (SHSTK)) > return EXIT_SUCCESS; > } > > diff --git a/sysdeps/x86/tst-cpu-features-cpuinfo.c b/sysdeps/x86/tst-cpu-features-cpuinfo.c > index f457e8677b..62b70adf3f 100644 > --- a/sysdeps/x86/tst-cpu-features-cpuinfo.c > +++ b/sysdeps/x86/tst-cpu-features-cpuinfo.c > @@ -55,7 +55,7 @@ get_cpuinfo (void) > > int > check_proc (const char *proc_name, const char *search_name, int flag, > - int usable, const char *name) > + int active, const char *name) > { > int found = 0; > > @@ -79,7 +79,7 @@ check_proc (const char *proc_name, const char *search_name, int flag, > > if (found != flag) > { > - if (found || usable) > + if (found || active) > printf (" *** failure ***\n"); > else > { > diff --git a/sysdeps/x86/tst-cpu-features-supports.c b/sysdeps/x86/tst-cpu-features-supports.c > index 867ea6b8e8..9d76e6bd3f 100644 > --- a/sysdeps/x86/tst-cpu-features-supports.c > +++ b/sysdeps/x86/tst-cpu-features-supports.c > @@ -20,15 +20,15 @@ > #include > > int > -check_supports (int supports, int usable, const char *supports_name, > +check_supports (int supports, int active, const char *supports_name, > const char *name) > { > printf ("Checking %s:\n", name); > - printf (" %s: %d\n", name, usable); > + printf (" %s: %d\n", name, active); > printf (" __builtin_cpu_supports (%s): %d\n", > supports_name, supports); > > - if ((supports != 0) != (usable != 0)) > + if ((supports != 0) != (active != 0)) > { > printf (" *** failure ***\n"); > return 1; > @@ -37,15 +37,15 @@ check_supports (int supports, int usable, const char *supports_name, > return 0; > } > > -#define CHECK_SUPPORTS(str, name) \ > +#define CHECK_FEATURE_ACTIVE(str, name) \ > check_supports (__builtin_cpu_supports (#str), \ > - CPU_FEATURE_USABLE (name), \ > - #str, "CPU_FEATURE_USABLE (" #name ")"); > + CPU_FEATURE_ACTIVE (name), \ > + #str, "CPU_FEATURE_ACTIVE (" #name ")"); > > -#define CHECK_CPU_SUPPORTS(str, name) \ > +#define CHECK_FEATURE_PRESENT(str, name) \ > check_supports (__builtin_cpu_supports (#str), \ > - HAS_CPU_FEATURE (name), \ > - #str, "HAS_CPU_FEATURE (" #name ")"); > + CPU_FEATURE_PRESENT (name), \ > + #str, "CPU_FEATURE_PRESENT (" #name ")"); > > static int > do_test (int argc, char **argv) > @@ -53,140 +53,140 @@ do_test (int argc, char **argv) > int fails = 0; > > #if __GNUC_PREREQ (11, 0) > - fails += CHECK_SUPPORTS (adx, ADX); > + fails += CHECK_FEATURE_ACTIVE (adx, ADX); > #endif > #if __GNUC_PREREQ (6, 0) > - fails += CHECK_SUPPORTS (aes, AES); > + fails += CHECK_FEATURE_ACTIVE (aes, AES); > #endif > #if __GNUC_PREREQ (11, 1) > - fails += CHECK_SUPPORTS (amx-bf16, AMX_BF16); > - fails += CHECK_SUPPORTS (amx-int8, AMX_INT8); > - fails += CHECK_SUPPORTS (amx-tile, AMX_TILE); > + fails += CHECK_FEATURE_ACTIVE (amx-bf16, AMX_BF16); > + fails += CHECK_FEATURE_ACTIVE (amx-int8, AMX_INT8); > + fails += CHECK_FEATURE_ACTIVE (amx-tile, AMX_TILE); > #endif > - fails += CHECK_SUPPORTS (avx, AVX); > - fails += CHECK_SUPPORTS (avx2, AVX2); > + fails += CHECK_FEATURE_ACTIVE (avx, AVX); > + fails += CHECK_FEATURE_ACTIVE (avx2, AVX2); > #if __GNUC_PREREQ (7, 0) > - fails += CHECK_SUPPORTS (avx5124fmaps, AVX512_4FMAPS); > - fails += CHECK_SUPPORTS (avx5124vnniw, AVX512_4VNNIW); > + fails += CHECK_FEATURE_ACTIVE (avx5124fmaps, AVX512_4FMAPS); > + fails += CHECK_FEATURE_ACTIVE (avx5124vnniw, AVX512_4VNNIW); > #endif > #if __GNUC_PREREQ (10, 0) > - fails += CHECK_SUPPORTS (avx512bf16, AVX512_BF16); > + fails += CHECK_FEATURE_ACTIVE (avx512bf16, AVX512_BF16); > #endif > #if __GNUC_PREREQ (8, 0) > - fails += CHECK_SUPPORTS (avx512bitalg, AVX512_BITALG); > + fails += CHECK_FEATURE_ACTIVE (avx512bitalg, AVX512_BITALG); > #endif > #if __GNUC_PREREQ (6, 0) > - fails += CHECK_SUPPORTS (avx512ifma, AVX512_IFMA); > - fails += CHECK_SUPPORTS (avx512vbmi, AVX512_VBMI); > + fails += CHECK_FEATURE_ACTIVE (avx512ifma, AVX512_IFMA); > + fails += CHECK_FEATURE_ACTIVE (avx512vbmi, AVX512_VBMI); > #endif > #if __GNUC_PREREQ (8, 0) > - fails += CHECK_SUPPORTS (avx512vbmi2, AVX512_VBMI2); > - fails += CHECK_SUPPORTS (avx512vnni, AVX512_VNNI); > + fails += CHECK_FEATURE_ACTIVE (avx512vbmi2, AVX512_VBMI2); > + fails += CHECK_FEATURE_ACTIVE (avx512vnni, AVX512_VNNI); > #endif > #if __GNUC_PREREQ (10, 0) > - fails += CHECK_SUPPORTS (avx512vp2intersect, AVX512_VP2INTERSECT); > + fails += CHECK_FEATURE_ACTIVE (avx512vp2intersect, AVX512_VP2INTERSECT); > #endif > #if __GNUC_PREREQ (7, 0) > - fails += CHECK_SUPPORTS (avx512vpopcntdq, AVX512_VPOPCNTDQ); > + fails += CHECK_FEATURE_ACTIVE (avx512vpopcntdq, AVX512_VPOPCNTDQ); > #endif > #if __GNUC_PREREQ (6, 0) > - fails += CHECK_SUPPORTS (avx512bw, AVX512BW); > - fails += CHECK_SUPPORTS (avx512cd, AVX512CD); > - fails += CHECK_SUPPORTS (avx512er, AVX512ER); > - fails += CHECK_SUPPORTS (avx512dq, AVX512DQ); > + fails += CHECK_FEATURE_ACTIVE (avx512bw, AVX512BW); > + fails += CHECK_FEATURE_ACTIVE (avx512cd, AVX512CD); > + fails += CHECK_FEATURE_ACTIVE (avx512er, AVX512ER); > + fails += CHECK_FEATURE_ACTIVE (avx512dq, AVX512DQ); > #endif > #if __GNUC_PREREQ (5, 0) > - fails += CHECK_SUPPORTS (avx512f, AVX512F); > + fails += CHECK_FEATURE_ACTIVE (avx512f, AVX512F); > #endif > #if __GNUC_PREREQ (6, 0) > - fails += CHECK_SUPPORTS (avx512pf, AVX512PF); > - fails += CHECK_SUPPORTS (avx512vl, AVX512VL); > + fails += CHECK_FEATURE_ACTIVE (avx512pf, AVX512PF); > + fails += CHECK_FEATURE_ACTIVE (avx512vl, AVX512VL); > #endif > #if __GNUC_PREREQ (5, 0) > - fails += CHECK_SUPPORTS (bmi, BMI1); > - fails += CHECK_SUPPORTS (bmi2, BMI2); > + fails += CHECK_FEATURE_ACTIVE (bmi, BMI1); > + fails += CHECK_FEATURE_ACTIVE (bmi2, BMI2); > #endif > #if __GNUC_PREREQ (11, 0) > - fails += CHECK_SUPPORTS (cldemote, CLDEMOTE); > - fails += CHECK_SUPPORTS (clflushopt, CLFLUSHOPT); > - fails += CHECK_SUPPORTS (clwb, CLWB); > + fails += CHECK_FEATURE_ACTIVE (cldemote, CLDEMOTE); > + fails += CHECK_FEATURE_ACTIVE (clflushopt, CLFLUSHOPT); > + fails += CHECK_FEATURE_ACTIVE (clwb, CLWB); > #endif > - fails += CHECK_SUPPORTS (cmov, CMOV); > + fails += CHECK_FEATURE_ACTIVE (cmov, CMOV); > #if __GNUC_PREREQ (11, 0) > - fails += CHECK_SUPPORTS (cmpxchg16b, CMPXCHG16B); > - fails += CHECK_SUPPORTS (cmpxchg8b, CX8); > - fails += CHECK_SUPPORTS (enqcmd, ENQCMD); > - fails += CHECK_SUPPORTS (f16c, F16C); > + fails += CHECK_FEATURE_ACTIVE (cmpxchg16b, CMPXCHG16B); > + fails += CHECK_FEATURE_ACTIVE (cmpxchg8b, CX8); > + fails += CHECK_FEATURE_ACTIVE (enqcmd, ENQCMD); > + fails += CHECK_FEATURE_ACTIVE (f16c, F16C); > #endif > #if __GNUC_PREREQ (4, 9) > - fails += CHECK_SUPPORTS (fma, FMA); > - fails += CHECK_SUPPORTS (fma4, FMA4); > + fails += CHECK_FEATURE_ACTIVE (fma, FMA); > + fails += CHECK_FEATURE_ACTIVE (fma4, FMA4); > #endif > #if __GNUC_PREREQ (11, 0) > - fails += CHECK_CPU_SUPPORTS (fsgsbase, FSGSBASE); > - fails += CHECK_SUPPORTS (fxsave, FXSR); > + fails += CHECK_FEATURE_PRESENT (fsgsbase, FSGSBASE); > + fails += CHECK_FEATURE_ACTIVE (fxsave, FXSR); > #endif > #if __GNUC_PREREQ (8, 0) > - fails += CHECK_SUPPORTS (gfni, GFNI); > + fails += CHECK_FEATURE_ACTIVE (gfni, GFNI); > #endif > #if __GNUC_PREREQ (11, 0) > - fails += CHECK_SUPPORTS (hle, HLE); > - fails += CHECK_CPU_SUPPORTS (ibt, IBT); > - fails += CHECK_SUPPORTS (lahf_lm, LAHF64_SAHF64); > - fails += CHECK_CPU_SUPPORTS (lm, LM); > - fails += CHECK_SUPPORTS (lwp, LWP); > - fails += CHECK_SUPPORTS (lzcnt, LZCNT); > -#endif > - fails += CHECK_SUPPORTS (mmx, MMX); > + fails += CHECK_FEATURE_ACTIVE (hle, HLE); > + fails += CHECK_FEATURE_PRESENT (ibt, IBT); > + fails += CHECK_FEATURE_ACTIVE (lahf_lm, LAHF64_SAHF64); > + fails += CHECK_FEATURE_PRESENT (lm, LM); > + fails += CHECK_FEATURE_ACTIVE (lwp, LWP); > + fails += CHECK_FEATURE_ACTIVE (lzcnt, LZCNT); > +#endif > + fails += CHECK_FEATURE_ACTIVE (mmx, MMX); > #if __GNUC_PREREQ (11, 0) > - fails += CHECK_SUPPORTS (movbe, MOVBE); > - fails += CHECK_SUPPORTS (movdiri, MOVDIRI); > - fails += CHECK_SUPPORTS (movdir64b, MOVDIR64B); > - fails += CHECK_SUPPORTS (osxsave, OSXSAVE); > - fails += CHECK_SUPPORTS (pconfig, PCONFIG); > - fails += CHECK_SUPPORTS (pku, PKU); > -#endif > - fails += CHECK_SUPPORTS (popcnt, POPCNT); > + fails += CHECK_FEATURE_ACTIVE (movbe, MOVBE); > + fails += CHECK_FEATURE_ACTIVE (movdiri, MOVDIRI); > + fails += CHECK_FEATURE_ACTIVE (movdir64b, MOVDIR64B); > + fails += CHECK_FEATURE_ACTIVE (osxsave, OSXSAVE); > + fails += CHECK_FEATURE_ACTIVE (pconfig, PCONFIG); > + fails += CHECK_FEATURE_ACTIVE (pku, PKU); > +#endif > + fails += CHECK_FEATURE_ACTIVE (popcnt, POPCNT); > #if __GNUC_PREREQ (11, 0) > - fails += CHECK_SUPPORTS (prefetchwt1, PREFETCHWT1); > - fails += CHECK_SUPPORTS (ptwrite, PTWRITE); > - fails += CHECK_SUPPORTS (rdpid, RDPID); > - fails += CHECK_SUPPORTS (rdrnd, RDRAND); > - fails += CHECK_SUPPORTS (rdseed, RDSEED); > - fails += CHECK_CPU_SUPPORTS (rtm, RTM); > - fails += CHECK_SUPPORTS (serialize, SERIALIZE); > - fails += CHECK_SUPPORTS (sha, SHA); > - fails += CHECK_CPU_SUPPORTS (shstk, SHSTK); > -#endif > - fails += CHECK_SUPPORTS (sse, SSE); > - fails += CHECK_SUPPORTS (sse2, SSE2); > - fails += CHECK_SUPPORTS (sse3, SSE3); > - fails += CHECK_SUPPORTS (sse4.1, SSE4_1); > - fails += CHECK_SUPPORTS (sse4.2, SSE4_2); > + fails += CHECK_FEATURE_ACTIVE (prefetchwt1, PREFETCHWT1); > + fails += CHECK_FEATURE_ACTIVE (ptwrite, PTWRITE); > + fails += CHECK_FEATURE_ACTIVE (rdpid, RDPID); > + fails += CHECK_FEATURE_ACTIVE (rdrnd, RDRAND); > + fails += CHECK_FEATURE_ACTIVE (rdseed, RDSEED); > + fails += CHECK_FEATURE_PRESENT (rtm, RTM); > + fails += CHECK_FEATURE_ACTIVE (serialize, SERIALIZE); > + fails += CHECK_FEATURE_ACTIVE (sha, SHA); > + fails += CHECK_FEATURE_PRESENT (shstk, SHSTK); > +#endif > + fails += CHECK_FEATURE_ACTIVE (sse, SSE); > + fails += CHECK_FEATURE_ACTIVE (sse2, SSE2); > + fails += CHECK_FEATURE_ACTIVE (sse3, SSE3); > + fails += CHECK_FEATURE_ACTIVE (sse4.1, SSE4_1); > + fails += CHECK_FEATURE_ACTIVE (sse4.2, SSE4_2); > #if __GNUC_PREREQ (4, 9) > - fails += CHECK_SUPPORTS (sse4a, SSE4A); > + fails += CHECK_FEATURE_ACTIVE (sse4a, SSE4A); > #endif > - fails += CHECK_SUPPORTS (ssse3, SSSE3); > + fails += CHECK_FEATURE_ACTIVE (ssse3, SSSE3); > #if __GNUC_PREREQ (11, 0) > - fails += CHECK_SUPPORTS (tbm, TBM); > - fails += CHECK_SUPPORTS (tsxldtrk, TSXLDTRK); > - fails += CHECK_SUPPORTS (vaes, VAES); > + fails += CHECK_FEATURE_ACTIVE (tbm, TBM); > + fails += CHECK_FEATURE_ACTIVE (tsxldtrk, TSXLDTRK); > + fails += CHECK_FEATURE_ACTIVE (vaes, VAES); > #endif > #if __GNUC_PREREQ (8, 0) > - fails += CHECK_SUPPORTS (vpclmulqdq, VPCLMULQDQ); > + fails += CHECK_FEATURE_ACTIVE (vpclmulqdq, VPCLMULQDQ); > #endif > #if __GNUC_PREREQ (11, 0) > - fails += CHECK_SUPPORTS (waitpkg, WAITPKG); > - fails += CHECK_SUPPORTS (wbnoinvd, WBNOINVD); > + fails += CHECK_FEATURE_ACTIVE (waitpkg, WAITPKG); > + fails += CHECK_FEATURE_ACTIVE (wbnoinvd, WBNOINVD); > #endif > #if __GNUC_PREREQ (4, 9) > - fails += CHECK_SUPPORTS (xop, XOP); > + fails += CHECK_FEATURE_ACTIVE (xop, XOP); > #endif > #if __GNUC_PREREQ (11, 0) > - fails += CHECK_SUPPORTS (xsave, XSAVE); > - fails += CHECK_SUPPORTS (xsavec, XSAVEC); > - fails += CHECK_SUPPORTS (xsaveopt, XSAVEOPT); > - fails += CHECK_CPU_SUPPORTS (xsaves, XSAVES); > + fails += CHECK_FEATURE_ACTIVE (xsave, XSAVE); > + fails += CHECK_FEATURE_ACTIVE (xsavec, XSAVEC); > + fails += CHECK_FEATURE_ACTIVE (xsaveopt, XSAVEOPT); > + fails += CHECK_FEATURE_PRESENT (xsaves, XSAVES); > #endif > > printf ("%d differences between __builtin_cpu_supports and glibc code.\n", > diff --git a/sysdeps/x86/tst-get-cpu-features.c b/sysdeps/x86/tst-get-cpu-features.c > index 11fa3054b9..b833811e8a 100644 > --- a/sysdeps/x86/tst-get-cpu-features.c > +++ b/sysdeps/x86/tst-get-cpu-features.c > @@ -21,353 +21,353 @@ > #include > #include > > -#define CHECK_CPU_FEATURE(name) \ > - { \ > - if (HAS_CPU_FEATURE (name)) \ > - printf (" " #name "\n"); \ > +#define CHECK_CPU_FEATURE_PRESENT(name) \ > + { \ > + if (CPU_FEATURE_PRESENT (name)) \ > + printf (" " #name "\n"); \ > } > > -#define CHECK_CPU_FEATURE_USABLE(name) \ > - { \ > - if (CPU_FEATURE_USABLE(name)) \ > - printf (" " #name "\n"); \ > +#define CHECK_CPU_FEATURE_ACTIVE(name) \ > + { \ > + if (CPU_FEATURE_ACTIVE(name)) \ > + printf (" " #name "\n"); \ > } > > static int > do_test (void) > { > #ifdef __SSE2__ > - TEST_VERIFY_EXIT (HAS_CPU_FEATURE (SSE2)); > + TEST_VERIFY_EXIT (CPU_FEATURE_PRESENT (SSE2)); > #endif > > printf ("CPU features:\n"); > - CHECK_CPU_FEATURE (SSE3); > - CHECK_CPU_FEATURE (PCLMULQDQ); > - CHECK_CPU_FEATURE (DTES64); > - CHECK_CPU_FEATURE (MONITOR); > - CHECK_CPU_FEATURE (DS_CPL); > - CHECK_CPU_FEATURE (VMX); > - CHECK_CPU_FEATURE (SMX); > - CHECK_CPU_FEATURE (EIST); > - CHECK_CPU_FEATURE (TM2); > - CHECK_CPU_FEATURE (SSSE3); > - CHECK_CPU_FEATURE (CNXT_ID); > - CHECK_CPU_FEATURE (SDBG); > - CHECK_CPU_FEATURE (FMA); > - CHECK_CPU_FEATURE (CMPXCHG16B); > - CHECK_CPU_FEATURE (XTPRUPDCTRL); > - CHECK_CPU_FEATURE (PDCM); > - CHECK_CPU_FEATURE (PCID); > - CHECK_CPU_FEATURE (DCA); > - CHECK_CPU_FEATURE (SSE4_1); > - CHECK_CPU_FEATURE (SSE4_2); > - CHECK_CPU_FEATURE (X2APIC); > - CHECK_CPU_FEATURE (MOVBE); > - CHECK_CPU_FEATURE (POPCNT); > - CHECK_CPU_FEATURE (TSC_DEADLINE); > - CHECK_CPU_FEATURE (AES); > - CHECK_CPU_FEATURE (XSAVE); > - CHECK_CPU_FEATURE (OSXSAVE); > - CHECK_CPU_FEATURE (AVX); > - CHECK_CPU_FEATURE (F16C); > - CHECK_CPU_FEATURE (RDRAND); > - CHECK_CPU_FEATURE (FPU); > - CHECK_CPU_FEATURE (VME); > - CHECK_CPU_FEATURE (DE); > - CHECK_CPU_FEATURE (PSE); > - CHECK_CPU_FEATURE (TSC); > - CHECK_CPU_FEATURE (MSR); > - CHECK_CPU_FEATURE (PAE); > - CHECK_CPU_FEATURE (MCE); > - CHECK_CPU_FEATURE (CX8); > - CHECK_CPU_FEATURE (APIC); > - CHECK_CPU_FEATURE (SEP); > - CHECK_CPU_FEATURE (MTRR); > - CHECK_CPU_FEATURE (PGE); > - CHECK_CPU_FEATURE (MCA); > - CHECK_CPU_FEATURE (CMOV); > - CHECK_CPU_FEATURE (PAT); > - CHECK_CPU_FEATURE (PSE_36); > - CHECK_CPU_FEATURE (PSN); > - CHECK_CPU_FEATURE (CLFSH); > - CHECK_CPU_FEATURE (DS); > - CHECK_CPU_FEATURE (ACPI); > - CHECK_CPU_FEATURE (MMX); > - CHECK_CPU_FEATURE (FXSR); > - CHECK_CPU_FEATURE (SSE); > - CHECK_CPU_FEATURE (SSE2); > - CHECK_CPU_FEATURE (SS); > - CHECK_CPU_FEATURE (HTT); > - CHECK_CPU_FEATURE (TM); > - CHECK_CPU_FEATURE (PBE); > - CHECK_CPU_FEATURE (FSGSBASE); > - CHECK_CPU_FEATURE (TSC_ADJUST); > - CHECK_CPU_FEATURE (SGX); > - CHECK_CPU_FEATURE (BMI1); > - CHECK_CPU_FEATURE (HLE); > - CHECK_CPU_FEATURE (AVX2); > - CHECK_CPU_FEATURE (SMEP); > - CHECK_CPU_FEATURE (BMI2); > - CHECK_CPU_FEATURE (ERMS); > - CHECK_CPU_FEATURE (INVPCID); > - CHECK_CPU_FEATURE (RTM); > - CHECK_CPU_FEATURE (RDT_M); > - CHECK_CPU_FEATURE (DEPR_FPU_CS_DS); > - CHECK_CPU_FEATURE (MPX); > - CHECK_CPU_FEATURE (RDT_A); > - CHECK_CPU_FEATURE (AVX512F); > - CHECK_CPU_FEATURE (AVX512DQ); > - CHECK_CPU_FEATURE (RDSEED); > - CHECK_CPU_FEATURE (ADX); > - CHECK_CPU_FEATURE (SMAP); > - CHECK_CPU_FEATURE (AVX512_IFMA); > - CHECK_CPU_FEATURE (CLFLUSHOPT); > - CHECK_CPU_FEATURE (CLWB); > - CHECK_CPU_FEATURE (TRACE); > - CHECK_CPU_FEATURE (AVX512PF); > - CHECK_CPU_FEATURE (AVX512ER); > - CHECK_CPU_FEATURE (AVX512CD); > - CHECK_CPU_FEATURE (SHA); > - CHECK_CPU_FEATURE (AVX512BW); > - CHECK_CPU_FEATURE (AVX512VL); > - CHECK_CPU_FEATURE (PREFETCHWT1); > - CHECK_CPU_FEATURE (AVX512_VBMI); > - CHECK_CPU_FEATURE (UMIP); > - CHECK_CPU_FEATURE (PKU); > - CHECK_CPU_FEATURE (OSPKE); > - CHECK_CPU_FEATURE (WAITPKG); > - CHECK_CPU_FEATURE (AVX512_VBMI2); > - CHECK_CPU_FEATURE (SHSTK); > - CHECK_CPU_FEATURE (GFNI); > - CHECK_CPU_FEATURE (VAES); > - CHECK_CPU_FEATURE (VPCLMULQDQ); > - CHECK_CPU_FEATURE (AVX512_VNNI); > - CHECK_CPU_FEATURE (AVX512_BITALG); > - CHECK_CPU_FEATURE (AVX512_VPOPCNTDQ); > - CHECK_CPU_FEATURE (RDPID); > - CHECK_CPU_FEATURE (KL); > - CHECK_CPU_FEATURE (CLDEMOTE); > - CHECK_CPU_FEATURE (MOVDIRI); > - CHECK_CPU_FEATURE (MOVDIR64B); > - CHECK_CPU_FEATURE (ENQCMD); > - CHECK_CPU_FEATURE (SGX_LC); > - CHECK_CPU_FEATURE (PKS); > - CHECK_CPU_FEATURE (AVX512_4VNNIW); > - CHECK_CPU_FEATURE (AVX512_4FMAPS); > - CHECK_CPU_FEATURE (FSRM); > - CHECK_CPU_FEATURE (UINTR); > - CHECK_CPU_FEATURE (AVX512_VP2INTERSECT); > - CHECK_CPU_FEATURE (MD_CLEAR); > - CHECK_CPU_FEATURE (RTM_ALWAYS_ABORT); > - CHECK_CPU_FEATURE (SERIALIZE); > - CHECK_CPU_FEATURE (HYBRID); > - CHECK_CPU_FEATURE (TSXLDTRK); > - CHECK_CPU_FEATURE (PCONFIG); > - CHECK_CPU_FEATURE (IBT); > - CHECK_CPU_FEATURE (AMX_BF16); > - CHECK_CPU_FEATURE (AVX512_FP16); > - CHECK_CPU_FEATURE (AMX_TILE); > - CHECK_CPU_FEATURE (AMX_INT8); > - CHECK_CPU_FEATURE (IBRS_IBPB); > - CHECK_CPU_FEATURE (STIBP); > - CHECK_CPU_FEATURE (L1D_FLUSH); > - CHECK_CPU_FEATURE (ARCH_CAPABILITIES); > - CHECK_CPU_FEATURE (CORE_CAPABILITIES); > - CHECK_CPU_FEATURE (SSBD); > - CHECK_CPU_FEATURE (LAHF64_SAHF64); > - CHECK_CPU_FEATURE (SVM); > - CHECK_CPU_FEATURE (LZCNT); > - CHECK_CPU_FEATURE (SSE4A); > - CHECK_CPU_FEATURE (PREFETCHW); > - CHECK_CPU_FEATURE (XOP); > - CHECK_CPU_FEATURE (LWP); > - CHECK_CPU_FEATURE (FMA4); > - CHECK_CPU_FEATURE (TBM); > - CHECK_CPU_FEATURE (SYSCALL_SYSRET); > - CHECK_CPU_FEATURE (NX); > - CHECK_CPU_FEATURE (PAGE1GB); > - CHECK_CPU_FEATURE (RDTSCP); > - CHECK_CPU_FEATURE (LM); > - CHECK_CPU_FEATURE (XSAVEOPT); > - CHECK_CPU_FEATURE (XSAVEC); > - CHECK_CPU_FEATURE (XGETBV_ECX_1); > - CHECK_CPU_FEATURE (XSAVES); > - CHECK_CPU_FEATURE (XFD); > - CHECK_CPU_FEATURE (INVARIANT_TSC); > - CHECK_CPU_FEATURE (WBNOINVD); > - CHECK_CPU_FEATURE (AVX_VNNI); > - CHECK_CPU_FEATURE (AVX512_BF16); > - CHECK_CPU_FEATURE (FZLRM); > - CHECK_CPU_FEATURE (FSRS); > - CHECK_CPU_FEATURE (FSRCS); > - CHECK_CPU_FEATURE (HRESET); > - CHECK_CPU_FEATURE (LAM); > - CHECK_CPU_FEATURE (AESKLE); > - CHECK_CPU_FEATURE (WIDE_KL); > - CHECK_CPU_FEATURE (PTWRITE); > + CHECK_CPU_FEATURE_PRESENT (SSE3); > + CHECK_CPU_FEATURE_PRESENT (PCLMULQDQ); > + CHECK_CPU_FEATURE_PRESENT (DTES64); > + CHECK_CPU_FEATURE_PRESENT (MONITOR); > + CHECK_CPU_FEATURE_PRESENT (DS_CPL); > + CHECK_CPU_FEATURE_PRESENT (VMX); > + CHECK_CPU_FEATURE_PRESENT (SMX); > + CHECK_CPU_FEATURE_PRESENT (EIST); > + CHECK_CPU_FEATURE_PRESENT (TM2); > + CHECK_CPU_FEATURE_PRESENT (SSSE3); > + CHECK_CPU_FEATURE_PRESENT (CNXT_ID); > + CHECK_CPU_FEATURE_PRESENT (SDBG); > + CHECK_CPU_FEATURE_PRESENT (FMA); > + CHECK_CPU_FEATURE_PRESENT (CMPXCHG16B); > + CHECK_CPU_FEATURE_PRESENT (XTPRUPDCTRL); > + CHECK_CPU_FEATURE_PRESENT (PDCM); > + CHECK_CPU_FEATURE_PRESENT (PCID); > + CHECK_CPU_FEATURE_PRESENT (DCA); > + CHECK_CPU_FEATURE_PRESENT (SSE4_1); > + CHECK_CPU_FEATURE_PRESENT (SSE4_2); > + CHECK_CPU_FEATURE_PRESENT (X2APIC); > + CHECK_CPU_FEATURE_PRESENT (MOVBE); > + CHECK_CPU_FEATURE_PRESENT (POPCNT); > + CHECK_CPU_FEATURE_PRESENT (TSC_DEADLINE); > + CHECK_CPU_FEATURE_PRESENT (AES); > + CHECK_CPU_FEATURE_PRESENT (XSAVE); > + CHECK_CPU_FEATURE_PRESENT (OSXSAVE); > + CHECK_CPU_FEATURE_PRESENT (AVX); > + CHECK_CPU_FEATURE_PRESENT (F16C); > + CHECK_CPU_FEATURE_PRESENT (RDRAND); > + CHECK_CPU_FEATURE_PRESENT (FPU); > + CHECK_CPU_FEATURE_PRESENT (VME); > + CHECK_CPU_FEATURE_PRESENT (DE); > + CHECK_CPU_FEATURE_PRESENT (PSE); > + CHECK_CPU_FEATURE_PRESENT (TSC); > + CHECK_CPU_FEATURE_PRESENT (MSR); > + CHECK_CPU_FEATURE_PRESENT (PAE); > + CHECK_CPU_FEATURE_PRESENT (MCE); > + CHECK_CPU_FEATURE_PRESENT (CX8); > + CHECK_CPU_FEATURE_PRESENT (APIC); > + CHECK_CPU_FEATURE_PRESENT (SEP); > + CHECK_CPU_FEATURE_PRESENT (MTRR); > + CHECK_CPU_FEATURE_PRESENT (PGE); > + CHECK_CPU_FEATURE_PRESENT (MCA); > + CHECK_CPU_FEATURE_PRESENT (CMOV); > + CHECK_CPU_FEATURE_PRESENT (PAT); > + CHECK_CPU_FEATURE_PRESENT (PSE_36); > + CHECK_CPU_FEATURE_PRESENT (PSN); > + CHECK_CPU_FEATURE_PRESENT (CLFSH); > + CHECK_CPU_FEATURE_PRESENT (DS); > + CHECK_CPU_FEATURE_PRESENT (ACPI); > + CHECK_CPU_FEATURE_PRESENT (MMX); > + CHECK_CPU_FEATURE_PRESENT (FXSR); > + CHECK_CPU_FEATURE_PRESENT (SSE); > + CHECK_CPU_FEATURE_PRESENT (SSE2); > + CHECK_CPU_FEATURE_PRESENT (SS); > + CHECK_CPU_FEATURE_PRESENT (HTT); > + CHECK_CPU_FEATURE_PRESENT (TM); > + CHECK_CPU_FEATURE_PRESENT (PBE); > + CHECK_CPU_FEATURE_PRESENT (FSGSBASE); > + CHECK_CPU_FEATURE_PRESENT (TSC_ADJUST); > + CHECK_CPU_FEATURE_PRESENT (SGX); > + CHECK_CPU_FEATURE_PRESENT (BMI1); > + CHECK_CPU_FEATURE_PRESENT (HLE); > + CHECK_CPU_FEATURE_PRESENT (AVX2); > + CHECK_CPU_FEATURE_PRESENT (SMEP); > + CHECK_CPU_FEATURE_PRESENT (BMI2); > + CHECK_CPU_FEATURE_PRESENT (ERMS); > + CHECK_CPU_FEATURE_PRESENT (INVPCID); > + CHECK_CPU_FEATURE_PRESENT (RTM); > + CHECK_CPU_FEATURE_PRESENT (RDT_M); > + CHECK_CPU_FEATURE_PRESENT (DEPR_FPU_CS_DS); > + CHECK_CPU_FEATURE_PRESENT (MPX); > + CHECK_CPU_FEATURE_PRESENT (RDT_A); > + CHECK_CPU_FEATURE_PRESENT (AVX512F); > + CHECK_CPU_FEATURE_PRESENT (AVX512DQ); > + CHECK_CPU_FEATURE_PRESENT (RDSEED); > + CHECK_CPU_FEATURE_PRESENT (ADX); > + CHECK_CPU_FEATURE_PRESENT (SMAP); > + CHECK_CPU_FEATURE_PRESENT (AVX512_IFMA); > + CHECK_CPU_FEATURE_PRESENT (CLFLUSHOPT); > + CHECK_CPU_FEATURE_PRESENT (CLWB); > + CHECK_CPU_FEATURE_PRESENT (TRACE); > + CHECK_CPU_FEATURE_PRESENT (AVX512PF); > + CHECK_CPU_FEATURE_PRESENT (AVX512ER); > + CHECK_CPU_FEATURE_PRESENT (AVX512CD); > + CHECK_CPU_FEATURE_PRESENT (SHA); > + CHECK_CPU_FEATURE_PRESENT (AVX512BW); > + CHECK_CPU_FEATURE_PRESENT (AVX512VL); > + CHECK_CPU_FEATURE_PRESENT (PREFETCHWT1); > + CHECK_CPU_FEATURE_PRESENT (AVX512_VBMI); > + CHECK_CPU_FEATURE_PRESENT (UMIP); > + CHECK_CPU_FEATURE_PRESENT (PKU); > + CHECK_CPU_FEATURE_PRESENT (OSPKE); > + CHECK_CPU_FEATURE_PRESENT (WAITPKG); > + CHECK_CPU_FEATURE_PRESENT (AVX512_VBMI2); > + CHECK_CPU_FEATURE_PRESENT (SHSTK); > + CHECK_CPU_FEATURE_PRESENT (GFNI); > + CHECK_CPU_FEATURE_PRESENT (VAES); > + CHECK_CPU_FEATURE_PRESENT (VPCLMULQDQ); > + CHECK_CPU_FEATURE_PRESENT (AVX512_VNNI); > + CHECK_CPU_FEATURE_PRESENT (AVX512_BITALG); > + CHECK_CPU_FEATURE_PRESENT (AVX512_VPOPCNTDQ); > + CHECK_CPU_FEATURE_PRESENT (RDPID); > + CHECK_CPU_FEATURE_PRESENT (KL); > + CHECK_CPU_FEATURE_PRESENT (CLDEMOTE); > + CHECK_CPU_FEATURE_PRESENT (MOVDIRI); > + CHECK_CPU_FEATURE_PRESENT (MOVDIR64B); > + CHECK_CPU_FEATURE_PRESENT (ENQCMD); > + CHECK_CPU_FEATURE_PRESENT (SGX_LC); > + CHECK_CPU_FEATURE_PRESENT (PKS); > + CHECK_CPU_FEATURE_PRESENT (AVX512_4VNNIW); > + CHECK_CPU_FEATURE_PRESENT (AVX512_4FMAPS); > + CHECK_CPU_FEATURE_PRESENT (FSRM); > + CHECK_CPU_FEATURE_PRESENT (UINTR); > + CHECK_CPU_FEATURE_PRESENT (AVX512_VP2INTERSECT); > + CHECK_CPU_FEATURE_PRESENT (MD_CLEAR); > + CHECK_CPU_FEATURE_PRESENT (RTM_ALWAYS_ABORT); > + CHECK_CPU_FEATURE_PRESENT (SERIALIZE); > + CHECK_CPU_FEATURE_PRESENT (HYBRID); > + CHECK_CPU_FEATURE_PRESENT (TSXLDTRK); > + CHECK_CPU_FEATURE_PRESENT (PCONFIG); > + CHECK_CPU_FEATURE_PRESENT (IBT); > + CHECK_CPU_FEATURE_PRESENT (AMX_BF16); > + CHECK_CPU_FEATURE_PRESENT (AVX512_FP16); > + CHECK_CPU_FEATURE_PRESENT (AMX_TILE); > + CHECK_CPU_FEATURE_PRESENT (AMX_INT8); > + CHECK_CPU_FEATURE_PRESENT (IBRS_IBPB); > + CHECK_CPU_FEATURE_PRESENT (STIBP); > + CHECK_CPU_FEATURE_PRESENT (L1D_FLUSH); > + CHECK_CPU_FEATURE_PRESENT (ARCH_CAPABILITIES); > + CHECK_CPU_FEATURE_PRESENT (CORE_CAPABILITIES); > + CHECK_CPU_FEATURE_PRESENT (SSBD); > + CHECK_CPU_FEATURE_PRESENT (LAHF64_SAHF64); > + CHECK_CPU_FEATURE_PRESENT (SVM); > + CHECK_CPU_FEATURE_PRESENT (LZCNT); > + CHECK_CPU_FEATURE_PRESENT (SSE4A); > + CHECK_CPU_FEATURE_PRESENT (PREFETCHW); > + CHECK_CPU_FEATURE_PRESENT (XOP); > + CHECK_CPU_FEATURE_PRESENT (LWP); > + CHECK_CPU_FEATURE_PRESENT (FMA4); > + CHECK_CPU_FEATURE_PRESENT (TBM); > + CHECK_CPU_FEATURE_PRESENT (SYSCALL_SYSRET); > + CHECK_CPU_FEATURE_PRESENT (NX); > + CHECK_CPU_FEATURE_PRESENT (PAGE1GB); > + CHECK_CPU_FEATURE_PRESENT (RDTSCP); > + CHECK_CPU_FEATURE_PRESENT (LM); > + CHECK_CPU_FEATURE_PRESENT (XSAVEOPT); > + CHECK_CPU_FEATURE_PRESENT (XSAVEC); > + CHECK_CPU_FEATURE_PRESENT (XGETBV_ECX_1); > + CHECK_CPU_FEATURE_PRESENT (XSAVES); > + CHECK_CPU_FEATURE_PRESENT (XFD); > + CHECK_CPU_FEATURE_PRESENT (INVARIANT_TSC); > + CHECK_CPU_FEATURE_PRESENT (WBNOINVD); > + CHECK_CPU_FEATURE_PRESENT (AVX_VNNI); > + CHECK_CPU_FEATURE_PRESENT (AVX512_BF16); > + CHECK_CPU_FEATURE_PRESENT (FZLRM); > + CHECK_CPU_FEATURE_PRESENT (FSRS); > + CHECK_CPU_FEATURE_PRESENT (FSRCS); > + CHECK_CPU_FEATURE_PRESENT (HRESET); > + CHECK_CPU_FEATURE_PRESENT (LAM); > + CHECK_CPU_FEATURE_PRESENT (AESKLE); > + CHECK_CPU_FEATURE_PRESENT (WIDE_KL); > + CHECK_CPU_FEATURE_PRESENT (PTWRITE); > > - printf ("Usable CPU features:\n"); > - CHECK_CPU_FEATURE_USABLE (SSE3); > - CHECK_CPU_FEATURE_USABLE (PCLMULQDQ); > - CHECK_CPU_FEATURE_USABLE (DTES64); > - CHECK_CPU_FEATURE_USABLE (MONITOR); > - CHECK_CPU_FEATURE_USABLE (DS_CPL); > - CHECK_CPU_FEATURE_USABLE (VMX); > - CHECK_CPU_FEATURE_USABLE (SMX); > - CHECK_CPU_FEATURE_USABLE (EIST); > - CHECK_CPU_FEATURE_USABLE (TM2); > - CHECK_CPU_FEATURE_USABLE (SSSE3); > - CHECK_CPU_FEATURE_USABLE (CNXT_ID); > - CHECK_CPU_FEATURE_USABLE (SDBG); > - CHECK_CPU_FEATURE_USABLE (FMA); > - CHECK_CPU_FEATURE_USABLE (CMPXCHG16B); > - CHECK_CPU_FEATURE_USABLE (XTPRUPDCTRL); > - CHECK_CPU_FEATURE_USABLE (PDCM); > - CHECK_CPU_FEATURE_USABLE (PCID); > - CHECK_CPU_FEATURE_USABLE (DCA); > - CHECK_CPU_FEATURE_USABLE (SSE4_1); > - CHECK_CPU_FEATURE_USABLE (SSE4_2); > - CHECK_CPU_FEATURE_USABLE (X2APIC); > - CHECK_CPU_FEATURE_USABLE (MOVBE); > - CHECK_CPU_FEATURE_USABLE (POPCNT); > - CHECK_CPU_FEATURE_USABLE (TSC_DEADLINE); > - CHECK_CPU_FEATURE_USABLE (AES); > - CHECK_CPU_FEATURE_USABLE (XSAVE); > - CHECK_CPU_FEATURE_USABLE (OSXSAVE); > - CHECK_CPU_FEATURE_USABLE (AVX); > - CHECK_CPU_FEATURE_USABLE (F16C); > - CHECK_CPU_FEATURE_USABLE (RDRAND); > - CHECK_CPU_FEATURE_USABLE (FPU); > - CHECK_CPU_FEATURE_USABLE (VME); > - CHECK_CPU_FEATURE_USABLE (DE); > - CHECK_CPU_FEATURE_USABLE (PSE); > - CHECK_CPU_FEATURE_USABLE (TSC); > - CHECK_CPU_FEATURE_USABLE (MSR); > - CHECK_CPU_FEATURE_USABLE (PAE); > - CHECK_CPU_FEATURE_USABLE (MCE); > - CHECK_CPU_FEATURE_USABLE (CX8); > - CHECK_CPU_FEATURE_USABLE (APIC); > - CHECK_CPU_FEATURE_USABLE (SEP); > - CHECK_CPU_FEATURE_USABLE (MTRR); > - CHECK_CPU_FEATURE_USABLE (PGE); > - CHECK_CPU_FEATURE_USABLE (MCA); > - CHECK_CPU_FEATURE_USABLE (CMOV); > - CHECK_CPU_FEATURE_USABLE (PAT); > - CHECK_CPU_FEATURE_USABLE (PSE_36); > - CHECK_CPU_FEATURE_USABLE (PSN); > - CHECK_CPU_FEATURE_USABLE (CLFSH); > - CHECK_CPU_FEATURE_USABLE (DS); > - CHECK_CPU_FEATURE_USABLE (ACPI); > - CHECK_CPU_FEATURE_USABLE (MMX); > - CHECK_CPU_FEATURE_USABLE (FXSR); > - CHECK_CPU_FEATURE_USABLE (SSE); > - CHECK_CPU_FEATURE_USABLE (SSE2); > - CHECK_CPU_FEATURE_USABLE (SS); > - CHECK_CPU_FEATURE_USABLE (HTT); > - CHECK_CPU_FEATURE_USABLE (TM); > - CHECK_CPU_FEATURE_USABLE (PBE); > - CHECK_CPU_FEATURE_USABLE (FSGSBASE); > - CHECK_CPU_FEATURE_USABLE (TSC_ADJUST); > - CHECK_CPU_FEATURE_USABLE (SGX); > - CHECK_CPU_FEATURE_USABLE (BMI1); > - CHECK_CPU_FEATURE_USABLE (HLE); > - CHECK_CPU_FEATURE_USABLE (AVX2); > - CHECK_CPU_FEATURE_USABLE (SMEP); > - CHECK_CPU_FEATURE_USABLE (BMI2); > - CHECK_CPU_FEATURE_USABLE (ERMS); > - CHECK_CPU_FEATURE_USABLE (INVPCID); > - CHECK_CPU_FEATURE_USABLE (RTM); > - CHECK_CPU_FEATURE_USABLE (RDT_M); > - CHECK_CPU_FEATURE_USABLE (DEPR_FPU_CS_DS); > - CHECK_CPU_FEATURE_USABLE (MPX); > - CHECK_CPU_FEATURE_USABLE (RDT_A); > - CHECK_CPU_FEATURE_USABLE (AVX512F); > - CHECK_CPU_FEATURE_USABLE (AVX512DQ); > - CHECK_CPU_FEATURE_USABLE (RDSEED); > - CHECK_CPU_FEATURE_USABLE (ADX); > - CHECK_CPU_FEATURE_USABLE (SMAP); > - CHECK_CPU_FEATURE_USABLE (AVX512_IFMA); > - CHECK_CPU_FEATURE_USABLE (CLFLUSHOPT); > - CHECK_CPU_FEATURE_USABLE (CLWB); > - CHECK_CPU_FEATURE_USABLE (TRACE); > - CHECK_CPU_FEATURE_USABLE (AVX512PF); > - CHECK_CPU_FEATURE_USABLE (AVX512ER); > - CHECK_CPU_FEATURE_USABLE (AVX512CD); > - CHECK_CPU_FEATURE_USABLE (SHA); > - CHECK_CPU_FEATURE_USABLE (AVX512BW); > - CHECK_CPU_FEATURE_USABLE (AVX512VL); > - CHECK_CPU_FEATURE_USABLE (PREFETCHWT1); > - CHECK_CPU_FEATURE_USABLE (AVX512_VBMI); > - CHECK_CPU_FEATURE_USABLE (UMIP); > - CHECK_CPU_FEATURE_USABLE (PKU); > - CHECK_CPU_FEATURE_USABLE (OSPKE); > - CHECK_CPU_FEATURE_USABLE (WAITPKG); > - CHECK_CPU_FEATURE_USABLE (AVX512_VBMI2); > - CHECK_CPU_FEATURE_USABLE (SHSTK); > - CHECK_CPU_FEATURE_USABLE (GFNI); > - CHECK_CPU_FEATURE_USABLE (VAES); > - CHECK_CPU_FEATURE_USABLE (VPCLMULQDQ); > - CHECK_CPU_FEATURE_USABLE (AVX512_VNNI); > - CHECK_CPU_FEATURE_USABLE (AVX512_BITALG); > - CHECK_CPU_FEATURE_USABLE (AVX512_VPOPCNTDQ); > - CHECK_CPU_FEATURE_USABLE (RDPID); > - CHECK_CPU_FEATURE_USABLE (KL); > - CHECK_CPU_FEATURE_USABLE (CLDEMOTE); > - CHECK_CPU_FEATURE_USABLE (MOVDIRI); > - CHECK_CPU_FEATURE_USABLE (MOVDIR64B); > - CHECK_CPU_FEATURE_USABLE (ENQCMD); > - CHECK_CPU_FEATURE_USABLE (SGX_LC); > - CHECK_CPU_FEATURE_USABLE (PKS); > - CHECK_CPU_FEATURE_USABLE (AVX512_4VNNIW); > - CHECK_CPU_FEATURE_USABLE (AVX512_4FMAPS); > - CHECK_CPU_FEATURE_USABLE (FSRM); > - CHECK_CPU_FEATURE_USABLE (AVX512_VP2INTERSECT); > - CHECK_CPU_FEATURE_USABLE (MD_CLEAR); > - CHECK_CPU_FEATURE_USABLE (RTM_ALWAYS_ABORT); > - CHECK_CPU_FEATURE_USABLE (SERIALIZE); > - CHECK_CPU_FEATURE_USABLE (HYBRID); > - CHECK_CPU_FEATURE_USABLE (TSXLDTRK); > - CHECK_CPU_FEATURE_USABLE (PCONFIG); > - CHECK_CPU_FEATURE_USABLE (IBT); > - CHECK_CPU_FEATURE_USABLE (AMX_BF16); > - CHECK_CPU_FEATURE_USABLE (AVX512_FP16); > - CHECK_CPU_FEATURE_USABLE (AMX_TILE); > - CHECK_CPU_FEATURE_USABLE (AMX_INT8); > - CHECK_CPU_FEATURE_USABLE (IBRS_IBPB); > - CHECK_CPU_FEATURE_USABLE (STIBP); > - CHECK_CPU_FEATURE_USABLE (L1D_FLUSH); > - CHECK_CPU_FEATURE_USABLE (ARCH_CAPABILITIES); > - CHECK_CPU_FEATURE_USABLE (CORE_CAPABILITIES); > - CHECK_CPU_FEATURE_USABLE (SSBD); > - CHECK_CPU_FEATURE_USABLE (LAHF64_SAHF64); > - CHECK_CPU_FEATURE_USABLE (SVM); > - CHECK_CPU_FEATURE_USABLE (LZCNT); > - CHECK_CPU_FEATURE_USABLE (SSE4A); > - CHECK_CPU_FEATURE_USABLE (PREFETCHW); > - CHECK_CPU_FEATURE_USABLE (XOP); > - CHECK_CPU_FEATURE_USABLE (LWP); > - CHECK_CPU_FEATURE_USABLE (FMA4); > - CHECK_CPU_FEATURE_USABLE (TBM); > - CHECK_CPU_FEATURE_USABLE (SYSCALL_SYSRET); > - CHECK_CPU_FEATURE_USABLE (NX); > - CHECK_CPU_FEATURE_USABLE (PAGE1GB); > - CHECK_CPU_FEATURE_USABLE (RDTSCP); > - CHECK_CPU_FEATURE_USABLE (LM); > - CHECK_CPU_FEATURE_USABLE (XSAVEOPT); > - CHECK_CPU_FEATURE_USABLE (XSAVEC); > - CHECK_CPU_FEATURE_USABLE (XGETBV_ECX_1); > - CHECK_CPU_FEATURE_USABLE (XSAVES); > - CHECK_CPU_FEATURE_USABLE (XFD); > - CHECK_CPU_FEATURE_USABLE (INVARIANT_TSC); > - CHECK_CPU_FEATURE_USABLE (WBNOINVD); > - CHECK_CPU_FEATURE_USABLE (AVX_VNNI); > - CHECK_CPU_FEATURE_USABLE (AVX512_BF16); > - CHECK_CPU_FEATURE_USABLE (FZLRM); > - CHECK_CPU_FEATURE_USABLE (FSRS); > - CHECK_CPU_FEATURE_USABLE (FSRCS); > - CHECK_CPU_FEATURE_USABLE (AESKLE); > - CHECK_CPU_FEATURE_USABLE (WIDE_KL); > - CHECK_CPU_FEATURE_USABLE (PTWRITE); > + printf ("Possible CPU features:\n"); > + CHECK_CPU_FEATURE_ACTIVE (SSE3); > + CHECK_CPU_FEATURE_ACTIVE (PCLMULQDQ); > + CHECK_CPU_FEATURE_ACTIVE (DTES64); > + CHECK_CPU_FEATURE_ACTIVE (MONITOR); > + CHECK_CPU_FEATURE_ACTIVE (DS_CPL); > + CHECK_CPU_FEATURE_ACTIVE (VMX); > + CHECK_CPU_FEATURE_ACTIVE (SMX); > + CHECK_CPU_FEATURE_ACTIVE (EIST); > + CHECK_CPU_FEATURE_ACTIVE (TM2); > + CHECK_CPU_FEATURE_ACTIVE (SSSE3); > + CHECK_CPU_FEATURE_ACTIVE (CNXT_ID); > + CHECK_CPU_FEATURE_ACTIVE (SDBG); > + CHECK_CPU_FEATURE_ACTIVE (FMA); > + CHECK_CPU_FEATURE_ACTIVE (CMPXCHG16B); > + CHECK_CPU_FEATURE_ACTIVE (XTPRUPDCTRL); > + CHECK_CPU_FEATURE_ACTIVE (PDCM); > + CHECK_CPU_FEATURE_ACTIVE (PCID); > + CHECK_CPU_FEATURE_ACTIVE (DCA); > + CHECK_CPU_FEATURE_ACTIVE (SSE4_1); > + CHECK_CPU_FEATURE_ACTIVE (SSE4_2); > + CHECK_CPU_FEATURE_ACTIVE (X2APIC); > + CHECK_CPU_FEATURE_ACTIVE (MOVBE); > + CHECK_CPU_FEATURE_ACTIVE (POPCNT); > + CHECK_CPU_FEATURE_ACTIVE (TSC_DEADLINE); > + CHECK_CPU_FEATURE_ACTIVE (AES); > + CHECK_CPU_FEATURE_ACTIVE (XSAVE); > + CHECK_CPU_FEATURE_ACTIVE (OSXSAVE); > + CHECK_CPU_FEATURE_ACTIVE (AVX); > + CHECK_CPU_FEATURE_ACTIVE (F16C); > + CHECK_CPU_FEATURE_ACTIVE (RDRAND); > + CHECK_CPU_FEATURE_ACTIVE (FPU); > + CHECK_CPU_FEATURE_ACTIVE (VME); > + CHECK_CPU_FEATURE_ACTIVE (DE); > + CHECK_CPU_FEATURE_ACTIVE (PSE); > + CHECK_CPU_FEATURE_ACTIVE (TSC); > + CHECK_CPU_FEATURE_ACTIVE (MSR); > + CHECK_CPU_FEATURE_ACTIVE (PAE); > + CHECK_CPU_FEATURE_ACTIVE (MCE); > + CHECK_CPU_FEATURE_ACTIVE (CX8); > + CHECK_CPU_FEATURE_ACTIVE (APIC); > + CHECK_CPU_FEATURE_ACTIVE (SEP); > + CHECK_CPU_FEATURE_ACTIVE (MTRR); > + CHECK_CPU_FEATURE_ACTIVE (PGE); > + CHECK_CPU_FEATURE_ACTIVE (MCA); > + CHECK_CPU_FEATURE_ACTIVE (CMOV); > + CHECK_CPU_FEATURE_ACTIVE (PAT); > + CHECK_CPU_FEATURE_ACTIVE (PSE_36); > + CHECK_CPU_FEATURE_ACTIVE (PSN); > + CHECK_CPU_FEATURE_ACTIVE (CLFSH); > + CHECK_CPU_FEATURE_ACTIVE (DS); > + CHECK_CPU_FEATURE_ACTIVE (ACPI); > + CHECK_CPU_FEATURE_ACTIVE (MMX); > + CHECK_CPU_FEATURE_ACTIVE (FXSR); > + CHECK_CPU_FEATURE_ACTIVE (SSE); > + CHECK_CPU_FEATURE_ACTIVE (SSE2); > + CHECK_CPU_FEATURE_ACTIVE (SS); > + CHECK_CPU_FEATURE_ACTIVE (HTT); > + CHECK_CPU_FEATURE_ACTIVE (TM); > + CHECK_CPU_FEATURE_ACTIVE (PBE); > + CHECK_CPU_FEATURE_ACTIVE (FSGSBASE); > + CHECK_CPU_FEATURE_ACTIVE (TSC_ADJUST); > + CHECK_CPU_FEATURE_ACTIVE (SGX); > + CHECK_CPU_FEATURE_ACTIVE (BMI1); > + CHECK_CPU_FEATURE_ACTIVE (HLE); > + CHECK_CPU_FEATURE_ACTIVE (AVX2); > + CHECK_CPU_FEATURE_ACTIVE (SMEP); > + CHECK_CPU_FEATURE_ACTIVE (BMI2); > + CHECK_CPU_FEATURE_ACTIVE (ERMS); > + CHECK_CPU_FEATURE_ACTIVE (INVPCID); > + CHECK_CPU_FEATURE_ACTIVE (RTM); > + CHECK_CPU_FEATURE_ACTIVE (RDT_M); > + CHECK_CPU_FEATURE_ACTIVE (DEPR_FPU_CS_DS); > + CHECK_CPU_FEATURE_ACTIVE (MPX); > + CHECK_CPU_FEATURE_ACTIVE (RDT_A); > + CHECK_CPU_FEATURE_ACTIVE (AVX512F); > + CHECK_CPU_FEATURE_ACTIVE (AVX512DQ); > + CHECK_CPU_FEATURE_ACTIVE (RDSEED); > + CHECK_CPU_FEATURE_ACTIVE (ADX); > + CHECK_CPU_FEATURE_ACTIVE (SMAP); > + CHECK_CPU_FEATURE_ACTIVE (AVX512_IFMA); > + CHECK_CPU_FEATURE_ACTIVE (CLFLUSHOPT); > + CHECK_CPU_FEATURE_ACTIVE (CLWB); > + CHECK_CPU_FEATURE_ACTIVE (TRACE); > + CHECK_CPU_FEATURE_ACTIVE (AVX512PF); > + CHECK_CPU_FEATURE_ACTIVE (AVX512ER); > + CHECK_CPU_FEATURE_ACTIVE (AVX512CD); > + CHECK_CPU_FEATURE_ACTIVE (SHA); > + CHECK_CPU_FEATURE_ACTIVE (AVX512BW); > + CHECK_CPU_FEATURE_ACTIVE (AVX512VL); > + CHECK_CPU_FEATURE_ACTIVE (PREFETCHWT1); > + CHECK_CPU_FEATURE_ACTIVE (AVX512_VBMI); > + CHECK_CPU_FEATURE_ACTIVE (UMIP); > + CHECK_CPU_FEATURE_ACTIVE (PKU); > + CHECK_CPU_FEATURE_ACTIVE (OSPKE); > + CHECK_CPU_FEATURE_ACTIVE (WAITPKG); > + CHECK_CPU_FEATURE_ACTIVE (AVX512_VBMI2); > + CHECK_CPU_FEATURE_ACTIVE (SHSTK); > + CHECK_CPU_FEATURE_ACTIVE (GFNI); > + CHECK_CPU_FEATURE_ACTIVE (VAES); > + CHECK_CPU_FEATURE_ACTIVE (VPCLMULQDQ); > + CHECK_CPU_FEATURE_ACTIVE (AVX512_VNNI); > + CHECK_CPU_FEATURE_ACTIVE (AVX512_BITALG); > + CHECK_CPU_FEATURE_ACTIVE (AVX512_VPOPCNTDQ); > + CHECK_CPU_FEATURE_ACTIVE (RDPID); > + CHECK_CPU_FEATURE_ACTIVE (KL); > + CHECK_CPU_FEATURE_ACTIVE (CLDEMOTE); > + CHECK_CPU_FEATURE_ACTIVE (MOVDIRI); > + CHECK_CPU_FEATURE_ACTIVE (MOVDIR64B); > + CHECK_CPU_FEATURE_ACTIVE (ENQCMD); > + CHECK_CPU_FEATURE_ACTIVE (SGX_LC); > + CHECK_CPU_FEATURE_ACTIVE (PKS); > + CHECK_CPU_FEATURE_ACTIVE (AVX512_4VNNIW); > + CHECK_CPU_FEATURE_ACTIVE (AVX512_4FMAPS); > + CHECK_CPU_FEATURE_ACTIVE (FSRM); > + CHECK_CPU_FEATURE_ACTIVE (AVX512_VP2INTERSECT); > + CHECK_CPU_FEATURE_ACTIVE (MD_CLEAR); > + CHECK_CPU_FEATURE_ACTIVE (RTM_ALWAYS_ABORT); > + CHECK_CPU_FEATURE_ACTIVE (SERIALIZE); > + CHECK_CPU_FEATURE_ACTIVE (HYBRID); > + CHECK_CPU_FEATURE_ACTIVE (TSXLDTRK); > + CHECK_CPU_FEATURE_ACTIVE (PCONFIG); > + CHECK_CPU_FEATURE_ACTIVE (IBT); > + CHECK_CPU_FEATURE_ACTIVE (AMX_BF16); > + CHECK_CPU_FEATURE_ACTIVE (AVX512_FP16); > + CHECK_CPU_FEATURE_ACTIVE (AMX_TILE); > + CHECK_CPU_FEATURE_ACTIVE (AMX_INT8); > + CHECK_CPU_FEATURE_ACTIVE (IBRS_IBPB); > + CHECK_CPU_FEATURE_ACTIVE (STIBP); > + CHECK_CPU_FEATURE_ACTIVE (L1D_FLUSH); > + CHECK_CPU_FEATURE_ACTIVE (ARCH_CAPABILITIES); > + CHECK_CPU_FEATURE_ACTIVE (CORE_CAPABILITIES); > + CHECK_CPU_FEATURE_ACTIVE (SSBD); > + CHECK_CPU_FEATURE_ACTIVE (LAHF64_SAHF64); > + CHECK_CPU_FEATURE_ACTIVE (SVM); > + CHECK_CPU_FEATURE_ACTIVE (LZCNT); > + CHECK_CPU_FEATURE_ACTIVE (SSE4A); > + CHECK_CPU_FEATURE_ACTIVE (PREFETCHW); > + CHECK_CPU_FEATURE_ACTIVE (XOP); > + CHECK_CPU_FEATURE_ACTIVE (LWP); > + CHECK_CPU_FEATURE_ACTIVE (FMA4); > + CHECK_CPU_FEATURE_ACTIVE (TBM); > + CHECK_CPU_FEATURE_ACTIVE (SYSCALL_SYSRET); > + CHECK_CPU_FEATURE_ACTIVE (NX); > + CHECK_CPU_FEATURE_ACTIVE (PAGE1GB); > + CHECK_CPU_FEATURE_ACTIVE (RDTSCP); > + CHECK_CPU_FEATURE_ACTIVE (LM); > + CHECK_CPU_FEATURE_ACTIVE (XSAVEOPT); > + CHECK_CPU_FEATURE_ACTIVE (XSAVEC); > + CHECK_CPU_FEATURE_ACTIVE (XGETBV_ECX_1); > + CHECK_CPU_FEATURE_ACTIVE (XSAVES); > + CHECK_CPU_FEATURE_ACTIVE (XFD); > + CHECK_CPU_FEATURE_ACTIVE (INVARIANT_TSC); > + CHECK_CPU_FEATURE_ACTIVE (WBNOINVD); > + CHECK_CPU_FEATURE_ACTIVE (AVX_VNNI); > + CHECK_CPU_FEATURE_ACTIVE (AVX512_BF16); > + CHECK_CPU_FEATURE_ACTIVE (FZLRM); > + CHECK_CPU_FEATURE_ACTIVE (FSRS); > + CHECK_CPU_FEATURE_ACTIVE (FSRCS); > + CHECK_CPU_FEATURE_ACTIVE (AESKLE); > + CHECK_CPU_FEATURE_ACTIVE (WIDE_KL); > + CHECK_CPU_FEATURE_ACTIVE (PTWRITE); > > return 0; > } > diff --git a/sysdeps/x86/tst-ifunc-isa.h b/sysdeps/x86/tst-ifunc-isa.h > index 6d906966a7..85616e29ad 100644 > --- a/sysdeps/x86/tst-ifunc-isa.h > +++ b/sysdeps/x86/tst-ifunc-isa.h > @@ -1,4 +1,4 @@ > -/* IFUNC resolver with CPU_FEATURE_USABLE. > +/* IFUNC resolver with CPU_FEATURE_ACTIVE. > Copyright (C) 2021 Free Software Foundation, Inc. > This file is part of the GNU C Library. > > @@ -32,15 +32,15 @@ enum isa > __attribute__ ((__optimize__ ("-fno-stack-protector"))) > get_isa (void) > { > - if (CPU_FEATURE_USABLE (AVX512F)) > + if (CPU_FEATURE_ACTIVE (AVX512F)) > return avx512f; > - if (CPU_FEATURE_USABLE (AVX2)) > + if (CPU_FEATURE_ACTIVE (AVX2)) > return avx2; > - if (CPU_FEATURE_USABLE (AVX)) > + if (CPU_FEATURE_ACTIVE (AVX)) > return avx; > - if (CPU_FEATURE_USABLE (SSE4_2)) > + if (CPU_FEATURE_ACTIVE (SSE4_2)) > return sse4_2; > - if (CPU_FEATURE_USABLE (SSE2)) > + if (CPU_FEATURE_ACTIVE (SSE2)) > return sse2; > return none; > } > diff --git a/sysdeps/x86/tst-string-rtm.h b/sysdeps/x86/tst-string-rtm.h > index d2470afa1e..6f11f19a6e 100644 > --- a/sysdeps/x86/tst-string-rtm.h > +++ b/sysdeps/x86/tst-string-rtm.h > @@ -26,7 +26,7 @@ static int > do_test_1 (const char *name, unsigned int loop, int (*prepare) (void), > int (*function) (void)) > { > - if (!CPU_FEATURE_USABLE (RTM)) > + if (!CPU_FEATURE_ACTIVE (RTM)) > return EXIT_UNSUPPORTED; > > int status = prepare (); > diff --git a/sysdeps/x86_64/fpu/math-tests-arch.h b/sysdeps/x86_64/fpu/math-tests-arch.h > index f521e218b9..952d919a45 100644 > --- a/sysdeps/x86_64/fpu/math-tests-arch.h > +++ b/sysdeps/x86_64/fpu/math-tests-arch.h > @@ -24,7 +24,7 @@ > # define CHECK_ARCH_EXT \ > do \ > { \ > - if (!CPU_FEATURE_USABLE (AVX)) return; \ > + if (!CPU_FEATURE_ACTIVE (AVX)) return; \ > } \ > while (0) > > @@ -34,7 +34,7 @@ > # define CHECK_ARCH_EXT \ > do \ > { \ > - if (!CPU_FEATURE_USABLE (AVX2)) return; \ > + if (!CPU_FEATURE_ACTIVE (AVX2)) return; \ > } \ > while (0) > > @@ -44,7 +44,7 @@ > # define CHECK_ARCH_EXT \ > do \ > { \ > - if (!CPU_FEATURE_USABLE (AVX512F)) return; \ > + if (!CPU_FEATURE_ACTIVE (AVX512F)) return; \ > } \ > while (0) > > -- Cheers, Carlos.