OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.2.2/] [gcc/] [testsuite/] [gcc.dg/] [pr32912-2.c] - Blame information for rev 154

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 149 jeremybenn
/* { dg-do run } */
2
/* { dg-options "-O2 -w" } */
3
 
4
extern void abort (void);
5
 
6
typedef int __m128i __attribute__ ((__vector_size__ (16)));
7
 
8
__m128i
9
foo (void)
10
{
11
  __m128i x = { 0x11111111, 0x22222222, 0x44444444 };
12
  return x;
13
}
14
 
15
__m128i
16
bar (void)
17
{
18
  __m128i x = { 0x11111111, 0x22222222, 0x44444444 };
19
  return ~x;
20
}
21
 
22
int
23
main (void)
24
{
25
  union { __m128i v; int i[sizeof (__m128i) / sizeof (int)]; } u, v;
26
  int i;
27
 
28
  u.v = foo ();
29
  v.v = bar ();
30
  for (i = 0; i < sizeof (u.i) / sizeof (u.i[0]); i++)
31
    {
32
      if (u.i[i] != ~v.i[i])
33
        abort ();
34
      if (i < 3)
35
        {
36
          if (u.i[i] != (0x11111111 << i))
37
            abort ();
38
        }
39
      else if (u.i[i])
40
        abort ();
41
    }
42
  return 0;
43
}

powered by: WebSVN 2.1.0

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