File: opencl_types.cl

package info (click to toggle)
llvm-toolchain-20 1%3A20.1.8-1~exp1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 2,111,388 kB
  • sloc: cpp: 7,438,767; ansic: 1,393,871; asm: 1,012,926; python: 241,728; f90: 86,635; objc: 75,411; lisp: 42,144; pascal: 17,286; sh: 10,027; ml: 5,082; perl: 4,730; awk: 3,523; makefile: 3,349; javascript: 2,251; xml: 892; fortran: 672
file content (153 lines) | stat: -rw-r--r-- 6,889 bytes parent folder | download | duplicates (2)
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
// RUN: %clang_cc1 -cl-std=CL2.0 %s -triple "spir-unknown-unknown" -emit-llvm -o - -O0 | FileCheck %s --check-prefix=CHECK-SPIR
// RUN: %clang_cc1 -cl-std=CL2.0 %s -triple "amdgcn--amdhsa" -emit-llvm -o - -O0 | FileCheck %s --check-prefix=CHECK-AMDGCN

#define CLK_ADDRESS_CLAMP_TO_EDGE       2
#define CLK_NORMALIZED_COORDS_TRUE      1
#define CLK_FILTER_NEAREST              0x10
#define CLK_FILTER_LINEAR               0x20

constant sampler_t glb_smp = CLK_ADDRESS_CLAMP_TO_EDGE|CLK_NORMALIZED_COORDS_TRUE|CLK_FILTER_NEAREST;

void fnc1(image1d_t img) {}
// CHECK-SPIR: @fnc1(target("spirv.Image", void, 0, 0, 0, 0, 0, 0, 0)
// CHECK-AMDGCN: @fnc1(ptr addrspace(4)

void fnc1arr(image1d_array_t img) {}
// CHECK-SPIR: @fnc1arr(target("spirv.Image", void, 0, 0, 1, 0, 0, 0, 0)
// CHECK-AMDGCN: @fnc1arr(ptr addrspace(4)

void fnc1buff(image1d_buffer_t img) {}
// CHECK-SPIR: @fnc1buff(target("spirv.Image", void, 5, 0, 0, 0, 0, 0, 0)
// CHECK-AMDGCN: @fnc1buff(ptr addrspace(4)

void fnc2(image2d_t img) {}
// CHECK-SPIR: @fnc2(target("spirv.Image", void, 1, 0, 0, 0, 0, 0, 0)
// CHECK-AMDGCN: @fnc2(ptr addrspace(4)

void fnc2arr(image2d_array_t img) {}
// CHECK-SPIR: @fnc2arr(target("spirv.Image", void, 1, 0, 1, 0, 0, 0, 0)
// CHECK-AMDGCN: @fnc2arr(ptr addrspace(4)

void fnc3(image3d_t img) {}
// CHECK-SPIR: @fnc3(target("spirv.Image", void, 2, 0, 0, 0, 0, 0, 0)
// CHECK-AMDGCN: @fnc3(ptr addrspace(4)

void fnc4smp(sampler_t s) {}
// CHECK-SPIR-LABEL: define {{.*}}void @fnc4smp(target("spirv.Sampler")
// CHECK-AMDGCN-LABEL: define {{.*}}void @fnc4smp(ptr addrspace(4)

kernel void foo(image1d_t img) {
  sampler_t smp = CLK_ADDRESS_CLAMP_TO_EDGE|CLK_NORMALIZED_COORDS_TRUE|CLK_FILTER_LINEAR;
  // CHECK-SPIR: alloca target("spirv.Sampler")
  // CHECK-AMDGCN: alloca ptr addrspace(4)
  event_t evt;
  // CHECK-SPIR: alloca target("spirv.Event")
  // CHECK-AMDGCN: alloca ptr addrspace(5)
  clk_event_t clk_evt;
  // CHECK-SPIR: alloca target("spirv.DeviceEvent")
  // CHECK-AMDGCN: alloca ptr addrspace(1)
  queue_t queue;
  // CHECK-SPIR: alloca target("spirv.Queue")
  // CHECK-AMDGCN: alloca ptr addrspace(1)
  reserve_id_t rid;
  // CHECK-SPIR: alloca target("spirv.ReserveId")
  // CHECK-AMDGCN: alloca ptr addrspace(1)
  // CHECK-SPIR: store target("spirv.Sampler")
  // CHECK-AMDGCN: store ptr addrspace(4)
  fnc4smp(smp);
  // CHECK-SPIR: call {{.*}}void @fnc4smp(target("spirv.Sampler")
  // CHECK-AMDGCN: call {{.*}}void @fnc4smp(ptr addrspace(4)
  fnc4smp(glb_smp);
  // CHECK-SPIR: call {{.*}}void @fnc4smp(target("spirv.Sampler")
  // CHECK-AMDGCN: call {{.*}}void @fnc4smp(ptr addrspace(4)
}

kernel void foo_ro_pipe(read_only pipe int p) {}
// CHECK-SPIR: @foo_ro_pipe(target("spirv.Pipe", 0) %p)
// CHECK-AMDGCN: @foo_ro_pipe(ptr addrspace(1) %p)

kernel void foo_wo_pipe(write_only pipe int p) {}
// CHECK-SPIR: @foo_wo_pipe(target("spirv.Pipe", 1) %p)
// CHECK-AMDGCN: @foo_wo_pipe(ptr addrspace(1) %p)

void __attribute__((overloadable)) bad1(image1d_t b, image2d_t c, image2d_t d) {}
// CHECK-SPIR-LABEL: @{{_Z4bad114ocl_image1d_ro14ocl_image2d_roS0_|"\\01\?bad1@@\$\$J0YAXPAUocl_image1d_ro@@PAUocl_image2d_ro@@1@Z"}}
// CHECK-AMDGCN-LABEL: @{{_Z4bad114ocl_image1d_ro14ocl_image2d_roS0_|"\\01\?bad1@@\$\$J0YAXPAUocl_image1d_ro@@PAUocl_image2d_ro@@1@Z"}}(ptr addrspace(4){{.*}}ptr addrspace(4){{.*}}ptr addrspace(4){{.*}})


// CHECK-AMDGCN: define dso_local void @_Z20img_type_mangle_test20ocl_image1d_array_ro(ptr addrspace(4) %img)
__attribute__((overloadable))
void img_type_mangle_test(read_only image1d_array_t img) {}

// CHECK-AMDGCN: define dso_local void @_Z20img_type_mangle_test20ocl_image1d_array_wo(ptr addrspace(4) %img)
__attribute__((overloadable))
void img_type_mangle_test(write_only image1d_array_t img) {}

// CHECK-AMDGCN: define dso_local void @_Z20img_type_mangle_test20ocl_image1d_array_rw(ptr addrspace(4) %img)
__attribute__((overloadable))
void img_type_mangle_test(read_write image1d_array_t img) {}


// CHECK-AMDGCN: define dso_local void @_Z20img_type_mangle_test21ocl_image1d_buffer_ro(ptr addrspace(4) %img)
__attribute__((overloadable))
void img_type_mangle_test(read_only image1d_buffer_t img) {}

// CHECK-AMDGCN: define dso_local void @_Z20img_type_mangle_test21ocl_image1d_buffer_wo(ptr addrspace(4) %img)
__attribute__((overloadable))
void img_type_mangle_test(write_only image1d_buffer_t img) {}

// CHECK-AMDGCN: define dso_local void @_Z20img_type_mangle_test21ocl_image1d_buffer_rw(ptr addrspace(4) %img)
__attribute__((overloadable))
void img_type_mangle_test(read_write image1d_buffer_t img) {}


// CHECK-AMDGCN: define dso_local void @_Z20img_type_mangle_test20ocl_image2d_array_ro(ptr addrspace(4) %img)
__attribute__((overloadable))
void img_type_mangle_test(read_only image2d_array_t img) {}

// CHECK-AMDGCN: define dso_local void @_Z20img_type_mangle_test20ocl_image2d_array_wo(ptr addrspace(4) %img)
__attribute__((overloadable))
void img_type_mangle_test(write_only image2d_array_t img) {}

// CHECK-AMDGCN: define dso_local void @_Z20img_type_mangle_test20ocl_image2d_array_rw(ptr addrspace(4) %img)
__attribute__((overloadable))
void img_type_mangle_test(read_write image2d_array_t img) {}


// CHECK-AMDGCN: define dso_local void @_Z20img_type_mangle_test14ocl_image1d_ro(ptr addrspace(4) %img)
__attribute__((overloadable))
void img_type_mangle_test(read_only image1d_t img) {}

// CHECK-AMDGCN: define dso_local void @_Z20img_type_mangle_test14ocl_image1d_wo(ptr addrspace(4) %img)
__attribute__((overloadable))
void img_type_mangle_test(write_only image1d_t img) {}

// CHECK-AMDGCN: define dso_local void @_Z20img_type_mangle_test14ocl_image1d_rw(ptr addrspace(4) %img)
__attribute__((overloadable))
void img_type_mangle_test(read_write image1d_t img) {}


// CHECK-AMDGCN: define dso_local void @_Z20img_type_mangle_test14ocl_image2d_ro(ptr addrspace(4) %img)
__attribute__((overloadable))
void img_type_mangle_test(read_only image2d_t img) {}

// CHECK-AMDGCN: define dso_local void @_Z20img_type_mangle_test14ocl_image2d_wo(ptr addrspace(4) %img)
__attribute__((overloadable))
void img_type_mangle_test(write_only image2d_t img) {}

// CHECK-AMDGCN: define dso_local void @_Z20img_type_mangle_test14ocl_image2d_rw(ptr addrspace(4) %img)
__attribute__((overloadable))
void img_type_mangle_test(read_write image2d_t img) {}


// CHECK-AMDGCN: define dso_local void @_Z20img_type_mangle_test14ocl_image3d_ro(ptr addrspace(4) %img)
__attribute__((overloadable))
void img_type_mangle_test(read_only image3d_t img) {}

// CHECK-AMDGCN: define dso_local void @_Z20img_type_mangle_test14ocl_image3d_wo(ptr addrspace(4) %img)
__attribute__((overloadable))
void img_type_mangle_test(write_only image3d_t img) {}

// CHECK-AMDGCN: define dso_local void @_Z20img_type_mangle_test14ocl_image3d_rw(ptr addrspace(4) %img)
__attribute__((overloadable))
void img_type_mangle_test(read_write image3d_t img) {}