|
native 0.0.1
Vectors, masks and wide register packs for C++26
|
Exported Modules | |
| module | native.arm.features |
| module | native.simd |
Functions | |
|
template<isa< arm > Arch, unsigned Rotation> requires (Arch.has(arm_feature::complxnum) && (Rotation == 90 || Rotation == 270)) | |
| constexpr simd< float, 2, Arch > | native::fcadd (simd< float, 2, Arch > a, simd< float, 2, Arch > b) noexcept |
| FCADD on 1 binary32 complex pair(s), rotation in degrees. | |
|
template<isa< arm > Arch, unsigned Rotation> requires (requires { sizeof(simd<float, 2, Arch>); } && !(Arch.has(arm_feature::complxnum)) && (Rotation == 90 || Rotation == 270)) | |
| consteval simd< float, 2, Arch > | native::fcadd (simd< float, 2, Arch > a, simd< float, 2, Arch > b) noexcept |
| Constant-evaluation-only form when the instruction feature is absent. | |
|
template<isa< arm > Arch, unsigned Rotation> requires (Arch.has(arm_feature::complxnum) && (Rotation == 0 || Rotation == 90 || Rotation == 180 || Rotation == 270)) | |
| constexpr simd< float, 2, Arch > | native::fcmla (simd< float, 2, Arch > acc, simd< float, 2, Arch > a, simd< float, 2, Arch > b) noexcept |
| FCMLA on 1 binary32 complex pair(s), rotation in degrees. | |
|
template<isa< arm > Arch, unsigned Rotation> requires (requires { sizeof(simd<float, 2, Arch>); } && !(Arch.has(arm_feature::complxnum)) && (Rotation == 0 || Rotation == 90 || Rotation == 180 || Rotation == 270)) | |
| consteval simd< float, 2, Arch > | native::fcmla (simd< float, 2, Arch > acc, simd< float, 2, Arch > a, simd< float, 2, Arch > b) noexcept |
| Constant-evaluation-only form when the instruction feature is absent. | |
|
template<isa< arm > Arch, unsigned Rotation, unsigned Lane> requires (Arch.has(arm_feature::complxnum) && (Rotation == 0 || Rotation == 90 || Rotation == 180 || Rotation == 270) && Lane < 1) | |
| constexpr simd< float, 2, Arch > | native::fcmla_lane (simd< float, 2, Arch > acc, simd< float, 2, Arch > a, simd< float, 2, Arch > b) noexcept |
| FCMLA using complex pair Lane of b (the lane indexes pairs, not scalars). | |
|
template<isa< arm > Arch, unsigned Rotation, unsigned Lane> requires (requires { sizeof(simd<float, 2, Arch>); } && !(Arch.has(arm_feature::complxnum)) && (Rotation == 0 || Rotation == 90 || Rotation == 180 || Rotation == 270) && Lane < 1) | |
| consteval simd< float, 2, Arch > | native::fcmla_lane (simd< float, 2, Arch > acc, simd< float, 2, Arch > a, simd< float, 2, Arch > b) noexcept |
| Constant-evaluation-only form when the instruction feature is absent. | |
|
template<isa< arm > Arch, unsigned Rotation, unsigned Lane> requires (Arch.has(arm_feature::complxnum) && (Rotation == 0 || Rotation == 90 || Rotation == 180 || Rotation == 270) && Lane < 2) | |
| constexpr simd< float, 2, Arch > | native::fcmla_lane (simd< float, 2, Arch > acc, simd< float, 2, Arch > a, simd< float, 4, Arch > b) noexcept |
| FCMLA using complex pair Lane of b (the lane indexes pairs, not scalars). | |
|
template<isa< arm > Arch, unsigned Rotation, unsigned Lane> requires (requires { sizeof(simd<float, 2, Arch>); } && requires { sizeof(simd<float, 4, Arch>); } && !(Arch.has(arm_feature::complxnum)) && (Rotation == 0 || Rotation == 90 || Rotation == 180 || Rotation == 270) && Lane < 2) | |
| consteval simd< float, 2, Arch > | native::fcmla_lane (simd< float, 2, Arch > acc, simd< float, 2, Arch > a, simd< float, 4, Arch > b) noexcept |
| Constant-evaluation-only form when the instruction feature is absent. | |
|
template<isa< arm > Arch, unsigned Rotation> requires (Arch.has(arm_feature::complxnum) && (Rotation == 90 || Rotation == 270)) | |
| constexpr simd< float, 4, Arch > | native::fcadd (simd< float, 4, Arch > a, simd< float, 4, Arch > b) noexcept |
| FCADD on 2 binary32 complex pair(s), rotation in degrees. | |
|
template<isa< arm > Arch, unsigned Rotation> requires (requires { sizeof(simd<float, 4, Arch>); } && !(Arch.has(arm_feature::complxnum)) && (Rotation == 90 || Rotation == 270)) | |
| consteval simd< float, 4, Arch > | native::fcadd (simd< float, 4, Arch > a, simd< float, 4, Arch > b) noexcept |
| Constant-evaluation-only form when the instruction feature is absent. | |
|
template<isa< arm > Arch, unsigned Rotation> requires (Arch.has(arm_feature::complxnum) && (Rotation == 0 || Rotation == 90 || Rotation == 180 || Rotation == 270)) | |
| constexpr simd< float, 4, Arch > | native::fcmla (simd< float, 4, Arch > acc, simd< float, 4, Arch > a, simd< float, 4, Arch > b) noexcept |
| FCMLA on 2 binary32 complex pair(s), rotation in degrees. | |
|
template<isa< arm > Arch, unsigned Rotation> requires (requires { sizeof(simd<float, 4, Arch>); } && !(Arch.has(arm_feature::complxnum)) && (Rotation == 0 || Rotation == 90 || Rotation == 180 || Rotation == 270)) | |
| consteval simd< float, 4, Arch > | native::fcmla (simd< float, 4, Arch > acc, simd< float, 4, Arch > a, simd< float, 4, Arch > b) noexcept |
| Constant-evaluation-only form when the instruction feature is absent. | |
|
template<isa< arm > Arch, unsigned Rotation, unsigned Lane> requires (Arch.has(arm_feature::complxnum) && (Rotation == 0 || Rotation == 90 || Rotation == 180 || Rotation == 270) && Lane < 1) | |
| constexpr simd< float, 4, Arch > | native::fcmla_lane (simd< float, 4, Arch > acc, simd< float, 4, Arch > a, simd< float, 2, Arch > b) noexcept |
| FCMLA using complex pair Lane of b (the lane indexes pairs, not scalars). | |
|
template<isa< arm > Arch, unsigned Rotation, unsigned Lane> requires (requires { sizeof(simd<float, 4, Arch>); } && requires { sizeof(simd<float, 2, Arch>); } && !(Arch.has(arm_feature::complxnum)) && (Rotation == 0 || Rotation == 90 || Rotation == 180 || Rotation == 270) && Lane < 1) | |
| consteval simd< float, 4, Arch > | native::fcmla_lane (simd< float, 4, Arch > acc, simd< float, 4, Arch > a, simd< float, 2, Arch > b) noexcept |
| Constant-evaluation-only form when the instruction feature is absent. | |
|
template<isa< arm > Arch, unsigned Rotation, unsigned Lane> requires (Arch.has(arm_feature::complxnum) && (Rotation == 0 || Rotation == 90 || Rotation == 180 || Rotation == 270) && Lane < 2) | |
| constexpr simd< float, 4, Arch > | native::fcmla_lane (simd< float, 4, Arch > acc, simd< float, 4, Arch > a, simd< float, 4, Arch > b) noexcept |
| FCMLA using complex pair Lane of b (the lane indexes pairs, not scalars). | |
|
template<isa< arm > Arch, unsigned Rotation, unsigned Lane> requires (requires { sizeof(simd<float, 4, Arch>); } && !(Arch.has(arm_feature::complxnum)) && (Rotation == 0 || Rotation == 90 || Rotation == 180 || Rotation == 270) && Lane < 2) | |
| consteval simd< float, 4, Arch > | native::fcmla_lane (simd< float, 4, Arch > acc, simd< float, 4, Arch > a, simd< float, 4, Arch > b) noexcept |
| Constant-evaluation-only form when the instruction feature is absent. | |
|
template<isa< arm > Arch, unsigned Rotation> requires (Arch.has(arm_feature::complxnum) && (Rotation == 90 || Rotation == 270)) | |
| constexpr simd< double, 2, Arch > | native::fcadd (simd< double, 2, Arch > a, simd< double, 2, Arch > b) noexcept |
| FCADD on 1 binary64 complex pair(s), rotation in degrees. | |
|
template<isa< arm > Arch, unsigned Rotation> requires (requires { sizeof(simd<double, 2, Arch>); } && !(Arch.has(arm_feature::complxnum)) && (Rotation == 90 || Rotation == 270)) | |
| consteval simd< double, 2, Arch > | native::fcadd (simd< double, 2, Arch > a, simd< double, 2, Arch > b) noexcept |
| Constant-evaluation-only form when the instruction feature is absent. | |
|
template<isa< arm > Arch, unsigned Rotation> requires (Arch.has(arm_feature::complxnum) && (Rotation == 0 || Rotation == 90 || Rotation == 180 || Rotation == 270)) | |
| constexpr simd< double, 2, Arch > | native::fcmla (simd< double, 2, Arch > acc, simd< double, 2, Arch > a, simd< double, 2, Arch > b) noexcept |
| FCMLA on 1 binary64 complex pair(s), rotation in degrees. | |
|
template<isa< arm > Arch, unsigned Rotation> requires (requires { sizeof(simd<double, 2, Arch>); } && !(Arch.has(arm_feature::complxnum)) && (Rotation == 0 || Rotation == 90 || Rotation == 180 || Rotation == 270)) | |
| consteval simd< double, 2, Arch > | native::fcmla (simd< double, 2, Arch > acc, simd< double, 2, Arch > a, simd< double, 2, Arch > b) noexcept |
| Constant-evaluation-only form when the instruction feature is absent. | |
|
template<isa< arm > Arch, unsigned Rotation> requires (Arch.has(arm_feature::complxnum) && Arch.has(arm_feature::neon_fp16) && (Rotation == 90 || Rotation == 270)) | |
| constexpr simd< fp16, 4, Arch > | native::fcadd (simd< fp16, 4, Arch > a, simd< fp16, 4, Arch > b) noexcept |
| FCADD on 2 binary16 complex pair(s), rotation in degrees. | |
|
template<isa< arm > Arch, unsigned Rotation> requires (requires { sizeof(simd<fp16, 4, Arch>); } && !(Arch.has(arm_feature::complxnum) && Arch.has(arm_feature::neon_fp16)) && (Rotation == 90 || Rotation == 270)) | |
| consteval simd< fp16, 4, Arch > | native::fcadd (simd< fp16, 4, Arch > a, simd< fp16, 4, Arch > b) noexcept |
| Constant-evaluation-only form when the instruction feature is absent. | |
|
template<isa< arm > Arch, unsigned Rotation> requires (Arch.has(arm_feature::complxnum) && Arch.has(arm_feature::neon_fp16) && (Rotation == 0 || Rotation == 90 || Rotation == 180 || Rotation == 270)) | |
| constexpr simd< fp16, 4, Arch > | native::fcmla (simd< fp16, 4, Arch > acc, simd< fp16, 4, Arch > a, simd< fp16, 4, Arch > b) noexcept |
| FCMLA on 2 binary16 complex pair(s), rotation in degrees. | |
|
template<isa< arm > Arch, unsigned Rotation> requires (requires { sizeof(simd<fp16, 4, Arch>); } && !(Arch.has(arm_feature::complxnum) && Arch.has(arm_feature::neon_fp16)) && (Rotation == 0 || Rotation == 90 || Rotation == 180 || Rotation == 270)) | |
| consteval simd< fp16, 4, Arch > | native::fcmla (simd< fp16, 4, Arch > acc, simd< fp16, 4, Arch > a, simd< fp16, 4, Arch > b) noexcept |
| Constant-evaluation-only form when the instruction feature is absent. | |
|
template<isa< arm > Arch, unsigned Rotation, unsigned Lane> requires (Arch.has(arm_feature::complxnum) && Arch.has(arm_feature::neon_fp16) && (Rotation == 0 || Rotation == 90 || Rotation == 180 || Rotation == 270) && Lane < 2) | |
| constexpr simd< fp16, 4, Arch > | native::fcmla_lane (simd< fp16, 4, Arch > acc, simd< fp16, 4, Arch > a, simd< fp16, 4, Arch > b) noexcept |
| FCMLA using complex pair Lane of b (the lane indexes pairs, not scalars). | |
|
template<isa< arm > Arch, unsigned Rotation, unsigned Lane> requires (requires { sizeof(simd<fp16, 4, Arch>); } && !(Arch.has(arm_feature::complxnum) && Arch.has(arm_feature::neon_fp16)) && (Rotation == 0 || Rotation == 90 || Rotation == 180 || Rotation == 270) && Lane < 2) | |
| consteval simd< fp16, 4, Arch > | native::fcmla_lane (simd< fp16, 4, Arch > acc, simd< fp16, 4, Arch > a, simd< fp16, 4, Arch > b) noexcept |
| Constant-evaluation-only form when the instruction feature is absent. | |
|
template<isa< arm > Arch, unsigned Rotation, unsigned Lane> requires (Arch.has(arm_feature::complxnum) && Arch.has(arm_feature::neon_fp16) && (Rotation == 0 || Rotation == 90 || Rotation == 180 || Rotation == 270) && Lane < 4) | |
| constexpr simd< fp16, 4, Arch > | native::fcmla_lane (simd< fp16, 4, Arch > acc, simd< fp16, 4, Arch > a, simd< fp16, 8, Arch > b) noexcept |
| FCMLA using complex pair Lane of b (the lane indexes pairs, not scalars). | |
|
template<isa< arm > Arch, unsigned Rotation, unsigned Lane> requires (requires { sizeof(simd<fp16, 4, Arch>); } && requires { sizeof(simd<fp16, 8, Arch>); } && !(Arch.has(arm_feature::complxnum) && Arch.has(arm_feature::neon_fp16)) && (Rotation == 0 || Rotation == 90 || Rotation == 180 || Rotation == 270) && Lane < 4) | |
| consteval simd< fp16, 4, Arch > | native::fcmla_lane (simd< fp16, 4, Arch > acc, simd< fp16, 4, Arch > a, simd< fp16, 8, Arch > b) noexcept |
| Constant-evaluation-only form when the instruction feature is absent. | |
|
template<isa< arm > Arch, unsigned Rotation> requires (Arch.has(arm_feature::complxnum) && Arch.has(arm_feature::neon_fp16) && (Rotation == 90 || Rotation == 270)) | |
| constexpr simd< fp16, 8, Arch > | native::fcadd (simd< fp16, 8, Arch > a, simd< fp16, 8, Arch > b) noexcept |
| FCADD on 4 binary16 complex pair(s), rotation in degrees. | |
|
template<isa< arm > Arch, unsigned Rotation> requires (requires { sizeof(simd<fp16, 8, Arch>); } && !(Arch.has(arm_feature::complxnum) && Arch.has(arm_feature::neon_fp16)) && (Rotation == 90 || Rotation == 270)) | |
| consteval simd< fp16, 8, Arch > | native::fcadd (simd< fp16, 8, Arch > a, simd< fp16, 8, Arch > b) noexcept |
| Constant-evaluation-only form when the instruction feature is absent. | |
|
template<isa< arm > Arch, unsigned Rotation> requires (Arch.has(arm_feature::complxnum) && Arch.has(arm_feature::neon_fp16) && (Rotation == 0 || Rotation == 90 || Rotation == 180 || Rotation == 270)) | |
| constexpr simd< fp16, 8, Arch > | native::fcmla (simd< fp16, 8, Arch > acc, simd< fp16, 8, Arch > a, simd< fp16, 8, Arch > b) noexcept |
| FCMLA on 4 binary16 complex pair(s), rotation in degrees. | |
|
template<isa< arm > Arch, unsigned Rotation> requires (requires { sizeof(simd<fp16, 8, Arch>); } && !(Arch.has(arm_feature::complxnum) && Arch.has(arm_feature::neon_fp16)) && (Rotation == 0 || Rotation == 90 || Rotation == 180 || Rotation == 270)) | |
| consteval simd< fp16, 8, Arch > | native::fcmla (simd< fp16, 8, Arch > acc, simd< fp16, 8, Arch > a, simd< fp16, 8, Arch > b) noexcept |
| Constant-evaluation-only form when the instruction feature is absent. | |
|
template<isa< arm > Arch, unsigned Rotation, unsigned Lane> requires (Arch.has(arm_feature::complxnum) && Arch.has(arm_feature::neon_fp16) && (Rotation == 0 || Rotation == 90 || Rotation == 180 || Rotation == 270) && Lane < 2) | |
| constexpr simd< fp16, 8, Arch > | native::fcmla_lane (simd< fp16, 8, Arch > acc, simd< fp16, 8, Arch > a, simd< fp16, 4, Arch > b) noexcept |
| FCMLA using complex pair Lane of b (the lane indexes pairs, not scalars). | |
|
template<isa< arm > Arch, unsigned Rotation, unsigned Lane> requires (requires { sizeof(simd<fp16, 8, Arch>); } && requires { sizeof(simd<fp16, 4, Arch>); } && !(Arch.has(arm_feature::complxnum) && Arch.has(arm_feature::neon_fp16)) && (Rotation == 0 || Rotation == 90 || Rotation == 180 || Rotation == 270) && Lane < 2) | |
| consteval simd< fp16, 8, Arch > | native::fcmla_lane (simd< fp16, 8, Arch > acc, simd< fp16, 8, Arch > a, simd< fp16, 4, Arch > b) noexcept |
| Constant-evaluation-only form when the instruction feature is absent. | |
|
template<isa< arm > Arch, unsigned Rotation, unsigned Lane> requires (Arch.has(arm_feature::complxnum) && Arch.has(arm_feature::neon_fp16) && (Rotation == 0 || Rotation == 90 || Rotation == 180 || Rotation == 270) && Lane < 4) | |
| constexpr simd< fp16, 8, Arch > | native::fcmla_lane (simd< fp16, 8, Arch > acc, simd< fp16, 8, Arch > a, simd< fp16, 8, Arch > b) noexcept |
| FCMLA using complex pair Lane of b (the lane indexes pairs, not scalars). | |
|
template<isa< arm > Arch, unsigned Rotation, unsigned Lane> requires (requires { sizeof(simd<fp16, 8, Arch>); } && !(Arch.has(arm_feature::complxnum) && Arch.has(arm_feature::neon_fp16)) && (Rotation == 0 || Rotation == 90 || Rotation == 180 || Rotation == 270) && Lane < 4) | |
| consteval simd< fp16, 8, Arch > | native::fcmla_lane (simd< fp16, 8, Arch > acc, simd< fp16, 8, Arch > a, simd< fp16, 8, Arch > b) noexcept |
| Constant-evaluation-only form when the instruction feature is absent. | |
Files | |
| file | src/native.arm.fcma.ccm |