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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [gcc-4.2.2/] [gcc/] [testsuite/] [gcc.dg/] [simd-1.c] - Blame information for rev 853

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

Line No. Rev Author Line
1 149 jeremybenn
/* { dg-do compile } */
2
/* { dg-options "-Wall" } */
3
 
4
/* Origin: Aldy Hernandez <aldyh@redhat.com>.  */
5
/* Purpose: Program to test generic SIMD support.  */
6
 
7
typedef int __attribute__((vector_size (16))) v4si;
8
typedef short __attribute__((vector_size (16))) v8hi;
9
typedef int __attribute__((vector_size (8))) v2si;
10
typedef unsigned int __attribute__((vector_size (16))) uv4si;
11
 
12
v4si a, b;
13
v2si c, d;
14
v8hi e;
15
uv4si f;
16
 
17
long long foo;
18
int foo1;
19
short foo2 __attribute__((vector_size (8)));
20
 
21
void
22
hanneke ()
23
{
24
  /* Assignment.  */
25
  a = b;
26
 
27
  /* Assignment of different types.  */
28
  b = c; /* { dg-error "incompatible types in assignment" } */
29
  d = a; /* { dg-error "incompatible types in assignment" } */
30
 
31
  /* Casting between SIMDs of the same size.  */
32
  e = (typeof (e)) a;
33
 
34
  /* Different signed SIMD assignment.  */
35
  f = a;
36
 
37
  /* Casted different signed SIMD assignment.  */
38
  f = (uv4si) a;
39
 
40
  /* Assignment between scalar and SIMD of different size.  */
41
  foo = a; /* { dg-error "incompatible types in assignment" } */
42
 
43
  /* Casted assignment between scalar and SIMD of same size.  */
44
  foo = (typeof (foo)) foo2;
45
 
46
  /* Casted assignment between scalar and SIMD of different size.  */
47
  foo1 = (typeof (foo1)) foo2; /* { dg-error "can't convert between vector values of different size" } */
48
 
49
  /* Operators on compatible SIMD types.  */
50
  a += b + b;
51
  a -= b;
52
  a *= b;
53
  a /= b;
54
  a = -b;
55
 
56
  /* Operators on incompatible SIMD types.  */
57
  a = b + c; /* { dg-error "invalid operands to binary +" } */
58
  a = b - c; /* { dg-error "invalid operands to binary -" } */
59
  a = b * c; /* { dg-error "invalid operands to binary *" } */
60
  a = b / c; /* { dg-error "invalid operands to binary /" } */
61
}

powered by: WebSVN 2.1.0

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