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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gcc.target/] [i386/] [pr46880.c] - Rev 691

Compare with Previous | Blame | View Log

/* PR target/46880 */
/* { dg-do run } */
/* { dg-options "-O2 -fno-strict-aliasing -msse2" } */
/* { dg-require-effective-target sse2_runtime } */
 
typedef double __m128d __attribute__ ((__vector_size__ (16), __may_alias__));
typedef double (*T)[2];
 
static __attribute__ ((noinline, noclone)) __m128d
foo (__m128d c, __m128d d)
{
  T cp = (T) &c;
  T dp = (T) &d;
  __m128d e = { (*cp)[1], (*dp)[1] };
  return e;
}
 
int
main ()
{
  __m128d c = { 1.0, 2.0 };
  __m128d d = { 3.0, 4.0 };
  union { __m128d x; double d[2]; } u;
  u.x = foo (c, d);
  if (u.d[0] != 2.0 || u.d[1] != 4.0)
    __builtin_abort ();
  return 0;
}
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

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