Page 372 - ARM 64 Bit Assembly Language
P. 372

362 Chapter 10

                  10.7.1 Vector multiply and divide

                  These instructions are used to multiply the corresponding elements from two vectors:

                  mul       Vector integer multiply,
                  mla       Vector integer multiply accumulate,
                  mls       Vector integer multiply subtract,
                  fmul      Vector floating point multiply,
                  fdiv      Vector floating point divide,
                  fmla      Vector floating point multiply accumulate,
                  fmls      Vector floating point multiply subtract,
                  mull      Vector multiply long,
                  mlal      Vector multiply accumulate long,
                  mlsl      Vector multiply subtract long,
                  pmul      Vector polynomial multiply, and
                  pmull     Vector polynomial multiply long.

                  10.7.1.1 Syntax

                       mul             Vd.T, Vn.T, Vm.T
                       mla             Vd.T, Vn.T, Vm.T
                       mls             Vd.T, Vn.T, Vm.T
                       (s|u)mull{2}    Vd.Td, Vn.Ts, Vm.Ts
                       (s|u)mlal{2}    Vd.Td, Vn.Ts, Vm.Ts
                       (s|u)mlsl{2}    Vd.Td, Vn.Ts, Vm.Ts
                       fmul{x}         Vd.Tf, Vn.Tf, Vm.Tf
                       fdiv            Vd.Tf, Vn.Tf, Vm.Tf
                       fmla            Vd.Tf, Vn.Tf, Vm.Tf
                       fmls            Vd.Tf, Vn.Tf, Vm.Tf
                       pmul            Vd.8b, Vn.8b, Vm.8b
                       pmull{2}        Vd.8b, Vn.16b, Vm.16b


                  •  T may be 8b, 16b, 4h, 8h, 2s,or 4s.
                  •  Tf may be 2s, 4s,or 2d.
                  •  T2 may be 8b or 16b.
                  •  If x is present, then 0 ×±∞ → ±2 (vector).
                  •  If 2 is present, then
                     • Td/Ts may be 8h/16b, 4s/8h,or 2d/4s.
                     • the upper 64 bits of the source vectors are used.
                  •  If 2 is not present, then Td/Ts may be 8h/8b, 4s/4h,or 2d/2s.
   367   368   369   370   371   372   373   374   375   376   377