xref: /dpdk/lib/eal/ppc/include/rte_vect.h (revision c6552d9a8deffa448de2d5e2e726f50508c1efd2)
199a2dd95SBruce Richardson /*
299a2dd95SBruce Richardson  * SPDX-License-Identifier: BSD-3-Clause
399a2dd95SBruce Richardson  * Copyright (C) IBM Corporation 2016.
499a2dd95SBruce Richardson  */
599a2dd95SBruce Richardson 
699a2dd95SBruce Richardson #ifndef _RTE_VECT_PPC_64_H_
799a2dd95SBruce Richardson #define _RTE_VECT_PPC_64_H_
899a2dd95SBruce Richardson 
999a2dd95SBruce Richardson #include "rte_altivec.h"
1099a2dd95SBruce Richardson 
1199a2dd95SBruce Richardson #include "generic/rte_vect.h"
1299a2dd95SBruce Richardson #include "rte_common.h"
1399a2dd95SBruce Richardson 
1499a2dd95SBruce Richardson #ifdef __cplusplus
1599a2dd95SBruce Richardson extern "C" {
1699a2dd95SBruce Richardson #endif
1799a2dd95SBruce Richardson 
1899a2dd95SBruce Richardson #define RTE_VECT_DEFAULT_SIMD_BITWIDTH RTE_VECT_SIMD_256
1999a2dd95SBruce Richardson 
2064fcadeaSThomas Monjalon typedef __vector signed int xmm_t;
2199a2dd95SBruce Richardson 
2299a2dd95SBruce Richardson #define	XMM_SIZE	(sizeof(xmm_t))
2399a2dd95SBruce Richardson #define	XMM_MASK	(XMM_SIZE - 1)
2499a2dd95SBruce Richardson 
25*c6552d9aSTyler Retzlaff typedef union __rte_aligned(16) rte_xmm {
2699a2dd95SBruce Richardson 	xmm_t    x;
2799a2dd95SBruce Richardson 	uint8_t  u8[XMM_SIZE / sizeof(uint8_t)];
2899a2dd95SBruce Richardson 	uint16_t u16[XMM_SIZE / sizeof(uint16_t)];
2999a2dd95SBruce Richardson 	uint32_t u32[XMM_SIZE / sizeof(uint32_t)];
3099a2dd95SBruce Richardson 	uint64_t u64[XMM_SIZE / sizeof(uint64_t)];
3199a2dd95SBruce Richardson 	double   pd[XMM_SIZE / sizeof(double)];
32*c6552d9aSTyler Retzlaff } rte_xmm_t;
3399a2dd95SBruce Richardson 
3499a2dd95SBruce Richardson #ifdef __cplusplus
3599a2dd95SBruce Richardson }
3699a2dd95SBruce Richardson #endif
3799a2dd95SBruce Richardson 
3899a2dd95SBruce Richardson #endif /* _RTE_VECT_PPC_64_H_ */
39