extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
_mm_movemask_pd (__m128d __A)
{
- __vector __m64 result;
+ __vector unsigned long long result;
static const __vector unsigned int perm_mask =
{
#ifdef __LITTLE_ENDIAN__
#endif
};
- result = (__vector __m64) vec_vbpermq ((__vector unsigned char) __A,
- (__vector unsigned char) perm_mask);
+ result = ((__vector unsigned long long)
+ vec_vbpermq ((__vector unsigned char) __A,
+ (__vector unsigned char) perm_mask));
#ifdef __LITTLE_ENDIAN__
return result[1];
extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
_mm_movemask_epi8 (__m128i __A)
{
- __vector __m64 result;
+ __vector unsigned long long result;
static const __vector unsigned char perm_mask =
{
#ifdef __LITTLE_ENDIAN__
#endif
};
- result = (__vector __m64) vec_vbpermq ((__vector unsigned char) __A,
- (__vector unsigned char) perm_mask);
+ result = ((__vector unsigned long long)
+ vec_vbpermq ((__vector unsigned char) __A,
+ (__vector unsigned char) perm_mask));
#ifdef __LITTLE_ENDIAN__
return result[1];
{
/* Splat two lower SPFP values to both halves. */
__v4sf temp, rounded;
- __vector __m64 result;
+ __vector unsigned long long result;
/* Splat two lower SPFP values to both halves. */
temp = (__v4sf) vec_splat ((__vector long long)__A, 0);
rounded = vec_rint(temp);
- result = (__vector __m64) vec_cts (rounded, 0);
+ result = (__vector unsigned long long) vec_cts (rounded, 0);
return ((__m64) __builtin_unpack_vector_int128 ((__vector __int128)result, 0));
}
_mm_cvttps_pi32 (__m128 __A)
{
__v4sf temp;
- __vector __m64 result;
+ __vector unsigned long long result;
/* Splat two lower SPFP values to both halves. */
temp = (__v4sf) vec_splat ((__vector long long)__A, 0);
- result = (__vector __m64) vec_cts (temp, 0);
+ result = (__vector unsigned long long) vec_cts (temp, 0);
return ((__m64) __builtin_unpack_vector_int128 ((__vector __int128)result, 0));
}
vm1 = (__vector signed int) __builtin_pack_vector_int128 (__B, __B);
vf1 = (__vector float) vec_ctf (vm1, 0);
- return ((__m128) (__vector __m64)
- { ((__vector __m64)vf1) [0], ((__vector __m64)__A) [1]});
+ return ((__m128) (__vector unsigned long long)
+ { ((__vector unsigned long long)vf1) [0],
+ ((__vector unsigned long long)__A) [1]});
}
extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
{
__v4sf rounded;
__vector signed int temp;
- __vector __m64 result;
+ __vector unsigned long long result;
rounded = vec_rint(__A);
temp = vec_cts (rounded, 0);
- result = (__vector __m64) vec_pack (temp, temp);
+ result = (__vector unsigned long long) vec_pack (temp, temp);
return ((__m64) __builtin_unpack_vector_int128 ((__vector __int128)result, 0));
}
extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
_mm_loadh_pi (__m128 __A, __m64 const *__P)
{
- __vector __m64 __a = (__vector __m64)__A;
- __vector __m64 __p = vec_splats(*__P);
+ __vector unsigned long long __a = (__vector unsigned long long)__A;
+ __vector unsigned long long __p = vec_splats(*__P);
__a [1] = __p [1];
return (__m128)__a;
extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
_mm_storeh_pi (__m64 *__P, __m128 __A)
{
- __vector __m64 __a = (__vector __m64) __A;
+ __vector unsigned long long __a = (__vector unsigned long long) __A;
*__P = __a[1];
}
extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
_mm_movehl_ps (__m128 __A, __m128 __B)
{
- return (__m128) vec_mergel ((__vector __m64)__B, (__vector __m64)__A);
+ return (__m128) vec_mergel ((__vector unsigned long long)__B,
+ (__vector unsigned long long)__A);
}
/* Moves the lower two values of B into the upper two values of A. */
extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
_mm_movelh_ps (__m128 __A, __m128 __B)
{
- return (__m128) vec_mergeh ((__vector __m64)__A, (__vector __m64)__B);
+ return (__m128) vec_mergeh ((__vector unsigned long long)__A,
+ (__vector unsigned long long)__B);
}
/* Sets the lower two SPFP values with 64-bits of data loaded from P;
extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
_mm_loadl_pi (__m128 __A, __m64 const *__P)
{
- __vector __m64 __a = (__vector __m64)__A;
- __vector __m64 __p = vec_splats(*__P);
+ __vector unsigned long long __a = (__vector unsigned long long)__A;
+ __vector unsigned long long __p = vec_splats(*__P);
__a [0] = __p [0];
return (__m128)__a;
extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
_mm_storel_pi (__m64 *__P, __m128 __A)
{
- __vector __m64 __a = (__vector __m64) __A;
+ __vector unsigned long long __a = (__vector unsigned long long) __A;
*__P = __a[0];
}
extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
_mm_movemask_ps (__m128 __A)
{
- __vector __m64 result;
+ __vector unsigned long long result;
static const __vector unsigned int perm_mask =
{
#ifdef __LITTLE_ENDIAN__
#endif
};
- result = (__vector __m64) vec_vbpermq ((__vector unsigned char) __A,
- (__vector unsigned char) perm_mask);
+ result = ((__vector unsigned long long)
+ vec_vbpermq ((__vector unsigned char) __A,
+ (__vector unsigned char) perm_mask));
#ifdef __LITTLE_ENDIAN__
return result[1];
#endif
};
__m64_union t;
- __vector __m64 a, p, r;
+ __vector unsigned long long a, p, r;
#ifdef __LITTLE_ENDIAN__
t.as_short[0] = permute_selectors[element_selector_10];