Add Highway CRC implementation
Description
This MR adds a Highway ported implementation of the armral CRC function set. The merge includes the following changes:
- Added a Google Highway submodule
- Updated the build process to compile Google Highway, when selected
- Split the acle and highway build targets using custom cmake files:
armral_acle.cmake.inandarmral_hwy.cmake.in - Added a Highway implementation for the functions in
crc_common.hpp, this was done by moving theacleimplementation to its own subfolder and adding the Highway implementation to ahighwaysubdirectory. A commoncrc_common.hppselects the appropriate implementation. - Added a
hwy_types.hppheader file. - Benchmarks and unit-tests have been added.
Checklist
- [] Contribution meets RAL's licence terms
- [] New functions adhere to RAL's naming scheme
- [] Contribution conforms to RAL's directory structure
- [] Documentation updated
- [] "Unreleased" section of the Changelog updated
- []
clang-formatandclang-tidyrun and changes included (C/C++ code) - []
flake8run and changes included (Python code) - []
cmake-formatrun and changes included (CMake code) - [] Tests added or updated
- [] Tests pass when run with AddressSanitizer
- [] Benchmarks added or updated
For any items that are not checked, please provide details.