OSDN Git Service

gcc/
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.target / i386 / xorps.c
1 /* { dg-do compile } */
2 /* { dg-options "-Os -msse2" } */
3
4 typedef float __m128 __attribute__ ((vector_size (16)));
5
6 static __inline __m128
7 _mm_mul_ps (__m128 __A, __m128 __B)
8 {
9   return __builtin_ia32_mulps (__A, __B);
10 }
11
12 static __inline __m128
13 _mm_sub_ps (__m128 __A, __m128 __B)
14 {
15   return  __builtin_ia32_subps (__A, __B);
16 }
17
18 __m128 POW_FUNC (__m128 x, __m128 y)
19 {
20     __m128 xmm0 = x, xmm1 = y, xmm2;
21
22     xmm0 = __builtin_ia32_xorps (xmm1, xmm1);
23
24     xmm0 = _mm_mul_ps (xmm0, xmm1);
25
26     xmm0 = _mm_sub_ps (xmm0, xmm1);
27
28     xmm0 = _mm_mul_ps (xmm0, xmm1);
29
30     return xmm0;
31 }