**Joel Falcou, Ph. D**
Project
(insert ../crumbs.html here)
# EVE - the Expressive Vector Engine
EVE is a reimplementation of the old EVE SIMD library by Falcou et al. which for a while was
named Boost.SIMD. It's a C++20 and onward implementation of a type based wrapper around
SIMD extensions sets for most current architectures. It aims at showing how C++20 can be used
to design and implement efficient, low level, high abstraction library suited for high performances.
It's a research project first and an open source library second. We reserve the right to
change API and baseline compiler required until the first official 0.1 release. However, we'll try
to minimize disruption. Semantic versioning will ensure API retro-compatibility if anything huge
needs to change.
## Getting Started
- [Installing and using the library](https://jfalcou.github.io/eve/install.html)
- [Your first SIMD code using EVE](https://jfalcou.github.io/eve/tutorials.html)
- [References Documentation](https://jfalcou.github.io/eve/modules.html)
## Video materials
### SIMD in C++20: EVE of a new Era - CppCon 2021

### SIMD Algorithms Design
](http://img.youtube.com/vi/U1e_k8xmwR0/0.jpg)
## Current status - Operationnal
EVE is considered **operationnal**: it's usable, has a large feature sets for a sensible amount of instructions sets but it's possible some values or performances issues may still remain. Don't hesitate to report any funky code-gen or bad optimizations so we can deliver the best performance around.
### Current roster of supported Instructions Sets
Full support with tests:
- **Intel**
- SSE2, SSSE3, SSE3, SSE4.1, SSE4.2
- AVX, AVX2, FMA3
- AVX512 Skymake style (F,CD,DQ,BW,VL)
- **ARM**
- NEON (64 & 128 bits)
- AARCH64
Partial/In-progress support with minimal checks:
- **PowerPC**
- VMX
- VSX
- We **do not support** ARM SVE with dynamic as the execution model makes no sense and the current compiler support is not adequate for us. **WOrk is in progress for fixed size SVE support**.
- We **do not support** GPGPU, this is the job for another tool.
### Current roster of supported compiler
EVE requires a C++ 20 compliant compiler. The main features from C++17/20 we require are:
- Concepts and requires
- Template lambdas
- Inline variables
- Non-Type Template Parameters
- `if constexpr`
- Functions from `