xref: /dpdk/lib/eal/ppc/include/rte_vect.h (revision c6552d9a8deffa448de2d5e2e726f50508c1efd2)
1 /*
2  * SPDX-License-Identifier: BSD-3-Clause
3  * Copyright (C) IBM Corporation 2016.
4  */
5 
6 #ifndef _RTE_VECT_PPC_64_H_
7 #define _RTE_VECT_PPC_64_H_
8 
9 #include "rte_altivec.h"
10 
11 #include "generic/rte_vect.h"
12 #include "rte_common.h"
13 
14 #ifdef __cplusplus
15 extern "C" {
16 #endif
17 
18 #define RTE_VECT_DEFAULT_SIMD_BITWIDTH RTE_VECT_SIMD_256
19 
20 typedef __vector signed int xmm_t;
21 
22 #define	XMM_SIZE	(sizeof(xmm_t))
23 #define	XMM_MASK	(XMM_SIZE - 1)
24 
25 typedef union __rte_aligned(16) rte_xmm {
26 	xmm_t    x;
27 	uint8_t  u8[XMM_SIZE / sizeof(uint8_t)];
28 	uint16_t u16[XMM_SIZE / sizeof(uint16_t)];
29 	uint32_t u32[XMM_SIZE / sizeof(uint32_t)];
30 	uint64_t u64[XMM_SIZE / sizeof(uint64_t)];
31 	double   pd[XMM_SIZE / sizeof(double)];
32 } rte_xmm_t;
33 
34 #ifdef __cplusplus
35 }
36 #endif
37 
38 #endif /* _RTE_VECT_PPC_64_H_ */
39