04.01.2015 Views

RealView Compilation Tools - ARM Information Center

RealView Compilation Tools - ARM Information Center

RealView Compilation Tools - ARM Information Center

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.

Compiler-specific Features<br />

Table 4-16 (continued)<br />

Intrinsic<br />

Summary description<br />

Returns<br />

Byte lanes<br />

Operands<br />

Side-effects<br />

__shasx<br />

Exchange halfwords of the second operand, add high<br />

halfwords and subtract low halfwords, halving the results<br />

int16x2<br />

int16x2,<br />

int16x2<br />

None<br />

__shsax<br />

Exchange halfwords of the second operand, subtract high<br />

halfwords and add low halfwords, halving the results<br />

int16x2<br />

int16x2,<br />

int16x2<br />

None<br />

__shsub16 2x16-bit signed subtraction, halving the results int16x2 int16x2,<br />

int16x2<br />

__shsub8 4x8-bit signed subtraction, halving the results int8x4 int8x4,<br />

int8x4<br />

None<br />

None<br />

__smlad<br />

2x16-bit multiplication, adding both results to third<br />

operand<br />

int32<br />

int16x2,<br />

int16x2,<br />

int32<br />

Q bit<br />

__smladx<br />

Exchange halfwords of the second operand, 2x16-bit<br />

multiplication, adding both results to third operand<br />

int16x2<br />

int16x2,<br />

int16x2<br />

Q bit<br />

__smlald<br />

2x16-bit multiplication, adding both results to third<br />

operand. Overflow in addition is not detected.<br />

int64<br />

int16x2,<br />

int16x2,<br />

int64<br />

None<br />

__smlaldx<br />

Exchange halfwords of second operand, perform 2x16-bit<br />

multiplication, adding both results to third operand.<br />

Overflow in addition is not detected.<br />

int64<br />

int16x2,<br />

int16x2,<br />

int64<br />

None<br />

__smlsd<br />

2x16-bit signed multiplications. Take difference of<br />

products, subtract high halfword product from low<br />

halfword product, add difference to third operand.<br />

int32<br />

int16x2,<br />

int16x2,<br />

int32<br />

Q bit<br />

__smlsdx<br />

Exchange halfwords of second operand, then 2x16-bit<br />

signed multiplications. Product difference is added to a<br />

third accumulate operand.<br />

int32<br />

int16x2,<br />

int16x2,<br />

int32<br />

Q bit<br />

__smlsld<br />

2x16-bit signed multiplications. Take difference of<br />

products, subtracting high halfword product from low<br />

halfword product, and add difference to third operand.<br />

Overflow in addition is not detected.<br />

int64<br />

int16x2,<br />

int16x2,<br />

int64<br />

None<br />

<strong>ARM</strong> DUI 0348C Copyright © 2007-2010 <strong>ARM</strong>. All rights reserved. 4-113<br />

ID101213<br />

Non-Confidential,

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

Saved successfully!

Ooh no, something went wrong!