18.36 NEON instructions without equivalent intrinsics

Most NEON instructions have an equivalent NEON intrinsic, however a small subset of instructions do not.

Even though these NEON instructions do not have equivalent intrinsics, their
behavior can still be expressed either by using different intrinsics or standard C
operations. See the following table for a list of NEON instructions that do not have
an equivalent intrinsic:

Table 18-2 NEON instructions without equivalent intrinsics

NEON instruction

Alternative

VBIF

VBIT

The vbsl* intrinsics compile to any of
VBSL/VBIF/VBIT depending on register
allocation.

VLDM

VLDR

VSTM

VSTR

The compiler generates these instructions automatically as appropriate for
accesses to floating-point and vector data types.

VMRS

VMSR

Use the named register variable __asm("fpscr") to access the
Floating-Point Status and Control Register (FPSCR). Using the named register variable causes the
compiler to emit VMRS/VMSR instructions as required.

VPOP

VPUSH

These instructions are used for saving and restoring callee-saved registers. The
compiler generates them automatically at function entry and exit as appropriate for the registers
used in the function.

VSWP

This instruction has no benefit as an intrinsic because intrinsics use variables
to encapsulate register allocation and access. As a result. swapping of variables can be performed
using simple C-style variable assignments.