OpenCores
URL https://opencores.org/ocsvn/scarts/scarts/trunk

Subversion Repositories scarts

[/] [scarts/] [trunk/] [toolchain/] [scarts-gcc/] [gcc-4.1.1/] [gcc/] [testsuite/] [gcc.target/] [i386/] [xorps.c] - Blame information for rev 20

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 12 jlechner
/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
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
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.