29.12.2014 Views

RealView Compilation Tools Compiler Reference Guide - ARM ...

RealView Compilation Tools Compiler Reference Guide - ARM ...

RealView Compilation Tools Compiler Reference Guide - ARM ...

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.

<strong>Compiler</strong>-specific Features<br />

Note<br />

Each <strong>ARM</strong>v6 SIMD intrinsic is guaranteed to be compiled into a single, inline, machine<br />

instruction for an <strong>ARM</strong> v6 architecture or processor. However, the compiler might use<br />

optimized forms of underlying instructions when it detects opportunities to do so.<br />

The <strong>ARM</strong>v6 SIMD instructions can set the GE[3:0] bits in the Application Program<br />

Status Register (APSR). The SIMD instructions might update these flags to indicate the<br />

“greater than or equal to” status of each 8/16-bit slice of a SIMD operation.<br />

The <strong>ARM</strong> compiler treats the GE[3:0] bits as a global variable. To access these bits from<br />

within your C or C++ program, either:<br />

• access bits 16-19 of the APSR through a named register variable<br />

• use the __sel intrinsic to control a SEL instruction.<br />

unsigned int __qadd16(unsigned int, unsigned int)<br />

unsigned int __qadd8(unsigned int, unsigned int)<br />

unsigned int __qasx(unsigned int, unsigned int)<br />

unsigned int __qsax(unsigned int, unsigned int)<br />

unsigned int __qsub16(unsigned int, unsigned int)<br />

unsigned int __qsub8(unsigned int, unsigned int)<br />

unsigned int __sadd16(unsigned int, unsigned int)<br />

unsigned int __sadd8(unsigned int, unsigned int)<br />

unsigned int __sasx(unsigned int, unsigned int)<br />

unsigned int __sel(unsigned int, unsigned int)<br />

unsigned int __shadd16(unsigned int, unsigned int)<br />

unsigned int __shadd8(unsigned int, unsigned int)<br />

unsigned int __shasx(unsigned int, unsigned int)<br />

unsigned int __shsax(unsigned int, unsigned int)<br />

unsigned int __shsub16(unsigned int, unsigned int)<br />

unsigned int __shsub8(unsigned int, unsigned int)<br />

unsigned int __smlad(unsigned int, unsigned int, unsigned int)<br />

unsigned long long __smlald(unsigned int, unsigned int, unsigned long long)<br />

unsigned int __smlsd(unsigned int, unsigned int, unsigned int)<br />

unsigned long long __smlsld(unsigned int, unsigned int, unsigned long long)<br />

unsigned int __smuad(unsigned int, unsigned int)<br />

unsigned int __smusd(unsigned int, unsigned int)<br />

unsigned int __ssat16(unsigned int, unsigned int)<br />

unsigned int __ssax(unsigned int, unsigned int)<br />

unsigned int __ssub16(unsigned int, unsigned int)<br />

unsigned int __ssub8(unsigned int, unsigned int)<br />

unsigned int __sxtab16(unsigned int, unsigned int)<br />

unsigned int __sxtb16(unsigned int, unsigned int)<br />

unsigned int __uadd16(unsigned int, unsigned int)<br />

unsigned int __uadd8(unsigned int, unsigned int)<br />

unsigned int __uasx(unsigned int, unsigned int)<br />

unsigned int __uhadd16(unsigned int, unsigned int)<br />

unsigned int __uhadd8(unsigned int, unsigned int)<br />

4-96 Copyright © 2007, 2010 <strong>ARM</strong> Limited. All rights reserved. <strong>ARM</strong> DUI 0348A<br />

Non-Confidential

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

Saved successfully!

Ooh no, something went wrong!