ARM64は32bit の ARMと異なり、浮動小数点数演算用の命令がオプションではなく、ARMv8 の標準として組み込まれている。
浮動小数点数の正負を表す符号(sign)、浮動小数点数の数値自体(有効数字)を表す仮数部(fraction)とべき乗を示す指数部(exponent) に分けて考える。
ARMv8は、浮動小数点数レジスタとして128ビットを使って複数のベクトル の要素を同時に演算する事ができる Vn レジスタを32本持っている。
浮動小数点数レジスタとメモリ間の読み書きは、汎用レジスタとメモリ間と 同じように簡単に行なえる。
浮動小数点数を複数格納できるベクトルレジスタ (Vn) は、 データのサイズと数をレジスタ名の後ろに指定することができる。
ベクトルレジスタ (Vn) に格納された複数の浮動小数点数の1つを指定するには、 ゼロから始まるインデックスを付けて配列形式で行う。
行列 M の16個の要素をメモリ中に { m0, m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15 } の順に格納
1.2345678987654321 3ff-3c0ca44de3938 -1.2345678987654321 bff-3c0ca44de3938 -9.87654E33 c6f-e6f375e71abf3 9.87654E33 46f-e6f375e71abf3 5.87654E33 46f-21bc5cd4e4725 -1.87654E-33 b92-37cb2f215b389 1.2345678987654321E299 7e0-798ba335bafbd -1.2345678987654321E-299 81e-0891ed3843971 123.8987654E1 409-35bf35b91f70e 1.2345678987653 3ff-3c0ca44de36e5 0.12345678987652 3fb-f9add3afd21d2 -123456789876543 c2d-c122186c3cfc0 -123456789876542 c2d-c122186c3cf80 -123456789876541 c2d-c122186c3cf40 1.000 3ff-0000000000000 0.1 3fb-999999999999a 0 000-0000000000000
浮動小数点数の演算は、基本的にメモリに格納されている数値をレジスタに読み込んで、演算し、メモリに書き戻すという動きになる
ARM64 (ARMv8) では浮動小数点数を1つずつ扱うスカラー型と、複数の浮動小数点数をまとめて扱うベクトル型のレジスタを扱う命令が別に存在