---
name: "rte_v128s32_t"
section: "3"
platform: "linux"
package: "dpdk-doc"
version: "24.11.4-0+deb13u1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/rte_vect.h"
---

# rte\_v128s32\_t(3)

Part of [rte\_vect.h(3)](/rte_vect.h/3.md).

## 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 **31** 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 **38** 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 **45** 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 **53** 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 **60** 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 **67** 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 **74** 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 **84** 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 **92** 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 **99** 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 **106** 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 **116** 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 **123** 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 **130** 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 **138** 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 **145** 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 **152** 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 **159** 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 **169** 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 **177** 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 **184** 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 **191** of file **rte\_vect.h**.

## Enumeration Type Documentation

### enum rte\_vect\_max\_simd

The max SIMD bitwidth value to limit vector path selection.

**Enumerator**

- *RTE\_VECT\_SIMD\_DISABLED*

  *Limits path selection to scalar, disables all vector paths.*

- *RTE\_VECT\_SIMD\_128*

  *Limits path selection to SSE/NEON/Altivec or below.*

- *RTE\_VECT\_SIMD\_256*

  *Limits path selection to AVX2 or below.*

- *RTE\_VECT\_SIMD\_512*

  *Limits path selection to AVX512 or below.*

- *RTE\_VECT\_SIMD\_MAX*

  *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* **198** *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.*
