1 #ifndef INCLUDED_volk_32i_x2_and_32i_a_H
2 #define INCLUDED_volk_32i_x2_and_32i_a_H
16 static inline void volk_32i_x2_and_32i_a_sse(
int32_t* cVector,
const int32_t* aVector,
const int32_t* bVector,
unsigned int num_points){
17 unsigned int number = 0;
18 const unsigned int quarterPoints = num_points / 4;
20 float* cPtr = (
float*)cVector;
21 const float* aPtr = (
float*)aVector;
22 const float* bPtr = (
float*)bVector;
24 __m128 aVal, bVal, cVal;
25 for(;number < quarterPoints; number++){
27 aVal = _mm_load_ps(aPtr);
28 bVal = _mm_load_ps(bPtr);
30 cVal = _mm_and_ps(aVal, bVal);
32 _mm_store_ps(cPtr,cVal);
39 number = quarterPoints * 4;
40 for(;number < num_points; number++){
41 cVector[number] = aVector[number] & bVector[number];
46 #ifdef LV_HAVE_GENERIC
54 static inline void volk_32i_x2_and_32i_generic(
int32_t* cVector,
const int32_t* aVector,
const int32_t* bVector,
unsigned int num_points){
58 unsigned int number = 0;
60 for(number = 0; number < num_points; number++){
61 *cPtr++ = (*aPtr++) & (*bPtr++);
74 extern void volk_32i_x2_and_32i_a_orc_impl(
int32_t* cVector,
const int32_t* aVector,
const int32_t* bVector,
unsigned int num_points);
75 static inline void volk_32i_x2_and_32i_u_orc(
int32_t* cVector,
const int32_t* aVector,
const int32_t* bVector,
unsigned int num_points){
76 volk_32i_x2_and_32i_a_orc_impl(cVector, aVector, bVector, num_points);
signed int int32_t
Definition: stdint.h:77