Arm Community
Arm Community
  • Site
  • User
  • Site
  • Search
  • User
Arm Community blogs
Arm Community blogs
Architectures and Processors blog Introducing the updated Arm Intrinsics Search Engine
  • Blogs
  • Mentions
  • Sub-Groups
  • Tags
  • Jump...
  • Cancel
More blogs in Arm Community blogs
  • AI blog

  • Announcements

  • Architectures and Processors blog

  • Automotive blog

  • Embedded and Microcontrollers blog

  • Internet of Things (IoT) blog

  • Laptops and Desktops blog

  • Mobile, Graphics, and Gaming blog

  • Operating Systems blog

  • Servers and Cloud Computing blog

  • SoC Design and Simulation blog

  • Tools, Software and IDEs blog

Tell us what you think
Tags
  • Helium
  • SIMD and Vector Processing Instructions
  • MVE Intrinsics
  • Artificial Intelligence (AI)
  • NEON
  • SIMD ISAs
Actions
  • RSS
  • More
  • Cancel
Related blog posts
Related forum threads

Introducing the updated Arm Intrinsics Search Engine

Gemma Paris
Gemma Paris
August 25, 2021
3 minute read time.

One of the most vital aspects of Arm’s ecosystem are developers. They come in all job titles and functions, and we try our best to provide each one with the information, tools, and guidance to make their lives easier. Being the lead of Developer Education for the Client line of business at Arm, there are so many areas of the stack we could focus on, from IP implementation to a game developer. We try and focus on the items that will make the most impact and one of these is Intrinsics.  

What is an ISA?

An Instruction Set Architecture (ISA) is part of the abstract model of a computer. It defines how software controls the CPU. The Arm ISA family allows developers to write software and firmware that conforms to the Arm specifications, secure in the knowledge that any Arm-based processor will execute it in the same way. These ISAs also have extensions that can be used to optimize their use amongst a range of use cases. You have Arm Neon, an advanced Single Instruction Multiple Data (SIMD) architecture extension for the Arm Cortex-A processor series. Arm Helium, an M-Profile Vector Extension (MVE) that can deliver a significant performance uplift for machine learning and signal processing. Then you have Scalable Vector Extensions (SVE/SVE2), which are vector extensions for AArch64 execution mode for the A64 instruction set of the Armv8 architecture.

What are Intrinsics?

“Intrinsics are native C/C++ function calls that the compiler replaces with an appropriate instruction or sequence of instructions, providing almost as much control as writing assembly language, while leaving the allocation of registers to the compiler, so that developers can focus on the algorithms.”

On developer.arm.com we had two intrinsic reference documentation pages for Neon Intrinsics and, more recently, Helium (MVE) Intrinsics. The pages and their features performed the tasks at a basic level. However, end user and internal company feedback highlighted that the user experience and performance of the page needed some attention.

Goals of the project

With the blessing of a large number of internal stakeholders, we set out to scope this project and came up with 4 goals:

  • Improve ease of development when using Arm Intrinsics;
  • Help developers write more efficient code;
  • Reduce the time it takes to find and understand instructions; and
  • Compare Intrinsics instructions between technologies.

Our partners on the project, Akendi, did fantastic user research as part of this project. The company conducted a number of in-depth interviews with developers of all kinds to fully understand what was missing, what features are needed and the best way to represent this on a single page.

The Arm Intrinsics search engine 

A few months on and we have put the new search engine into production on Developer.arm.com. User acceptance testing and launch was met with positive feedback from both internal users and external end users.

The main features

The new user features focus on the user interface (UI) for end users, along with some upgrades on the Arm side to ensure the engine loads quickly for end users. For the UI upgrades, here is the brief overview of upgrades:

  • Enhanced search and ‘pinning to top’:
    Search within an Intrinsics description and by full or partial instruction and other data fields. Pin these to the top of your search for later.
  • Multiple filtering options:
    Filter by Return Base Type, Element Bit Size, Architecture, Instruction Group.
  • Support for rich content:
    Provide code examples and links to further information such as GitHub, Arm docs, and so on.
  • Easy comparison:
    Compare the results of multiple searches.
  • Common data structure:
    Expand the application with more instruction sets where the data conforms to the common data structure.

The following screenshots are what the search engine looks like on developer.arm.com:

Arm Intrinsics search engine

Arm Intrinsics search engine can be filtered by SIMD ISA, base type, bit size and architecture. 

The following is an example of the single view of a Neon Intrinsic example which shows a description, results, compatibility and an example operation:

Arm Intrinsics Neon Example

Working for you

Creating, publishing, and maintaining these items like the Arm Intrinsics was a priority for us over the last year, and it is a priority to keep it up to date, so we will add some new features as soon as we can. We welcome feedback on the search engine which you can provide directly on Arm Developer.

In the meantime, why not try out the Arm Intrinsics search engine? Need some resources? Check out the Neon and Helium developer pages for guides on how to get the best out of the search engine:

https://developer.arm.com/architectures/instruction-sets/simd-isas/neon

https://developer.arm.com/architectures/instruction-sets/simd-isas/helium

We are constantly updating these guides along with adding new ones. Please let us know if you have any suggestions on what you would like to see.

Arm Intrinsics Search Engine

Anonymous
Architectures and Processors blog
  • When a barrier does not block: The pitfalls of partial order

    Wathsala Vithanage
    Wathsala Vithanage
    Acquire fences aren’t always enough. See how LDAPR exposed unsafe interleavings and what we did to patch the problem.
    • September 15, 2025
  • Introducing GICv5: Scalable and secure interrupt management for Arm

    Christoffer Dall
    Christoffer Dall
    Introducing Arm GICv5: a scalable, hypervisor-free interrupt controller for modern multi-core systems with improved virtualization and real-time support.
    • April 28, 2025
  • Getting started with AARCHMRS Features.json using Python

    Joh
    Joh
    A high-level introduction to the Arm Architecture Machine Readable Specification (AARCHMRS) Features.json with some examples to interpret and start to work with the available data using Python.
    • April 8, 2025