4#include "native/config.h"
11#if NATIVE_HOST_X86 || defined(NATIVE_DOXYGEN)
12namespace native::detail::x86_pclmul {
18 template<isa<x86> Arch,
unsigned Imm8>
requires(Arch.has(x86_feature::pclmul) && Imm8 <= 255)
20 __m128i pclmulqdq(__m128i a, __m128i b) noexcept {
21 return _mm_clmulepi64_si128(a, b, Imm8);
26 template<isa<x86> Arch,
unsigned Imm8,
class A,
class B>
27 void pclmulqdq(A, B) =
delete;
Compiler attributes for host code, with shader-safe shared modifiers.
#define native_inline
inline [[always_inline]]
#define native_nodiscard
C++17 [[nodiscard]].
#define native_const
[[const]] is not const
#define native_target(x)
this indicates a required feature set for the current multiversioned function.