Portable 128-bit SIMD for Ada.
Flyology SIMD provides explicit integer and floating-point vector operations for ordinary Ada programs. The scalar backend defines each result. NEON and x86 backends implement the same semantics behind private representations.
Experimental v0.1 API. GCC-based GNAT is the verified compiler family.
0000 0000 0000 0001Semantics first. Mechanism private.
The same operation contract applies on every target. Scalar source keeps programs buildable where no SIMD backend exists. Target-specific backends provide efficient code generation where the compiler and instruction set have been verified.
- 01Identical public semantics
Wrapping, saturation, shifts, masks, floating-point edge cases, and memory extent have defined results.
- 02Scalar source portability
The authoritative backend runs on every supported GCC-based GNAT target.
- 03Efficient target code
AArch64 NEON and x86-64 SSE2 implement the complete 128-bit family. AVX2 accelerates selected buffer loops.
Types carry the lane shape.
Signed, unsigned, floating-point, and mask values do not convert implicitly. Operations such as Add_Wrap, Add_Saturate, Min_Number, and Load_Partial state their portable behavior.
U8x1616 × 8I8x1616 × 8U16x88 × 16I16x88 × 16U32x44 × 32I32x44 × 32U64x22 × 64I64x22 × 64F32x44 × 32F64x22 × 64