Page 364 - ARM 64 Bit Assembly Language
P. 364

354 Chapter 10

                  •  T must be 8b, 16b, 4h, 8h, 2s, 4s,or 2d.
                  •  Tf must be 2s, 4s,or 2d.
                  •  Td/Ts must be 4h/8b, 8h/16b, 2s/4h, 4s/8h, 1d/2s,or 2d/4s.

                  10.6.4.2 Operations

                   Name       Effect                              Description
                   {f}addp    n ← # of elements                   Add elements of two vectors pair-
                              for 0 ≤ i< (n ÷ 2) do               wise and store the results in another
                                Vd[i]← Vm[i]+ Vm[i + 1]           vector.
                              end for
                              for (n ÷ 2) ≤ i< n do
                                j ← i − (n ÷ 2)
                                Vd[i]← Vn[j]+ Vn[j + 1]
                              end for
                   addlp      n ← # of elements                   Add elements of a vector pairwise
                              for 0 ≤ i< (n ÷ 2) by 2 do          and store the results in another vec-
                                Vd[i]←                            tor.
                                   ≺Vm[i]  + ≺Vm[i + 1]
                              end for
                   adalp      n ← # of elements                   Add elements of a vector pairwise
                              for 0 ≤ i< (n ÷ 2) by 2 do          and accumulate the results in another
                                Vd[i]← Vd[i]+                     vector.
                                   ≺Vm[i]  + ≺Vm[i + 1]
                              end for


                  10.6.4.3 Examples
                1     addp    v1.16b,v6.16b,v8.16b  // Add pairwise
                2     saddlp  v3.2d,v4.4s    // Extend and add pairwise
                3     uadalp  v2.4h,v6.8b    // Extend, add pairwise, and accumulate



                  10.6.5 Absolute difference

                  These instructions subtract the elements of one vector from another and store or accumulate
                  the absolute value of the results:

                  abd       Vector integer absolute difference,
                  fabd      Vector floating point absolute difference,
                  aba       Vector integer absolute difference and accumulate,
   359   360   361   362   363   364   365   366   367   368   369