File: test_ucharn.cl

package info (click to toggle)
pocl 6.0-7
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 25,320 kB
  • sloc: lisp: 149,513; ansic: 103,778; cpp: 54,947; python: 1,513; sh: 949; ruby: 255; pascal: 226; tcl: 180; makefile: 175; java: 72; xml: 49
file content (84 lines) | stat: -rw-r--r-- 2,044 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
int f2(uchar2 uc2, int z) __attribute__((noinline));
int f2(uchar2 uc2, int z)
{
int s = uc2.x + uc2.y;
return s ^ z;
}

int g2() __attribute__((noinline));
int g2()
{
uchar2 uc2 = (uchar2)(0x18, 0x29);
return f2(uc2, 0x12345678) ^ 0x12345678;
}

int f3(uchar3 uc3, int z) __attribute__((noinline));
int f3(uchar3 uc3, int z)
{
int s = uc3.x + uc3.y + uc3.z;
return s ^ z;
}

int g3() __attribute__((noinline));
int g3()
{
uchar3 uc3 = (uchar3)(0x18, 0x29, 0x3a);
return f3(uc3, 0x12345678) ^ 0x12345678;
}

int f4(uchar4 uc4, int z) __attribute__((noinline));
int f4(uchar4 uc4, int z)
{
int s = uc4.x + uc4.y + uc4.z + uc4.w;
return s ^ z;
}

int g4() __attribute__((noinline));
int g4()
{
uchar4 uc4 = (uchar4)(0x18, 0x29, 0x3a, 0x4b);
return f4(uc4, 0x12345678) ^ 0x12345678;
}

int f8(uchar8 uc8, int z) __attribute__((noinline));
int f8(uchar8 uc8, int z)
{
int s = uc8.s0 + uc8.s1 + uc8.s2 + uc8.s3 + uc8.s4 + uc8.s5 + uc8.s6 + uc8.s7;
return s ^ z;
}

int g8() __attribute__((noinline));
int g8()
{
uchar8 uc8 = (uchar8)(0x18, 0x29, 0x3a, 0x4b, 0x5c, 0x6d, 0x7e, 0x8f);
return f8(uc8, 0x12345678) ^ 0x12345678;
}

int f16(uchar16 uc16, int z) __attribute__((noinline));
int f16(uchar16 uc16, int z)
{
int s = uc16.s0 + uc16.s1 + uc16.s2 + uc16.s3 + uc16.s4 + uc16.s5 + uc16.s6 + uc16.s7 + uc16.s8 + uc16.s9 + uc16.sa + uc16.sb + uc16.sc + uc16.sd + uc16.se + uc16.sf;
return s ^ z;
}

int g16() __attribute__((noinline));
int g16()
{
uchar16 uc16 = (uchar16)(0x18, 0x29, 0x3a, 0x4b, 0x5c, 0x6d, 0x7e, 0x8f, 0xa1, 0xb2, 0xc3, 0xd4, 0xe5, 0xf6, 0x17, 0x28);
return f16(uc16, 0x12345678) ^ 0x12345678;
}

kernel void test_ucharn()
{
  printf("uchar2  %8x\n", f2((uchar2)(0), 0));
  printf("uchar3  %8x\n", f3((uchar3)(0), 0));
  printf("uchar4  %8x\n", f4((uchar4)(0), 0));
  printf("uchar8  %8x\n", f8((uchar8)(0), 0));
  printf("uchar16 %8x\n", f16((uchar16)(0), 0));

  printf("uchar2  %8x\n", g2());
  printf("uchar3  %8x\n", g3());
  printf("uchar4  %8x\n", g4());
  printf("uchar8  %8x\n", g8());
  printf("uchar16 %8x\n", g16());
}