Optimized implementations of various library functions for ARM architecture processors
710
stars
1,021
commits
C
primary language
Aug 6, 2026
updated
High-performance, architecture-aware implementations of common library functions for Arm processors.
This repository offers a collection of optimized implementations of various library functions tailored for Arm processors. Whether you are developing for embedded systems, mobile devices, or high-performance computing, these routines are designed to maximize efficiency and performance on Arm platforms.
[!NOTE] Arm is a registered trademark of Arm Limited (or its subsidiaries or affiliates).
Here is a quick overview of the repository's layout:
build/: Directory created by the build process.fp/: Floating-point basic arithmetic sources.math/: Elementary math subproject sources.networking/: Networking subproject sources.string/: String routines subproject sources.To build and test the routines in all sub-projects:
Clone the repository:
git clone https://github.com/ARM-software/optimized-routines.git
cd optimized-routines
Set up the build configuration:
cp config.mk.dist config.mk
# Edit config.mk as needed
Build and test:
make
make check
Install: By default install headers and library at prefix=/usr/
make prefix=/path/to/install install
Building and Testing a single subproject:
In order to build a single subproject <sub> use the following commands
make all-<sub>
make check-<sub>
make prefix=/path/to/install install-<sub>
Alternatively, the config.mk file can be updated to specify a list of
sub-projects.
Cross-Building:
For cross-building, set CROSS_COMPILE in config.mk and define EMULATOR
for cross-testing (e.g., using qemu-user or remote access to a target
machine). Refer to examples in config.mk.dist.
This project is licensed under a dual license, allowing you to choose between:
For full details, please refer to the LICENSE file.
We welcome contributions from the community! To contribute:
Sign the Contributor Assignment Agreement:
Please follow the instructions in contributor-agreement.pdf. This step is necessary to allow upstreaming code to projects that require copyright assignment.
Review Contribution Guidelines:
Please refer to the main CONTRIBUTING.md for our general contribution guidelines.
Each subdirectory may have its own README.md file detailing
specific contribution requirements. Please review these guidelines before
submitting your contributions.
Each subdirectory has its own maintainers, please refer to MAINTAINERS.md for a list of maintainers to contact.
Regular biannual releases are tagged as vYY.MM. All release are available at
https://github.com/ARM-software/optimized-routines/releases.
The latest release is v26.07.
For updates and discussions:
Thank you for your interest in the Arm Optimized Routines project. We look forward to your contributions and feedback!
C
74.6%
Assembly
15.1%
Scilab
6.8%
Julia
1.7%
Python
1.1%
Optimized implementations of various library functions for ARM architecture processors
710
stars
1,021
commits
C
primary language
Aug 6, 2026
updated
High-performance, architecture-aware implementations of common library functions for Arm processors.
This repository offers a collection of optimized implementations of various library functions tailored for Arm processors. Whether you are developing for embedded systems, mobile devices, or high-performance computing, these routines are designed to maximize efficiency and performance on Arm platforms.
[!NOTE] Arm is a registered trademark of Arm Limited (or its subsidiaries or affiliates).
Here is a quick overview of the repository's layout:
build/: Directory created by the build process.fp/: Floating-point basic arithmetic sources.math/: Elementary math subproject sources.networking/: Networking subproject sources.string/: String routines subproject sources.To build and test the routines in all sub-projects:
Clone the repository:
git clone https://github.com/ARM-software/optimized-routines.git
cd optimized-routines
Set up the build configuration:
cp config.mk.dist config.mk
# Edit config.mk as needed
Build and test:
make
make check
Install: By default install headers and library at prefix=/usr/
make prefix=/path/to/install install
Building and Testing a single subproject:
In order to build a single subproject <sub> use the following commands
make all-<sub>
make check-<sub>
make prefix=/path/to/install install-<sub>
Alternatively, the config.mk file can be updated to specify a list of
sub-projects.
Cross-Building:
For cross-building, set CROSS_COMPILE in config.mk and define EMULATOR
for cross-testing (e.g., using qemu-user or remote access to a target
machine). Refer to examples in config.mk.dist.
This project is licensed under a dual license, allowing you to choose between:
For full details, please refer to the LICENSE file.
We welcome contributions from the community! To contribute:
Sign the Contributor Assignment Agreement:
Please follow the instructions in contributor-agreement.pdf. This step is necessary to allow upstreaming code to projects that require copyright assignment.
Review Contribution Guidelines:
Please refer to the main CONTRIBUTING.md for our general contribution guidelines.
Each subdirectory may have its own README.md file detailing
specific contribution requirements. Please review these guidelines before
submitting your contributions.
Each subdirectory has its own maintainers, please refer to MAINTAINERS.md for a list of maintainers to contact.
Regular biannual releases are tagged as vYY.MM. All release are available at
https://github.com/ARM-software/optimized-routines/releases.
The latest release is v26.07.
For updates and discussions:
Thank you for your interest in the Arm Optimized Routines project. We look forward to your contributions and feedback!
C
74.6%
Assembly
15.1%
Scilab
6.8%
Julia
1.7%
Python
1.1%