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

Subversion Repositories openrisc

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc1/] [gcc/] [testsuite/] [gcc.target/] [i386/] [pr39445.c] - Diff between revs 318 and 338

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 318 Rev 338
/* { dg-do run } */
/* { dg-do run } */
/* { dg-options "-Os -msse2" } */
/* { dg-options "-Os -msse2" } */
/* { dg-require-effective-target sse2 } */
/* { dg-require-effective-target sse2 } */
 
 
#include "sse2-check.h"
#include "sse2-check.h"
 
 
typedef struct { __m128 f __attribute__((packed)); } packed;
typedef struct { __m128 f __attribute__((packed)); } packed;
 
 
__m128  __attribute__((noinline))
__m128  __attribute__((noinline))
foo (__m128 a1, __m128 a2, __m128 a3, __m128 a4,
foo (__m128 a1, __m128 a2, __m128 a3, __m128 a4,
     __m128 a5, __m128 a6, __m128 a7, __m128 a8,
     __m128 a5, __m128 a6, __m128 a7, __m128 a8,
     int b1, int b2, int b3, int b4, int b5, int b6, int b7, packed y)
     int b1, int b2, int b3, int b4, int b5, int b6, int b7, packed y)
{
{
  return y.f;
  return y.f;
}
}
 
 
void
void
sse2_test (void)
sse2_test (void)
{
{
  packed x;
  packed x;
  __m128 y = { 0 };
  __m128 y = { 0 };
  x.f = y;
  x.f = y;
  y = foo (y, y, y, y, y, y, y, y, 1, 2, 3, 4, 5, 6, -1, x);
  y = foo (y, y, y, y, y, y, y, y, 1, 2, 3, 4, 5, 6, -1, x);
  if (__builtin_memcmp (&y, &x.f, sizeof (y)) != 0)
  if (__builtin_memcmp (&y, &x.f, sizeof (y)) != 0)
    abort ();
    abort ();
}
}
 
 

powered by: WebSVN 2.1.0

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