|
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 = NATIVE_BASELINE> requires (Arch.has(arm_feature::pmull)) | |
| constexpr simd< std::uint64_t, 2, Arch > | native::pmull (std::uint64_t a, std::uint64_t b) noexcept |
|
template<isa< arm > Arch = NATIVE_BASELINE> requires (!Arch.has(arm_feature::pmull) && requires { sizeof(simd<std::uint64_t,2,Arch>); }) | |
| consteval simd< std::uint64_t, 2, Arch > | native::pmull (std::uint64_t a, std::uint64_t b) noexcept |
| Evaluate a 64-bit polynomial product at compile time using an available SIMD storage shape. | |
|
template<isa< arm > Arch> requires (Arch.has(arm_feature::pmull)) | |
| constexpr simd< std::uint64_t, 2, Arch > | native::pmull2 (simd< std::uint64_t, 2, Arch > a, simd< std::uint64_t, 2, Arch > b) noexcept |
| Multiply the high 64-bit polynomial lane of each operand; lower lanes are ignored. | |
|
template<isa< arm > Arch> requires (!Arch.has(arm_feature::pmull) && requires { sizeof(simd<std::uint64_t, 2, Arch>); }) | |
| consteval simd< std::uint64_t, 2, Arch > | native::pmull2 (simd< std::uint64_t, 2, Arch > a, simd< std::uint64_t, 2, Arch > b) noexcept |
| Evaluate constant operands without the instruction feature. | |
|
template<isa< arm > Arch> requires (Arch.has(arm_feature::neon)) | |
| constexpr simd< std::uint16_t, 8, Arch > | native::pmull (simd< std::uint8_t, 8, Arch > a, simd< std::uint8_t, 8, Arch > b) noexcept |
| Multiply eight pairs of byte polynomials into 16-bit products; requires only NEON. | |
|
template<isa< arm > Arch> requires (Arch.has(arm_feature::neon)) | |
| constexpr simd< std::uint16_t, 8, Arch > | native::pmull2 (simd< std::uint8_t, 16, Arch > a, simd< std::uint8_t, 16, Arch > b) noexcept |
| Multiply the high eight byte polynomials into 16-bit products; requires only NEON. | |
| template<isa< arm > Arch = NATIVE_BASELINE, class... T> | |
| void | native::pmull (T...)=delete |
| Reject unsupported argument shapes or unavailable instruction features. | |
| template<isa< arm > Arch, class... T> | |
| void | native::pmull2 (T...)=delete |
| Reject unsupported argument shapes or unavailable instruction features. | |
Files | |
| file | src/native.arm.pmull.ccm |