Vecmat 0.2.3
C math and linear algebra library for 2D/3D graphics, physics, and science.
Loading...
Searching...
No Matches
dispatch.c File Reference
#include "cpu.h"

Go to the source code of this file.

Macros

#define VECMAT_FN_PTR(name, params, args)
#define VECMAT_PICK_SVE2(name)
#define VECMAT_PICK_SVE(name)
#define VECMAT_PICK_AVX512(name)
#define VECMAT_PICK_AVX2(name)
#define VECMAT_PICK_AVX(name)
#define VECMAT_PICK(name)
#define VECMAT_BIND(name, params, args)

Functions

static void vm_cpu_bind (const vm_cpu_features_t features)
void vm_cpu_init (void)

Variables

static int dispatch_ready

Macro Definition Documentation

◆ VECMAT_BIND

#define VECMAT_BIND ( name,
params,
args )
Value:
#define VECMAT_PICK(name)
Definition dispatch.c:58

Referenced by vm_cpu_bind().

◆ VECMAT_FN_PTR

#define VECMAT_FN_PTR ( name,
params,
args )
Value:
name##_fn name##_ = name##_scalar;

Definition at line 7 of file dispatch.c.

◆ VECMAT_PICK

#define VECMAT_PICK ( name)
Value:
do { \
name##_fn fn = name##_scalar; \
VECMAT_PICK_SVE2(name) \
VECMAT_PICK_SVE(name) \
VECMAT_PICK_AVX512(name) \
VECMAT_PICK_AVX2(name) \
VECMAT_PICK_AVX(name) \
{ /* scalar already set */ } \
name##_ = fn; \
} while (0)

Definition at line 58 of file dispatch.c.

◆ VECMAT_PICK_AVX

#define VECMAT_PICK_AVX ( name)
Value:
if ((features & VM_CPU_AVX) != 0) { \
fn = name##_avx; \
} else
@ VM_CPU_AVX
Definition vecmat.h:460

Definition at line 50 of file dispatch.c.

◆ VECMAT_PICK_AVX2

#define VECMAT_PICK_AVX2 ( name)
Value:
if ((features & VM_CPU_AVX2) != 0) { \
fn = name##_avx2; \
} else
@ VM_CPU_AVX2
Definition vecmat.h:456

Definition at line 41 of file dispatch.c.

◆ VECMAT_PICK_AVX512

#define VECMAT_PICK_AVX512 ( name)
Value:
if ((features & VM_CPU_AVX512) != 0) { \
fn = name##_avx512; \
} else
@ VM_CPU_AVX512
Definition vecmat.h:458

Definition at line 32 of file dispatch.c.

◆ VECMAT_PICK_SVE

#define VECMAT_PICK_SVE ( name)
Value:
if ((features & VM_CPU_SVE) != 0) { \
fn = name##_sve; \
} else
@ VM_CPU_SVE
Definition vecmat.h:457

Definition at line 23 of file dispatch.c.

◆ VECMAT_PICK_SVE2

#define VECMAT_PICK_SVE2 ( name)
Value:
if ((features & VM_CPU_SVE2) != 0) { \
fn = name##_sve2; \
} else
@ VM_CPU_SVE2
Definition vecmat.h:459

Definition at line 14 of file dispatch.c.

Function Documentation

◆ vm_cpu_bind()

void vm_cpu_bind ( const vm_cpu_features_t features)
static

Definition at line 70 of file dispatch.c.

References VECMAT_BIND, and VECMAT_DISPATCH_LIST.

Referenced by vm_cpu_init().

◆ vm_cpu_init()

Variable Documentation

◆ dispatch_ready

int dispatch_ready
static

Definition at line 11 of file dispatch.c.

Referenced by vm_cpu_init().