F16C
F16C[1] (以前/非公式にCVT16として知られていた) 命令セットは、半精度とIEEE標準の単精度浮動小数点形式の間の変換のサポートを提供するx86 命令セットアーキテクチャ(英語版)拡張である。
歴史
CVT16命令セット(2009年5月1日にAMDによって発表された)[2]はx86およびAMD64命令セットにおける128ビットSSE中核命令の拡張である。
CVT16は、2007年8月30日に発表されたSSE5(英語版)命令セット提案の一部を改訂したもので、XOP(英語版)およびFMA4(英語版)命令セットによって補完される。このリビジョンにより、提案された新しい命令のバイナリ・コーディングはIntelのAVX命令拡張との互換性が高まったが、ただし命令の機能は変更されていない。
最近の文書では、F16Cという名前がIntelとAMDのx86-64アーキテクチャ仕様の両方で正式に使用されている。
テクニカル情報
XMMレジスタ内の4つの浮動小数点値、またはYMMレジスタ内の8つの浮動小数点値を変換するバリアントがある。
この命令は「半(精度)詰めから単(精度)詰めへのベクトル変換(※原文: Vector Convert Packed Half to Packed Single)」の略語で、その逆も然りである:
VCVTPH2PS xmmreg,xmmrm64
– メモリまたはXMMレジスタの下半分の内の4つの半精度浮動小数点値を、XMMレジスタ内に4つの単精度浮動小数点値として変換する。VCVTPH2PS ymmreg,xmmrm128
– メモリまたはXMMレジスタ (YMMレジスタの下半分) 内の8つの半精度浮動小数点値を、YMMレジスタ内に8つの単精度浮動小数点値として変換する。VCVTPS2PH xmmrm64,xmmreg,imm8
– XMMレジスタ内の4つの単精度浮動小数点値を、メモリまたはXMMレジスタの下半分内に半精度浮動小数点値として変換する。VCVTPS2PH xmmrm128,ymmreg,imm8
– YMMレジスタ内の8つの単精度浮動小数点値を、メモリまたはXMMレジスタ内に半精度浮動小数点値として変換する。
VCVTPS2PH
への8ビットの直接引数は、丸めモードを選択する。値0~4は、最近接、ダウン、アップ、トランケート、およびMXCSR.RC
でモード設定をする。
これらの命令のサポートは、CPUIDのEAX=1の後にECXのビット29によって示される。
F16C搭載CPU
- AMD:
- Intel:
- Ivy Bridge・プロセッサおよびこれ以降
リファレンス
- ^ Chuck Walbourn (September 11, 2012). “DirectXMath: F16C and FMA”. Template:Cite webの呼び出しエラー:引数 accessdate は必須です。
- ^ “128-Bit and 256-Bit XOP, FMA4 and CVT16 Instructions”. AMD64 Architecture Programmer's Manual 6. (2009年5月1日). オリジナルの2009年5月20日時点におけるアーカイブ。. https://web.archive.org/web/20090520223024/http://support.amd.com/us/Processor_TechDocs/43479.pdf 2022年7月5日閲覧。
- ^ Dave Christie (2009-05-07), Striking a balance, AMD Developer blogs, オリジナルの2013-11-09時点におけるアーカイブ。, https://archive.today/20131109140737/http://developer.amd.com/2009/05/06/striking-a-balance/ 2012年1月17日閲覧。
- ^ New "Bulldozer" and "Piledriver" Instructions, AMD, (October 2012), http://developer.amd.com/wordpress/media/2012/10/New-Bulldozer-and-Piledriver-Instructions.pdf
外部リンク
- New Bulldozer and Piledriver Instructions [1][リンク切れ]
- DirectX math F16C and FMA [2]
- AMD64 Architecture Programmer's Manual Volume 1 [3][リンク切れ]
- AMD64 Architecture Programmer's Manual Volume 2 [4]
- AMD64 Architecture Programmer's Manual Volume 3 [5][リンク切れ]
- AMD64 Architecture Programmer's Manual Volume 4 [6][リンク切れ]
- AMD64 Architecture Programmer's Manual Volume 5 [7][リンク切れ]
- IA32 Architectures Software Developer Manual [8]
| |||||
---|---|---|---|---|---|
CISC |
| ||||
RISC |
|