NSIMD documentation
Index | Tutorial | FAQ | Contribute | API overview | API reference | Wrapped intrinsics | Modules

Fill vector with increasing values

Description

Returns a vectors whose first element is zero, the second is one and so on.

C base API (generic)

#define viota(type)
#define viota_e(type, simd_ext)

C advanced API (generic, requires C11)

#define nsimd_iota()

C++ base API (generic)

template <NSIMD_CONCEPT_VALUE_TYPE T> typename simd_traits<T, NSIMD_SIMD>::simd_vector NSIMD_VECTORCALL iota(T);

C++ advanced API

template <NSIMD_CONCEPT_VALUE_TYPE T, NSIMD_CONCEPT_SIMD_EXT SimdExt> pack<T, 1, SimdExt> iota(pack<T, 1, SimdExt> const&);
template <NSIMD_CONCEPT_VALUE_TYPE T, int N, NSIMD_CONCEPT_SIMD_EXT SimdExt> pack<T, N, SimdExt> iota(pack<T, N, SimdExt> const&);
template <NSIMD_CONCEPT_PACK SimdVector> SimdVector iota();

C base API (architecture specifics)

AVX2

nsimd_avx2_vf64 NSIMD_VECTORCALL nsimd_iota_avx2_f64(void);
nsimd_avx2_vf32 NSIMD_VECTORCALL nsimd_iota_avx2_f32(void);
nsimd_avx2_vf16 NSIMD_VECTORCALL nsimd_iota_avx2_f16(void);
nsimd_avx2_vi64 NSIMD_VECTORCALL nsimd_iota_avx2_i64(void);
nsimd_avx2_vi32 NSIMD_VECTORCALL nsimd_iota_avx2_i32(void);
nsimd_avx2_vi16 NSIMD_VECTORCALL nsimd_iota_avx2_i16(void);
nsimd_avx2_vi8 NSIMD_VECTORCALL nsimd_iota_avx2_i8(void);
nsimd_avx2_vu64 NSIMD_VECTORCALL nsimd_iota_avx2_u64(void);
nsimd_avx2_vu32 NSIMD_VECTORCALL nsimd_iota_avx2_u32(void);
nsimd_avx2_vu16 NSIMD_VECTORCALL nsimd_iota_avx2_u16(void);
nsimd_avx2_vu8 NSIMD_VECTORCALL nsimd_iota_avx2_u8(void);

SVE512

nsimd_sve512_vf64 NSIMD_VECTORCALL nsimd_iota_sve512_f64(void);
nsimd_sve512_vf32 NSIMD_VECTORCALL nsimd_iota_sve512_f32(void);
nsimd_sve512_vf16 NSIMD_VECTORCALL nsimd_iota_sve512_f16(void);
nsimd_sve512_vi64 NSIMD_VECTORCALL nsimd_iota_sve512_i64(void);
nsimd_sve512_vi32 NSIMD_VECTORCALL nsimd_iota_sve512_i32(void);
nsimd_sve512_vi16 NSIMD_VECTORCALL nsimd_iota_sve512_i16(void);
nsimd_sve512_vi8 NSIMD_VECTORCALL nsimd_iota_sve512_i8(void);
nsimd_sve512_vu64 NSIMD_VECTORCALL nsimd_iota_sve512_u64(void);
nsimd_sve512_vu32 NSIMD_VECTORCALL nsimd_iota_sve512_u32(void);
nsimd_sve512_vu16 NSIMD_VECTORCALL nsimd_iota_sve512_u16(void);
nsimd_sve512_vu8 NSIMD_VECTORCALL nsimd_iota_sve512_u8(void);

SVE

nsimd_sve_vf64 NSIMD_VECTORCALL nsimd_iota_sve_f64(void);
nsimd_sve_vf32 NSIMD_VECTORCALL nsimd_iota_sve_f32(void);
nsimd_sve_vf16 NSIMD_VECTORCALL nsimd_iota_sve_f16(void);
nsimd_sve_vi64 NSIMD_VECTORCALL nsimd_iota_sve_i64(void);
nsimd_sve_vi32 NSIMD_VECTORCALL nsimd_iota_sve_i32(void);
nsimd_sve_vi16 NSIMD_VECTORCALL nsimd_iota_sve_i16(void);
nsimd_sve_vi8 NSIMD_VECTORCALL nsimd_iota_sve_i8(void);
nsimd_sve_vu64 NSIMD_VECTORCALL nsimd_iota_sve_u64(void);
nsimd_sve_vu32 NSIMD_VECTORCALL nsimd_iota_sve_u32(void);
nsimd_sve_vu16 NSIMD_VECTORCALL nsimd_iota_sve_u16(void);
nsimd_sve_vu8 NSIMD_VECTORCALL nsimd_iota_sve_u8(void);

CPU

nsimd_cpu_vf64 NSIMD_VECTORCALL nsimd_iota_cpu_f64(void);
nsimd_cpu_vf32 NSIMD_VECTORCALL nsimd_iota_cpu_f32(void);
nsimd_cpu_vf16 NSIMD_VECTORCALL nsimd_iota_cpu_f16(void);
nsimd_cpu_vi64 NSIMD_VECTORCALL nsimd_iota_cpu_i64(void);
nsimd_cpu_vi32 NSIMD_VECTORCALL nsimd_iota_cpu_i32(void);
nsimd_cpu_vi16 NSIMD_VECTORCALL nsimd_iota_cpu_i16(void);
nsimd_cpu_vi8 NSIMD_VECTORCALL nsimd_iota_cpu_i8(void);
nsimd_cpu_vu64 NSIMD_VECTORCALL nsimd_iota_cpu_u64(void);
nsimd_cpu_vu32 NSIMD_VECTORCALL nsimd_iota_cpu_u32(void);
nsimd_cpu_vu16 NSIMD_VECTORCALL nsimd_iota_cpu_u16(void);
nsimd_cpu_vu8 NSIMD_VECTORCALL nsimd_iota_cpu_u8(void);

SVE2048

nsimd_sve2048_vf64 NSIMD_VECTORCALL nsimd_iota_sve2048_f64(void);
nsimd_sve2048_vf32 NSIMD_VECTORCALL nsimd_iota_sve2048_f32(void);
nsimd_sve2048_vf16 NSIMD_VECTORCALL nsimd_iota_sve2048_f16(void);
nsimd_sve2048_vi64 NSIMD_VECTORCALL nsimd_iota_sve2048_i64(void);
nsimd_sve2048_vi32 NSIMD_VECTORCALL nsimd_iota_sve2048_i32(void);
nsimd_sve2048_vi16 NSIMD_VECTORCALL nsimd_iota_sve2048_i16(void);
nsimd_sve2048_vi8 NSIMD_VECTORCALL nsimd_iota_sve2048_i8(void);
nsimd_sve2048_vu64 NSIMD_VECTORCALL nsimd_iota_sve2048_u64(void);
nsimd_sve2048_vu32 NSIMD_VECTORCALL nsimd_iota_sve2048_u32(void);
nsimd_sve2048_vu16 NSIMD_VECTORCALL nsimd_iota_sve2048_u16(void);
nsimd_sve2048_vu8 NSIMD_VECTORCALL nsimd_iota_sve2048_u8(void);

NEON128

nsimd_neon128_vf64 NSIMD_VECTORCALL nsimd_iota_neon128_f64(void);
nsimd_neon128_vf32 NSIMD_VECTORCALL nsimd_iota_neon128_f32(void);
nsimd_neon128_vf16 NSIMD_VECTORCALL nsimd_iota_neon128_f16(void);
nsimd_neon128_vi64 NSIMD_VECTORCALL nsimd_iota_neon128_i64(void);
nsimd_neon128_vi32 NSIMD_VECTORCALL nsimd_iota_neon128_i32(void);
nsimd_neon128_vi16 NSIMD_VECTORCALL nsimd_iota_neon128_i16(void);
nsimd_neon128_vi8 NSIMD_VECTORCALL nsimd_iota_neon128_i8(void);
nsimd_neon128_vu64 NSIMD_VECTORCALL nsimd_iota_neon128_u64(void);
nsimd_neon128_vu32 NSIMD_VECTORCALL nsimd_iota_neon128_u32(void);
nsimd_neon128_vu16 NSIMD_VECTORCALL nsimd_iota_neon128_u16(void);
nsimd_neon128_vu8 NSIMD_VECTORCALL nsimd_iota_neon128_u8(void);

AVX512_SKYLAKE

nsimd_avx512_skylake_vf64 NSIMD_VECTORCALL nsimd_iota_avx512_skylake_f64(void);
nsimd_avx512_skylake_vf32 NSIMD_VECTORCALL nsimd_iota_avx512_skylake_f32(void);
nsimd_avx512_skylake_vf16 NSIMD_VECTORCALL nsimd_iota_avx512_skylake_f16(void);
nsimd_avx512_skylake_vi64 NSIMD_VECTORCALL nsimd_iota_avx512_skylake_i64(void);
nsimd_avx512_skylake_vi32 NSIMD_VECTORCALL nsimd_iota_avx512_skylake_i32(void);
nsimd_avx512_skylake_vi16 NSIMD_VECTORCALL nsimd_iota_avx512_skylake_i16(void);
nsimd_avx512_skylake_vi8 NSIMD_VECTORCALL nsimd_iota_avx512_skylake_i8(void);
nsimd_avx512_skylake_vu64 NSIMD_VECTORCALL nsimd_iota_avx512_skylake_u64(void);
nsimd_avx512_skylake_vu32 NSIMD_VECTORCALL nsimd_iota_avx512_skylake_u32(void);
nsimd_avx512_skylake_vu16 NSIMD_VECTORCALL nsimd_iota_avx512_skylake_u16(void);
nsimd_avx512_skylake_vu8 NSIMD_VECTORCALL nsimd_iota_avx512_skylake_u8(void);

AARCH64

nsimd_aarch64_vf64 NSIMD_VECTORCALL nsimd_iota_aarch64_f64(void);
nsimd_aarch64_vf32 NSIMD_VECTORCALL nsimd_iota_aarch64_f32(void);
nsimd_aarch64_vf16 NSIMD_VECTORCALL nsimd_iota_aarch64_f16(void);
nsimd_aarch64_vi64 NSIMD_VECTORCALL nsimd_iota_aarch64_i64(void);
nsimd_aarch64_vi32 NSIMD_VECTORCALL nsimd_iota_aarch64_i32(void);
nsimd_aarch64_vi16 NSIMD_VECTORCALL nsimd_iota_aarch64_i16(void);
nsimd_aarch64_vi8 NSIMD_VECTORCALL nsimd_iota_aarch64_i8(void);
nsimd_aarch64_vu64 NSIMD_VECTORCALL nsimd_iota_aarch64_u64(void);
nsimd_aarch64_vu32 NSIMD_VECTORCALL nsimd_iota_aarch64_u32(void);
nsimd_aarch64_vu16 NSIMD_VECTORCALL nsimd_iota_aarch64_u16(void);
nsimd_aarch64_vu8 NSIMD_VECTORCALL nsimd_iota_aarch64_u8(void);

AVX512_KNL

nsimd_avx512_knl_vf64 NSIMD_VECTORCALL nsimd_iota_avx512_knl_f64(void);
nsimd_avx512_knl_vf32 NSIMD_VECTORCALL nsimd_iota_avx512_knl_f32(void);
nsimd_avx512_knl_vf16 NSIMD_VECTORCALL nsimd_iota_avx512_knl_f16(void);
nsimd_avx512_knl_vi64 NSIMD_VECTORCALL nsimd_iota_avx512_knl_i64(void);
nsimd_avx512_knl_vi32 NSIMD_VECTORCALL nsimd_iota_avx512_knl_i32(void);
nsimd_avx512_knl_vi16 NSIMD_VECTORCALL nsimd_iota_avx512_knl_i16(void);
nsimd_avx512_knl_vi8 NSIMD_VECTORCALL nsimd_iota_avx512_knl_i8(void);
nsimd_avx512_knl_vu64 NSIMD_VECTORCALL nsimd_iota_avx512_knl_u64(void);
nsimd_avx512_knl_vu32 NSIMD_VECTORCALL nsimd_iota_avx512_knl_u32(void);
nsimd_avx512_knl_vu16 NSIMD_VECTORCALL nsimd_iota_avx512_knl_u16(void);
nsimd_avx512_knl_vu8 NSIMD_VECTORCALL nsimd_iota_avx512_knl_u8(void);

SSE2

nsimd_sse2_vf64 NSIMD_VECTORCALL nsimd_iota_sse2_f64(void);
nsimd_sse2_vf32 NSIMD_VECTORCALL nsimd_iota_sse2_f32(void);
nsimd_sse2_vf16 NSIMD_VECTORCALL nsimd_iota_sse2_f16(void);
nsimd_sse2_vi64 NSIMD_VECTORCALL nsimd_iota_sse2_i64(void);
nsimd_sse2_vi32 NSIMD_VECTORCALL nsimd_iota_sse2_i32(void);
nsimd_sse2_vi16 NSIMD_VECTORCALL nsimd_iota_sse2_i16(void);
nsimd_sse2_vi8 NSIMD_VECTORCALL nsimd_iota_sse2_i8(void);
nsimd_sse2_vu64 NSIMD_VECTORCALL nsimd_iota_sse2_u64(void);
nsimd_sse2_vu32 NSIMD_VECTORCALL nsimd_iota_sse2_u32(void);
nsimd_sse2_vu16 NSIMD_VECTORCALL nsimd_iota_sse2_u16(void);
nsimd_sse2_vu8 NSIMD_VECTORCALL nsimd_iota_sse2_u8(void);

SSE42

nsimd_sse42_vf64 NSIMD_VECTORCALL nsimd_iota_sse42_f64(void);
nsimd_sse42_vf32 NSIMD_VECTORCALL nsimd_iota_sse42_f32(void);
nsimd_sse42_vf16 NSIMD_VECTORCALL nsimd_iota_sse42_f16(void);
nsimd_sse42_vi64 NSIMD_VECTORCALL nsimd_iota_sse42_i64(void);
nsimd_sse42_vi32 NSIMD_VECTORCALL nsimd_iota_sse42_i32(void);
nsimd_sse42_vi16 NSIMD_VECTORCALL nsimd_iota_sse42_i16(void);
nsimd_sse42_vi8 NSIMD_VECTORCALL nsimd_iota_sse42_i8(void);
nsimd_sse42_vu64 NSIMD_VECTORCALL nsimd_iota_sse42_u64(void);
nsimd_sse42_vu32 NSIMD_VECTORCALL nsimd_iota_sse42_u32(void);
nsimd_sse42_vu16 NSIMD_VECTORCALL nsimd_iota_sse42_u16(void);
nsimd_sse42_vu8 NSIMD_VECTORCALL nsimd_iota_sse42_u8(void);

SVE256

nsimd_sve256_vf64 NSIMD_VECTORCALL nsimd_iota_sve256_f64(void);
nsimd_sve256_vf32 NSIMD_VECTORCALL nsimd_iota_sve256_f32(void);
nsimd_sve256_vf16 NSIMD_VECTORCALL nsimd_iota_sve256_f16(void);
nsimd_sve256_vi64 NSIMD_VECTORCALL nsimd_iota_sve256_i64(void);
nsimd_sve256_vi32 NSIMD_VECTORCALL nsimd_iota_sve256_i32(void);
nsimd_sve256_vi16 NSIMD_VECTORCALL nsimd_iota_sve256_i16(void);
nsimd_sve256_vi8 NSIMD_VECTORCALL nsimd_iota_sve256_i8(void);
nsimd_sve256_vu64 NSIMD_VECTORCALL nsimd_iota_sve256_u64(void);
nsimd_sve256_vu32 NSIMD_VECTORCALL nsimd_iota_sve256_u32(void);
nsimd_sve256_vu16 NSIMD_VECTORCALL nsimd_iota_sve256_u16(void);
nsimd_sve256_vu8 NSIMD_VECTORCALL nsimd_iota_sve256_u8(void);

SVE1024

nsimd_sve1024_vf64 NSIMD_VECTORCALL nsimd_iota_sve1024_f64(void);
nsimd_sve1024_vf32 NSIMD_VECTORCALL nsimd_iota_sve1024_f32(void);
nsimd_sve1024_vf16 NSIMD_VECTORCALL nsimd_iota_sve1024_f16(void);
nsimd_sve1024_vi64 NSIMD_VECTORCALL nsimd_iota_sve1024_i64(void);
nsimd_sve1024_vi32 NSIMD_VECTORCALL nsimd_iota_sve1024_i32(void);
nsimd_sve1024_vi16 NSIMD_VECTORCALL nsimd_iota_sve1024_i16(void);
nsimd_sve1024_vi8 NSIMD_VECTORCALL nsimd_iota_sve1024_i8(void);
nsimd_sve1024_vu64 NSIMD_VECTORCALL nsimd_iota_sve1024_u64(void);
nsimd_sve1024_vu32 NSIMD_VECTORCALL nsimd_iota_sve1024_u32(void);
nsimd_sve1024_vu16 NSIMD_VECTORCALL nsimd_iota_sve1024_u16(void);
nsimd_sve1024_vu8 NSIMD_VECTORCALL nsimd_iota_sve1024_u8(void);

VSX

nsimd_vsx_vf64 NSIMD_VECTORCALL nsimd_iota_vsx_f64(void);
nsimd_vsx_vf32 NSIMD_VECTORCALL nsimd_iota_vsx_f32(void);
nsimd_vsx_vf16 NSIMD_VECTORCALL nsimd_iota_vsx_f16(void);
nsimd_vsx_vi64 NSIMD_VECTORCALL nsimd_iota_vsx_i64(void);
nsimd_vsx_vi32 NSIMD_VECTORCALL nsimd_iota_vsx_i32(void);
nsimd_vsx_vi16 NSIMD_VECTORCALL nsimd_iota_vsx_i16(void);
nsimd_vsx_vi8 NSIMD_VECTORCALL nsimd_iota_vsx_i8(void);
nsimd_vsx_vu64 NSIMD_VECTORCALL nsimd_iota_vsx_u64(void);
nsimd_vsx_vu32 NSIMD_VECTORCALL nsimd_iota_vsx_u32(void);
nsimd_vsx_vu16 NSIMD_VECTORCALL nsimd_iota_vsx_u16(void);
nsimd_vsx_vu8 NSIMD_VECTORCALL nsimd_iota_vsx_u8(void);

SVE128

nsimd_sve128_vf64 NSIMD_VECTORCALL nsimd_iota_sve128_f64(void);
nsimd_sve128_vf32 NSIMD_VECTORCALL nsimd_iota_sve128_f32(void);
nsimd_sve128_vf16 NSIMD_VECTORCALL nsimd_iota_sve128_f16(void);
nsimd_sve128_vi64 NSIMD_VECTORCALL nsimd_iota_sve128_i64(void);
nsimd_sve128_vi32 NSIMD_VECTORCALL nsimd_iota_sve128_i32(void);
nsimd_sve128_vi16 NSIMD_VECTORCALL nsimd_iota_sve128_i16(void);
nsimd_sve128_vi8 NSIMD_VECTORCALL nsimd_iota_sve128_i8(void);
nsimd_sve128_vu64 NSIMD_VECTORCALL nsimd_iota_sve128_u64(void);
nsimd_sve128_vu32 NSIMD_VECTORCALL nsimd_iota_sve128_u32(void);
nsimd_sve128_vu16 NSIMD_VECTORCALL nsimd_iota_sve128_u16(void);
nsimd_sve128_vu8 NSIMD_VECTORCALL nsimd_iota_sve128_u8(void);

VMX

nsimd_vmx_vf64 NSIMD_VECTORCALL nsimd_iota_vmx_f64(void);
nsimd_vmx_vf32 NSIMD_VECTORCALL nsimd_iota_vmx_f32(void);
nsimd_vmx_vf16 NSIMD_VECTORCALL nsimd_iota_vmx_f16(void);
nsimd_vmx_vi64 NSIMD_VECTORCALL nsimd_iota_vmx_i64(void);
nsimd_vmx_vi32 NSIMD_VECTORCALL nsimd_iota_vmx_i32(void);
nsimd_vmx_vi16 NSIMD_VECTORCALL nsimd_iota_vmx_i16(void);
nsimd_vmx_vi8 NSIMD_VECTORCALL nsimd_iota_vmx_i8(void);
nsimd_vmx_vu64 NSIMD_VECTORCALL nsimd_iota_vmx_u64(void);
nsimd_vmx_vu32 NSIMD_VECTORCALL nsimd_iota_vmx_u32(void);
nsimd_vmx_vu16 NSIMD_VECTORCALL nsimd_iota_vmx_u16(void);
nsimd_vmx_vu8 NSIMD_VECTORCALL nsimd_iota_vmx_u8(void);

AVX

nsimd_avx_vf64 NSIMD_VECTORCALL nsimd_iota_avx_f64(void);
nsimd_avx_vf32 NSIMD_VECTORCALL nsimd_iota_avx_f32(void);
nsimd_avx_vf16 NSIMD_VECTORCALL nsimd_iota_avx_f16(void);
nsimd_avx_vi64 NSIMD_VECTORCALL nsimd_iota_avx_i64(void);
nsimd_avx_vi32 NSIMD_VECTORCALL nsimd_iota_avx_i32(void);
nsimd_avx_vi16 NSIMD_VECTORCALL nsimd_iota_avx_i16(void);
nsimd_avx_vi8 NSIMD_VECTORCALL nsimd_iota_avx_i8(void);
nsimd_avx_vu64 NSIMD_VECTORCALL nsimd_iota_avx_u64(void);
nsimd_avx_vu32 NSIMD_VECTORCALL nsimd_iota_avx_u32(void);
nsimd_avx_vu16 NSIMD_VECTORCALL nsimd_iota_avx_u16(void);
nsimd_avx_vu8 NSIMD_VECTORCALL nsimd_iota_avx_u8(void);

C++ base API (architecture specifics)

AVX2

nsimd_avx2_vf64 NSIMD_VECTORCALL iota(f64, avx2);
nsimd_avx2_vf32 NSIMD_VECTORCALL iota(f32, avx2);
nsimd_avx2_vf16 NSIMD_VECTORCALL iota(f16, avx2);
nsimd_avx2_vi64 NSIMD_VECTORCALL iota(i64, avx2);
nsimd_avx2_vi32 NSIMD_VECTORCALL iota(i32, avx2);
nsimd_avx2_vi16 NSIMD_VECTORCALL iota(i16, avx2);
nsimd_avx2_vi8 NSIMD_VECTORCALL iota(i8, avx2);
nsimd_avx2_vu64 NSIMD_VECTORCALL iota(u64, avx2);
nsimd_avx2_vu32 NSIMD_VECTORCALL iota(u32, avx2);
nsimd_avx2_vu16 NSIMD_VECTORCALL iota(u16, avx2);
nsimd_avx2_vu8 NSIMD_VECTORCALL iota(u8, avx2);

SVE512

nsimd_sve512_vf64 NSIMD_VECTORCALL iota(f64, sve512);
nsimd_sve512_vf32 NSIMD_VECTORCALL iota(f32, sve512);
nsimd_sve512_vf16 NSIMD_VECTORCALL iota(f16, sve512);
nsimd_sve512_vi64 NSIMD_VECTORCALL iota(i64, sve512);
nsimd_sve512_vi32 NSIMD_VECTORCALL iota(i32, sve512);
nsimd_sve512_vi16 NSIMD_VECTORCALL iota(i16, sve512);
nsimd_sve512_vi8 NSIMD_VECTORCALL iota(i8, sve512);
nsimd_sve512_vu64 NSIMD_VECTORCALL iota(u64, sve512);
nsimd_sve512_vu32 NSIMD_VECTORCALL iota(u32, sve512);
nsimd_sve512_vu16 NSIMD_VECTORCALL iota(u16, sve512);
nsimd_sve512_vu8 NSIMD_VECTORCALL iota(u8, sve512);

SVE

nsimd_sve_vf64 NSIMD_VECTORCALL iota(f64, sve);
nsimd_sve_vf32 NSIMD_VECTORCALL iota(f32, sve);
nsimd_sve_vf16 NSIMD_VECTORCALL iota(f16, sve);
nsimd_sve_vi64 NSIMD_VECTORCALL iota(i64, sve);
nsimd_sve_vi32 NSIMD_VECTORCALL iota(i32, sve);
nsimd_sve_vi16 NSIMD_VECTORCALL iota(i16, sve);
nsimd_sve_vi8 NSIMD_VECTORCALL iota(i8, sve);
nsimd_sve_vu64 NSIMD_VECTORCALL iota(u64, sve);
nsimd_sve_vu32 NSIMD_VECTORCALL iota(u32, sve);
nsimd_sve_vu16 NSIMD_VECTORCALL iota(u16, sve);
nsimd_sve_vu8 NSIMD_VECTORCALL iota(u8, sve);

CPU

nsimd_cpu_vf64 NSIMD_VECTORCALL iota(f64, cpu);
nsimd_cpu_vf32 NSIMD_VECTORCALL iota(f32, cpu);
nsimd_cpu_vf16 NSIMD_VECTORCALL iota(f16, cpu);
nsimd_cpu_vi64 NSIMD_VECTORCALL iota(i64, cpu);
nsimd_cpu_vi32 NSIMD_VECTORCALL iota(i32, cpu);
nsimd_cpu_vi16 NSIMD_VECTORCALL iota(i16, cpu);
nsimd_cpu_vi8 NSIMD_VECTORCALL iota(i8, cpu);
nsimd_cpu_vu64 NSIMD_VECTORCALL iota(u64, cpu);
nsimd_cpu_vu32 NSIMD_VECTORCALL iota(u32, cpu);
nsimd_cpu_vu16 NSIMD_VECTORCALL iota(u16, cpu);
nsimd_cpu_vu8 NSIMD_VECTORCALL iota(u8, cpu);

SVE2048

nsimd_sve2048_vf64 NSIMD_VECTORCALL iota(f64, sve2048);
nsimd_sve2048_vf32 NSIMD_VECTORCALL iota(f32, sve2048);
nsimd_sve2048_vf16 NSIMD_VECTORCALL iota(f16, sve2048);
nsimd_sve2048_vi64 NSIMD_VECTORCALL iota(i64, sve2048);
nsimd_sve2048_vi32 NSIMD_VECTORCALL iota(i32, sve2048);
nsimd_sve2048_vi16 NSIMD_VECTORCALL iota(i16, sve2048);
nsimd_sve2048_vi8 NSIMD_VECTORCALL iota(i8, sve2048);
nsimd_sve2048_vu64 NSIMD_VECTORCALL iota(u64, sve2048);
nsimd_sve2048_vu32 NSIMD_VECTORCALL iota(u32, sve2048);
nsimd_sve2048_vu16 NSIMD_VECTORCALL iota(u16, sve2048);
nsimd_sve2048_vu8 NSIMD_VECTORCALL iota(u8, sve2048);

NEON128

nsimd_neon128_vf64 NSIMD_VECTORCALL iota(f64, neon128);
nsimd_neon128_vf32 NSIMD_VECTORCALL iota(f32, neon128);
nsimd_neon128_vf16 NSIMD_VECTORCALL iota(f16, neon128);
nsimd_neon128_vi64 NSIMD_VECTORCALL iota(i64, neon128);
nsimd_neon128_vi32 NSIMD_VECTORCALL iota(i32, neon128);
nsimd_neon128_vi16 NSIMD_VECTORCALL iota(i16, neon128);
nsimd_neon128_vi8 NSIMD_VECTORCALL iota(i8, neon128);
nsimd_neon128_vu64 NSIMD_VECTORCALL iota(u64, neon128);
nsimd_neon128_vu32 NSIMD_VECTORCALL iota(u32, neon128);
nsimd_neon128_vu16 NSIMD_VECTORCALL iota(u16, neon128);
nsimd_neon128_vu8 NSIMD_VECTORCALL iota(u8, neon128);

AVX512_SKYLAKE

nsimd_avx512_skylake_vf64 NSIMD_VECTORCALL iota(f64, avx512_skylake);
nsimd_avx512_skylake_vf32 NSIMD_VECTORCALL iota(f32, avx512_skylake);
nsimd_avx512_skylake_vf16 NSIMD_VECTORCALL iota(f16, avx512_skylake);
nsimd_avx512_skylake_vi64 NSIMD_VECTORCALL iota(i64, avx512_skylake);
nsimd_avx512_skylake_vi32 NSIMD_VECTORCALL iota(i32, avx512_skylake);
nsimd_avx512_skylake_vi16 NSIMD_VECTORCALL iota(i16, avx512_skylake);
nsimd_avx512_skylake_vi8 NSIMD_VECTORCALL iota(i8, avx512_skylake);
nsimd_avx512_skylake_vu64 NSIMD_VECTORCALL iota(u64, avx512_skylake);
nsimd_avx512_skylake_vu32 NSIMD_VECTORCALL iota(u32, avx512_skylake);
nsimd_avx512_skylake_vu16 NSIMD_VECTORCALL iota(u16, avx512_skylake);
nsimd_avx512_skylake_vu8 NSIMD_VECTORCALL iota(u8, avx512_skylake);

AARCH64

nsimd_aarch64_vf64 NSIMD_VECTORCALL iota(f64, aarch64);
nsimd_aarch64_vf32 NSIMD_VECTORCALL iota(f32, aarch64);
nsimd_aarch64_vf16 NSIMD_VECTORCALL iota(f16, aarch64);
nsimd_aarch64_vi64 NSIMD_VECTORCALL iota(i64, aarch64);
nsimd_aarch64_vi32 NSIMD_VECTORCALL iota(i32, aarch64);
nsimd_aarch64_vi16 NSIMD_VECTORCALL iota(i16, aarch64);
nsimd_aarch64_vi8 NSIMD_VECTORCALL iota(i8, aarch64);
nsimd_aarch64_vu64 NSIMD_VECTORCALL iota(u64, aarch64);
nsimd_aarch64_vu32 NSIMD_VECTORCALL iota(u32, aarch64);
nsimd_aarch64_vu16 NSIMD_VECTORCALL iota(u16, aarch64);
nsimd_aarch64_vu8 NSIMD_VECTORCALL iota(u8, aarch64);

AVX512_KNL

nsimd_avx512_knl_vf64 NSIMD_VECTORCALL iota(f64, avx512_knl);
nsimd_avx512_knl_vf32 NSIMD_VECTORCALL iota(f32, avx512_knl);
nsimd_avx512_knl_vf16 NSIMD_VECTORCALL iota(f16, avx512_knl);
nsimd_avx512_knl_vi64 NSIMD_VECTORCALL iota(i64, avx512_knl);
nsimd_avx512_knl_vi32 NSIMD_VECTORCALL iota(i32, avx512_knl);
nsimd_avx512_knl_vi16 NSIMD_VECTORCALL iota(i16, avx512_knl);
nsimd_avx512_knl_vi8 NSIMD_VECTORCALL iota(i8, avx512_knl);
nsimd_avx512_knl_vu64 NSIMD_VECTORCALL iota(u64, avx512_knl);
nsimd_avx512_knl_vu32 NSIMD_VECTORCALL iota(u32, avx512_knl);
nsimd_avx512_knl_vu16 NSIMD_VECTORCALL iota(u16, avx512_knl);
nsimd_avx512_knl_vu8 NSIMD_VECTORCALL iota(u8, avx512_knl);

SSE2

nsimd_sse2_vf64 NSIMD_VECTORCALL iota(f64, sse2);
nsimd_sse2_vf32 NSIMD_VECTORCALL iota(f32, sse2);
nsimd_sse2_vf16 NSIMD_VECTORCALL iota(f16, sse2);
nsimd_sse2_vi64 NSIMD_VECTORCALL iota(i64, sse2);
nsimd_sse2_vi32 NSIMD_VECTORCALL iota(i32, sse2);
nsimd_sse2_vi16 NSIMD_VECTORCALL iota(i16, sse2);
nsimd_sse2_vi8 NSIMD_VECTORCALL iota(i8, sse2);
nsimd_sse2_vu64 NSIMD_VECTORCALL iota(u64, sse2);
nsimd_sse2_vu32 NSIMD_VECTORCALL iota(u32, sse2);
nsimd_sse2_vu16 NSIMD_VECTORCALL iota(u16, sse2);
nsimd_sse2_vu8 NSIMD_VECTORCALL iota(u8, sse2);

SSE42

nsimd_sse42_vf64 NSIMD_VECTORCALL iota(f64, sse42);
nsimd_sse42_vf32 NSIMD_VECTORCALL iota(f32, sse42);
nsimd_sse42_vf16 NSIMD_VECTORCALL iota(f16, sse42);
nsimd_sse42_vi64 NSIMD_VECTORCALL iota(i64, sse42);
nsimd_sse42_vi32 NSIMD_VECTORCALL iota(i32, sse42);
nsimd_sse42_vi16 NSIMD_VECTORCALL iota(i16, sse42);
nsimd_sse42_vi8 NSIMD_VECTORCALL iota(i8, sse42);
nsimd_sse42_vu64 NSIMD_VECTORCALL iota(u64, sse42);
nsimd_sse42_vu32 NSIMD_VECTORCALL iota(u32, sse42);
nsimd_sse42_vu16 NSIMD_VECTORCALL iota(u16, sse42);
nsimd_sse42_vu8 NSIMD_VECTORCALL iota(u8, sse42);

SVE256

nsimd_sve256_vf64 NSIMD_VECTORCALL iota(f64, sve256);
nsimd_sve256_vf32 NSIMD_VECTORCALL iota(f32, sve256);
nsimd_sve256_vf16 NSIMD_VECTORCALL iota(f16, sve256);
nsimd_sve256_vi64 NSIMD_VECTORCALL iota(i64, sve256);
nsimd_sve256_vi32 NSIMD_VECTORCALL iota(i32, sve256);
nsimd_sve256_vi16 NSIMD_VECTORCALL iota(i16, sve256);
nsimd_sve256_vi8 NSIMD_VECTORCALL iota(i8, sve256);
nsimd_sve256_vu64 NSIMD_VECTORCALL iota(u64, sve256);
nsimd_sve256_vu32 NSIMD_VECTORCALL iota(u32, sve256);
nsimd_sve256_vu16 NSIMD_VECTORCALL iota(u16, sve256);
nsimd_sve256_vu8 NSIMD_VECTORCALL iota(u8, sve256);

SVE1024

nsimd_sve1024_vf64 NSIMD_VECTORCALL iota(f64, sve1024);
nsimd_sve1024_vf32 NSIMD_VECTORCALL iota(f32, sve1024);
nsimd_sve1024_vf16 NSIMD_VECTORCALL iota(f16, sve1024);
nsimd_sve1024_vi64 NSIMD_VECTORCALL iota(i64, sve1024);
nsimd_sve1024_vi32 NSIMD_VECTORCALL iota(i32, sve1024);
nsimd_sve1024_vi16 NSIMD_VECTORCALL iota(i16, sve1024);
nsimd_sve1024_vi8 NSIMD_VECTORCALL iota(i8, sve1024);
nsimd_sve1024_vu64 NSIMD_VECTORCALL iota(u64, sve1024);
nsimd_sve1024_vu32 NSIMD_VECTORCALL iota(u32, sve1024);
nsimd_sve1024_vu16 NSIMD_VECTORCALL iota(u16, sve1024);
nsimd_sve1024_vu8 NSIMD_VECTORCALL iota(u8, sve1024);

VSX

nsimd_vsx_vf64 NSIMD_VECTORCALL iota(f64, vsx);
nsimd_vsx_vf32 NSIMD_VECTORCALL iota(f32, vsx);
nsimd_vsx_vf16 NSIMD_VECTORCALL iota(f16, vsx);
nsimd_vsx_vi64 NSIMD_VECTORCALL iota(i64, vsx);
nsimd_vsx_vi32 NSIMD_VECTORCALL iota(i32, vsx);
nsimd_vsx_vi16 NSIMD_VECTORCALL iota(i16, vsx);
nsimd_vsx_vi8 NSIMD_VECTORCALL iota(i8, vsx);
nsimd_vsx_vu64 NSIMD_VECTORCALL iota(u64, vsx);
nsimd_vsx_vu32 NSIMD_VECTORCALL iota(u32, vsx);
nsimd_vsx_vu16 NSIMD_VECTORCALL iota(u16, vsx);
nsimd_vsx_vu8 NSIMD_VECTORCALL iota(u8, vsx);

SVE128

nsimd_sve128_vf64 NSIMD_VECTORCALL iota(f64, sve128);
nsimd_sve128_vf32 NSIMD_VECTORCALL iota(f32, sve128);
nsimd_sve128_vf16 NSIMD_VECTORCALL iota(f16, sve128);
nsimd_sve128_vi64 NSIMD_VECTORCALL iota(i64, sve128);
nsimd_sve128_vi32 NSIMD_VECTORCALL iota(i32, sve128);
nsimd_sve128_vi16 NSIMD_VECTORCALL iota(i16, sve128);
nsimd_sve128_vi8 NSIMD_VECTORCALL iota(i8, sve128);
nsimd_sve128_vu64 NSIMD_VECTORCALL iota(u64, sve128);
nsimd_sve128_vu32 NSIMD_VECTORCALL iota(u32, sve128);
nsimd_sve128_vu16 NSIMD_VECTORCALL iota(u16, sve128);
nsimd_sve128_vu8 NSIMD_VECTORCALL iota(u8, sve128);

VMX

nsimd_vmx_vf64 NSIMD_VECTORCALL iota(f64, vmx);
nsimd_vmx_vf32 NSIMD_VECTORCALL iota(f32, vmx);
nsimd_vmx_vf16 NSIMD_VECTORCALL iota(f16, vmx);
nsimd_vmx_vi64 NSIMD_VECTORCALL iota(i64, vmx);
nsimd_vmx_vi32 NSIMD_VECTORCALL iota(i32, vmx);
nsimd_vmx_vi16 NSIMD_VECTORCALL iota(i16, vmx);
nsimd_vmx_vi8 NSIMD_VECTORCALL iota(i8, vmx);
nsimd_vmx_vu64 NSIMD_VECTORCALL iota(u64, vmx);
nsimd_vmx_vu32 NSIMD_VECTORCALL iota(u32, vmx);
nsimd_vmx_vu16 NSIMD_VECTORCALL iota(u16, vmx);
nsimd_vmx_vu8 NSIMD_VECTORCALL iota(u8, vmx);

AVX

nsimd_avx_vf64 NSIMD_VECTORCALL iota(f64, avx);
nsimd_avx_vf32 NSIMD_VECTORCALL iota(f32, avx);
nsimd_avx_vf16 NSIMD_VECTORCALL iota(f16, avx);
nsimd_avx_vi64 NSIMD_VECTORCALL iota(i64, avx);
nsimd_avx_vi32 NSIMD_VECTORCALL iota(i32, avx);
nsimd_avx_vi16 NSIMD_VECTORCALL iota(i16, avx);
nsimd_avx_vi8 NSIMD_VECTORCALL iota(i8, avx);
nsimd_avx_vu64 NSIMD_VECTORCALL iota(u64, avx);
nsimd_avx_vu32 NSIMD_VECTORCALL iota(u32, avx);
nsimd_avx_vu16 NSIMD_VECTORCALL iota(u16, avx);
nsimd_avx_vu8 NSIMD_VECTORCALL iota(u8, avx);