05.02.2013 Views

ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition

ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition

ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Instruction Details<br />

A8.6.306 VHADD, VHSUB<br />

Vector Halving Add adds corresponding elements in two vectors of integers, shifts each result right one bit,<br />

<strong>and</strong> places the final results in the destination vector. The results of the halving operations are truncated (for<br />

rounded results see VRHADD on page A8-734).<br />

Vector Halving Subtract subtracts the elements of the second oper<strong>and</strong> from the corresponding elements of<br />

the first oper<strong>and</strong>, shifts each result right one bit, <strong>and</strong> places the final results in the destination vector. The<br />

results of the halving operations are truncated (there is no rounding version).<br />

The oper<strong>and</strong> <strong>and</strong> result elements are all the same type, <strong>and</strong> can be any one of:<br />

8-bit, 16-bit, or 32-bit signed integers<br />

8-bit, 16-bit, or 32-bit unsigned integers.<br />

Encoding T1 / A1 Advanced SIMD<br />

VH , , <br />

VH , , <br />

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />

1 1 1 U 1 1 1 1 0 D size Vn Vd 0 0 op 0 N Q M 0 Vm<br />

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />

1 1 1 1 0 0 1 U 0 D size Vn Vd 0 0 op 0 N Q M 0 Vm<br />

if Q == ‘1’ && (Vd == ‘1’ || Vn == ‘1’ || Vm == ‘1’) then UNDEFINED;<br />

if size == ‘11’ then UNDEFINED;<br />

add = (op == ‘0’); unsigned = (U == ‘1’);<br />

esize = 8

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!