インテル® C++ コンパイラー 17.0 デベロッパー・ガイドおよびリファレンス

cpu_specific

関数のプロセッサー固有バージョンを宣言できるようにします。

構文

Windows®:

__declspec(cpu_specific(cpuid))

Linux*:

__attribute__((cpu_specific(cpuid)))

引数

cpuid

設定可能な値は以下のとおりです。

atom: インテル® ストリーミング SIMD 拡張命令 3 補足命令 (インテル® SSSE3) 対応インテル® Atom™ プロセッサー

atom_sse4_2: インテル® ストリーミング SIMD 拡張命令 4.2 (インテル® SSE4.2) 対応インテル® Atom™ プロセッサー

atom_sse4_2_movbe: インテル® ストリーミング SIMD 拡張命令 4.2 (インテル® SSE4.2) および MOVBE 命令対応インテル® Atom™ プロセッサー

core_2_duo_sse4_1: インテル® ストリーミング SIMD 拡張命令 4.1 (インテル® SSE4.1) 対応インテル® 45nm Hi-k 次世代インテル® Core™ プロセッサー

core_2_duo_ssse3: インテル® Core™2 Duo プロセッサーおよびインテル® ストリーミング SIMD 拡張命令 3 補足命令 (インテル® SSSE3) 対応インテル® Xeon® プロセッサー

core_2nd_gen_avx: インテル® アドバンスト・ベクトル・エクステンション (インテル® AVX) 対応第 2 世代インテル® Core™ プロセッサー・ファミリー

core_3rd_gen_avx: RDRND 命令を含むインテル® アドバンスト・ベクトル・エクステンション (インテル® AVX) 対応第 3 世代インテル® Core™ プロセッサー・ファミリー

core_4th_gen_avx: RDRND 命令を含むインテル® アドバンスト・ベクトル・エクステンション 2 (インテル® AVX2) 対応第 4 世代インテル® Core™ プロセッサー・ファミリー

core_4th_gen_avx_tsx: RDRND 命令を含むインテル® アドバンスト・ベクトル・エクステンション 2 (インテル® AVX2)、およびインテル® トランザクショナル・シンクロナイゼーション・エクステンション (インテル® TSX) 対応第 4 世代インテル® Core™ プロセッサー・ファミリー

core_5th_gen_avx: RDSEED および ADX (Multi-Precision Add-Carry Instruction Extensions) 命令を含むインテル® アドバンスト・ベクトル・エクステンション 2 (インテル® AVX2) 対応第 5 世代インテル® Core™ プロセッサー・ファミリー

core_5th_gen_avx_tsx: RDSEED および ADX (Multi-Precision Add-Carry Instruction Extensions) 命令を含むインテル® アドバンスト・ベクトル・エクステンション 2 (インテル® AVX2)、およびインテル® トランザクショナル・シンクロナイゼーション・エクステンション (インテル® TSX) 対応第 5 世代インテル® Core™ プロセッサー・ファミリー

core_aes_pclmulqdq: AES (Advanced Encryption Standard) 命令およびキャリーなし乗算命令対応インテル® Core™ プロセッサー

core_i7_sse4_2: インテル® ストリーミング SIMD 拡張命令 4.2 (インテル® SSE4.2) 対応インテル® Core™ i7 プロセッサー

generic: インテル製のその他の IA-32 またはインテル® 64 プロセッサーまたは互換プロセッサー

mic: インテル® メニー・インテグレーテッド・コア (インテル® MIC) アーキテクチャー

mic_avx512: インテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) 基本命令、競合検出命令、指数および逆数命令、プリフェッチ命令、および RDSEED および ADX (Multi-Precision Add-Carry Instruction Extensions) 命令を含むインテル® アドバンスト・ベクトル・エクステンション 2 (インテル® AVX2) 対応第 2 世代インテル® Xeon Phi™ プロセッサー・ファミリー。 この設定は、インテル® Xeon Phi™ コプロセッサー (開発コード名 Knights Landing) をターゲットとするインテル® 64 アーキテクチャーでのみ利用できます。

pentium: インテル® Pentium® プロセッサー

pentium_4: インテル® Pentium® 4 プロセッサー

pentium_4_sse3: インテル® ストリーミング SIMD 拡張命令 3 (インテル® SSE3) 対応インテル® Pentium® 4 プロセッサー、インテル® Core™ Duo プロセッサー、インテル® Core™ Solo プロセッサー

pentium_ii: インテル® Pentium® II プロセッサー

pentium_iii: インテル® Pentium® III プロセッサー

pentium_iii_no_xmm_regs: インテル® Pentium® III プロセッサー (XMM レジスターなし)

pentium_m: インテル® Pentium® M プロセッサー

pentium_mmx: インテル® MMX® テクノロジー対応インテル® Pentium® プロセッサー

pentium_pro: インテル® Pentium® Pro プロセッサー

説明

このキーワードを使用して、各関数のプロセッサー固有バージョンを宣言できます。

この機能は、IA-32 またはインテル® 64 アーキテクチャー・ベースのインテル® プロセッサーでのみ利用できます。 インテル以外のプロセッサーでは利用できません。 手動プロセッサー・ディスパッチ機能を使用してビルドしたアプリケーションは、互換プロセッサーよりもインテル® プロセッサーでより高度に最適化されることがあります。

最適化に関する注意事項

インテル® コンパイラーでは、インテル® マイクロプロセッサーに限定されない最適化に関して、他社製マイクロプロセッサー用に同等の最適化を行えないことがあります。これには、インテル® ストリーミング SIMD 拡張命令 2、インテル® ストリーミング SIMD 拡張命令 3、インテル® ストリーミング SIMD 拡張命令 3 補足命令などの最適化が該当します。インテルは、他社製マイクロプロセッサーに関して、いかなる最適化の利用、機能、または効果も保証いたしません。本製品のマイクロプロセッサー依存の最適化は、インテル® マイクロプロセッサーでの使用を前提としています。インテル® マイクロアーキテクチャーに限定されない最適化のなかにも、インテル® マイクロプロセッサー用のものがあります。この注意事項で言及した命令セットの詳細については、該当する製品のユーザー・リファレンス・ガイドを参照してください。

注意事項の改訂 #20110804

関連情報