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 />

__smlsldx<br />

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

signed multiplications. Take difference of products,<br />

subtracting high halfword product from low halfword<br />

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

addition is not detected.<br />

int64<br />

int16x2,<br />

int16x2,<br />

u64<br />

None<br />

__smuad<br />

2x16-bit signed multiplications, adding the products<br />

together.<br />

int32<br />

int16x2,<br />

int16x2<br />

Q bit<br />

__smusd<br />

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

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

halfword product.<br />

int32<br />

int16x2,<br />

int16x2<br />

None<br />

__smusdx<br />

2x16-bit signed multiplications. Product of high halfword<br />

of first operand and low halfword of second operand is<br />

subtracted from product of low halfword of first operand<br />

and high halfword of second operand, and difference is<br />

added to third operand.<br />

int32<br />

int16x2,<br />

int16x2<br />

None<br />

__ssat16 2x16-bit signed saturation to a selected width int16x2 int16x2,<br />

/*constant*<br />

/ unsigned<br />

int<br />

Q bit<br />

__ssax<br />

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

halfwords and add low halfwords<br />

int16x2<br />

int16x2,<br />

int16x2<br />

APSR.GE bits<br />

__ssub16 2x16-bit signed subtraction int16x2 int16x2,<br />

int16x2<br />

APSR.GE bits<br />

__ssub8 4x8-bit signed subtraction int8x4 int8x4 APSR.GE bits<br />

__smuadx<br />

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

signed multiplications, and add products together<br />

int32<br />

int16x2,<br />

int16x2<br />

Q bit<br />

__sxtab16<br />

Two values at bit positions [23:16][7:0] are extracted from<br />

second operand, sign-extended to 16 bits, and added to<br />

first operand<br />

int16x2<br />

int8x4,<br />

int16x2<br />

None<br />

__sxtb16<br />

Two values at bit positions [23:16][7:0] are extracted from<br />

the operand and sign-extended to 16 bits<br />

int16x2 int8x4 None<br />

__uadd16 2x16-bit unsigned addition uint16x2 uint16x2,<br />

uint16x2<br />

APSR.GE bits<br />

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

Non-Confidential,<br />

ID101213

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

Saved successfully!

Ooh no, something went wrong!