Intel® oneAPI DPC++/C++ Compiler Developer Guide and Reference

ID 767253
Date 9/08/2022
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

allow_cpu_features

Provides the ability for a function to use intrinsic functions and architecture specific functionality.

Syntax

Windows:

__declspec(allow_cpu_features(featp1[,featp2]))

Linux:

__attribute__((allow_cpu_features(featp1[,featp2])))

Arguments

featp1

Specifies features to allow for the function. Values are integral constant expressions that evaluate to the page one bitmask of permissible features from the libirc CPUID information. The evaluated type is an unsigned 64-bit integer which permits use of template-dependent code. Possible values are:

  • _FEATURE_GENERIC_IA32

  • _FEATURE_FPU

  • _FEATURE_CMOV

  • _FEATURE_MMX

  • _FEATURE_FXSAVE

  • _FEATURE_SSE

  • _FEATURE_SSE2

  • _FEATURE_SSE3

  • _FEATURE_SSSE3

  • _FEATURE_SSE4_1

  • _FEATURE_SSE4_2

  • _FEATURE_MOVBE

  • _FEATURE_POPCNT

  • _FEATURE_PCLMULQDQ

  • _FEATURE_AES

  • _FEATURE_F16C

  • _FEATURE_AVX

  • _FEATURE_RDRND

  • _FEATURE_FMA

  • _FEATURE_BMI

  • _FEATURE_LZCNT

  • _FEATURE_HLE

  • _FEATURE_RTM

  • _FEATURE_AVX2

  • _FEATURE_AVX512DQ

  • _FEATURE_PTWRITE

  • _FEATURE_AVX512F

  • _FEATURE_ADX

  • _FEATURE_RDSEED

  • _FEATURE_AVX512IFMA52

  • _FEATURE_AVX512ER

  • _FEATURE_AVX512PF

  • _FEATURE_AVX512CD

  • _FEATURE_SHA

  • _FEATURE_MPX

  • _FEATURE_AVX512BW

  • _FEATURE_AVX512VL

  • _FEATURE_AVX512VBMI

  • _FEATURE_AVX512_4FMAPS

  • _FEATURE_AVX512_4VNNIW

  • _FEATURE_AVX512_VPOPCNTDQ

  • _FEATURE_AVX512_BITALG

  • _FEATURE_AVX512_VBMI2

  • _FEATURE_GFNI

  • _FEATURE_VAES

  • _FEATURE_VPCLMULQDQ

  • _FEATURE_AVX512_VNNI

  • _FEATURE_CLWB

  • _FEATURE_RDPID

  • _FEATURE_IBT

  • _FEATURE_SHSTK

  • _FEATURE_SGX

  • _FEATURE_WBNOINVD

  • _FEATURE_PCONFIG

  • _FEATURE_AXV512_VP2INTERSECT

featp2

Optional. Specifies features to allow for the function. Values are integral constant expressions that evaluate to the page two bitmask of permissible features from the libirc CPUID information. The evaluated type is an unsigned 64-bit integer which permits use of template-dependent code. If only features from page two are desired, specify 0 for featp1. Possible values are:

  • _FEATURE_CLDEMOTE

  • _FEATURE_MOVDIRI

  • _FEATURE_MOVDIR64B

  • _FEATURE_WAITPKG

  • _FEATURE_AVX512_Bf16

  • _FEATURE_ENQCMD

  • _FEATURE_AVX_VNNI

  • _FEATURE_AMX_TILE

  • _FEATURE_AMX_INT8

  • _FEATURE_AMX_BF16

  • _FEATURE_KL

  • _FEATURE_WIDE_KL

Description

This keyword can be added to a function to specify intrinsic functions and architecture specific functionality that the function is allowed to use. The function is generated as if the specified features are available.