arangodb / velocypack

A fast and compact format for serialization and storage
Other
420 stars 40 forks source link

Feature/sse2neon support #129

Closed cpjulia closed 2 years ago

cpjulia commented 2 years ago

This PR enables support for SSE 4.2 optimization for SIMD instructions being mapped to ARM's NEON instructions. The option to use ARM's NEON optimization instructions is provided through the compiler flag BuildSseOpt. Default is OFF, and not supplying this flag in the command also defaults to OFF. This affects the usage of optimization instructions for intel in the way mentioned above: if the flag is not supplied or its value is set to OFF, the optimization instructions would not be used.

Example for compiling with such flag:

cmake -DMaintainer=Off -DBuildVelocyPackExamples=On -DCMAKE_CXX_STANDARD=20 -DBuildTools=On -DBuildTests=On -DBuildLargeTests=Off -DBuildAsmTest=Off -DBuildBench=Off -DHashType=xxhash -DBuildSseOpt=On -DUseIPO=Off -DCMAKE_BUILD_TYPE=Release
coveralls commented 2 years ago

Coverage Status

Coverage increased (+0.0007%) to 96.673% when pulling 3c9fdca5b0fd64aee8ad6f7dacffe359a7067830 on feature/sse2neon-support into c31743914e0e99d9536e02c4d1a5ee9b2f0fe2cb on main.