Scroll to navigation

rte_vect.h(3) DPDK rte_vect.h(3)

NAME

rte_vect.h

SYNOPSIS

#include <stdint.h>

Typedefs


typedef uint8_t rte_v64u8_t
typedef uint16_t rte_v64u16_t
typedef uint32_t rte_v64u32_t
typedef uint8_t rte_v128u8_t
typedef uint16_t rte_v128u16_t
typedef uint32_t rte_v128u32_t
typedef uint64_t rte_v128u64_t
typedef uint8_t rte_v256u8_t
typedef uint16_t rte_v256u16_t
typedef uint32_t rte_v256u32_t
typedef uint64_t rte_v256u64_t
typedef int8_t rte_v64s8_t
typedef int16_t rte_v64s16_t
typedef int32_t rte_v64s32_t
typedef int8_t rte_v128s8_t
typedef int16_t rte_v128s16_t
typedef int32_t rte_v128s32_t
typedef int64_t rte_v128s64_t
typedef int8_t rte_v256s8_t
typedef int16_t rte_v256s16_t
typedef int32_t rte_v256s32_t
typedef int64_t rte_v256s64_t

Enumerations


enum rte_vect_max_simd { RTE_VECT_SIMD_DISABLED = 64, RTE_VECT_SIMD_128 = 128, RTE_VECT_SIMD_256 = 256, RTE_VECT_SIMD_512 = 512, RTE_VECT_SIMD_MAX = INT16_MAX + 1 }

Functions


uint16_t rte_vect_get_max_simd_bitwidth (void)
int rte_vect_set_max_simd_bitwidth (uint16_t bitwidth)

Detailed Description

SIMD vector types and control

This file defines types to use vector instructions with generic C code and APIs to enable the code using them.

Definition in file rte_vect.h.

Typedef Documentation

typedef uint8_t rte_v64u8_t

64 bits vector size to use with unsigned 8 bits elements.

a = (rte_v64u8_t){ a0, a1, a2, a3, a4, a5, a6, a7 }

Definition at line 27 of file rte_vect.h.

typedef uint16_t rte_v64u16_t

64 bits vector size to use with unsigned 16 bits elements.

a = (rte_v64u16_t){ a0, a1, a2, a3 }

Definition at line 34 of file rte_vect.h.

typedef uint32_t rte_v64u32_t

64 bits vector size to use with unsigned 32 bits elements.

a = (rte_v64u32_t){ a0, a1 }

Definition at line 41 of file rte_vect.h.

typedef uint8_t rte_v128u8_t

128 bits vector size to use with unsigned 8 bits elements.

a = (rte_v128u8_t){ a00, a01, a02, a03, a04, a05, a06, a07, a08, a09, a10, a11, a12, a13, a14, a15 }

Definition at line 49 of file rte_vect.h.

typedef uint16_t rte_v128u16_t

128 bits vector size to use with unsigned 16 bits elements.

a = (rte_v128u16_t){ a0, a1, a2, a3, a4, a5, a6, a7 }

Definition at line 56 of file rte_vect.h.

typedef uint32_t rte_v128u32_t

128 bits vector size to use with unsigned 32 bits elements.

a = (rte_v128u32_t){ a0, a1, a2, a3 }

Definition at line 63 of file rte_vect.h.

typedef uint64_t rte_v128u64_t

128 bits vector size to use with unsigned 64 bits elements.

a = (rte_v128u64_t){ a0, a1 }

Definition at line 70 of file rte_vect.h.

typedef uint8_t rte_v256u8_t

256 bits vector size to use with unsigned 8 bits elements.

a = (rte_v256u8_t){ a00, a01, a02, a03, a04, a05, a06, a07, a08, a09, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31 }

Definition at line 80 of file rte_vect.h.

typedef uint16_t rte_v256u16_t

256 bits vector size to use with unsigned 16 bits elements.

a = (rte_v256u16_t){ a00, a01, a02, a03, a04, a05, a06, a07, a08, a09, a10, a11, a12, a13, a14, a15 }

Definition at line 88 of file rte_vect.h.

typedef uint32_t rte_v256u32_t

256 bits vector size to use with unsigned 32 bits elements.

a = (rte_v256u32_t){ a0, a1, a2, a3, a4, a5, a6, a7 }

Definition at line 95 of file rte_vect.h.

typedef uint64_t rte_v256u64_t

256 bits vector size to use with unsigned 64 bits elements.

a = (rte_v256u64_t){ a0, a1, a2, a3 }

Definition at line 102 of file rte_vect.h.

typedef int8_t rte_v64s8_t

64 bits vector size to use with 8 bits elements.

a = (rte_v64s8_t){ a0, a1, a2, a3, a4, a5, a6, a7 }

Definition at line 112 of file rte_vect.h.

typedef int16_t rte_v64s16_t

64 bits vector size to use with 16 bits elements.

a = (rte_v64s16_t){ a0, a1, a2, a3 }

Definition at line 119 of file rte_vect.h.

typedef int32_t rte_v64s32_t

64 bits vector size to use with 32 bits elements.

a = (rte_v64s32_t){ a0, a1 }

Definition at line 126 of file rte_vect.h.

typedef int8_t rte_v128s8_t

128 bits vector size to use with 8 bits elements.

a = (rte_v128s8_t){ a00, a01, a02, a03, a04, a05, a06, a07, a08, a09, a10, a11, a12, a13, a14, a15 }

Definition at line 134 of file rte_vect.h.

typedef int16_t rte_v128s16_t

128 bits vector size to use with 16 bits elements.

a = (rte_v128s16_t){ a0, a1, a2, a3, a4, a5, a6, a7 }

Definition at line 141 of file rte_vect.h.

typedef int32_t rte_v128s32_t

128 bits vector size to use with 32 bits elements.

a = (rte_v128s32_t){ a0, a1, a2, a3 }

Definition at line 148 of file rte_vect.h.

typedef int64_t rte_v128s64_t

128 bits vector size to use with 64 bits elements.

a = (rte_v128s64_t){ a1, a2 }

Definition at line 155 of file rte_vect.h.

typedef int8_t rte_v256s8_t

256 bits vector size to use with 8 bits elements.

a = (rte_v256s8_t){ a00, a01, a02, a03, a04, a05, a06, a07, a08, a09, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31 }

Definition at line 165 of file rte_vect.h.

typedef int16_t rte_v256s16_t

256 bits vector size to use with 16 bits elements.

a = (rte_v256s16_t){ a00, a01, a02, a03, a04, a05, a06, a07, a08, a09, a10, a11, a12, a13, a14, a15 }

Definition at line 173 of file rte_vect.h.

typedef int32_t rte_v256s32_t

256 bits vector size to use with 32 bits elements.

a = (rte_v256s32_t){ a0, a1, a2, a3, a4, a5, a6, a7 }

Definition at line 180 of file rte_vect.h.

typedef int64_t rte_v256s64_t

256 bits vector size to use with 64 bits elements.

a = (rte_v256s64_t){ a0, a1, a2, a3 }

Definition at line 187 of file rte_vect.h.

Enumeration Type Documentation

enum rte_vect_max_simd

The max SIMD bitwidth value to limit vector path selection.

Enumerator

Limits path selection to scalar, disables all vector paths.
Limits path selection to SSE/NEON/Altivec or below.
Limits path selection to AVX2 or below.
Limits path selection to AVX512 or below.
Disables limiting by max SIMD bitwidth, allows all suitable paths. This value is used as it is a large number and a power of 2.

Definition at line 194 of file rte_vect.h.

Function Documentation

uint16_t rte_vect_get_max_simd_bitwidth (void)

Get the supported SIMD bitwidth.

Returns

uint16_t bitwidth.

int rte_vect_set_max_simd_bitwidth (uint16_t bitwidth)

Set the supported SIMD bitwidth. This API should only be called once at initialization, before EAL init.

Parameters

bitwidth uint16_t bitwidth.

Returns

  • 0 on success.
  • -EINVAL on invalid bitwidth parameter.
  • -EPERM if bitwidth is forced.

Author

Generated automatically by Doxygen for DPDK from the source code.

Fri Dec 15 2023 Version 23.11.0