10月
06
AVX-512 のマニュアルを見てると、よく分からないことがいくつかあります。
64bit モードの場合 zmm だけでなく ymm や xmm も 32 本使えると書いてある (1.2.2 32 SIMD Register Support) 。32 本使うためには VEX プレフィックスではなく EVEX プレフィックスを使う必要がある (4.1 OVERVIEW SECTION) が、命令一覧を見ても EVEX プレフィックスによる ymm や xmm の使用は見つからないし、Chapter 4 AVX-512 Instruction Encoding を見ても具体的な記述が無い。
4.6.4 Vector Length Orthogonality に書いてあった。ただし、命令一覧に記載されていないのは間違いないので、ymm/xmm の場合に命令がどう動作するのかは仕様上決まっていないことになる(特に AVX1/2 に存在しない命令の場合)。- zmm を使う場合の、VPADDB や VPADDW を筆頭とする バイト/ワード 単位の演算が記載されていない。(VPMOVZXBQ や VPMOVQB みたいな変換命令はある)
AVX-512 は LNI(Larrabee New Instructions: Xeon Phi の命令セット)を元にしているわけですが、LNI には ymm/xmm レジスタは元々存在せず、バイト/ワード 単位の演算も存在しません。Xeon Phi のマニュアルからコピーしてくるときに追加し忘れたのか、やっぱりホントにサポートしていないのか、どっちなんでしょう…
no comment untill now