1 // RUN
: %clang_cc1 %s -verify -pedantic -fsyntax-only -cl-std
=CL2.0 -cl-ext
=+cl_khr_subgroups
3 #pragma OPENCL EXTENSION cl_khr_subgroups
: enable
5 void test1
(read_only pipe int p
, global int
* ptr
){
12 read_pipe
(tmp, p
); // expected-error {{first argument to 'read_pipe' must be a pipe type}}
13 read_pipe
(p); // expected-error {{invalid number of arguments to function: 'read_pipe'}}
14 read_pipe
(p, rid
, tmp
, ptr
);
15 read_pipe
(p, tmp
, tmp
, ptr
); // expected-error {{invalid argument type to function 'read_pipe' (expecting 'reserve_id_t' having '__private int')}}
16 read_pipe
(p, rid
, rid
, ptr
); // expected-error {{invalid argument type to function 'read_pipe' (expecting 'unsigned int' having '__private reserve_id_t')}}
17 read_pipe
(p, tmp
); // expected-error {{invalid argument type to function 'read_pipe' (expecting 'int *' having '__private int')}}
18 write_pipe
(p, ptr
); // expected-error {{invalid pipe access modifier (expecting write_only)}}
19 write_pipe
(p, rid
, tmp
, ptr
); // expected-error {{invalid pipe access modifier (expecting write_only)}}
21 // reserve_read
/write_pipe
22 reserve_read_pipe
(p, tmp
);
23 reserve_read_pipe
(p, ptr
); // expected-error{{invalid argument type to function 'reserve_read_pipe' (expecting 'unsigned int' having '__global int *__private')}}
24 work_group_reserve_read_pipe
(tmp, tmp
); // expected-error{{first argument to 'work_group_reserve_read_pipe' must be a pipe type}}
25 sub_group_reserve_write_pipe
(p, tmp
); // expected-error{{invalid pipe access modifier (expecting write_only)}}
27 // commit_read
/write_pipe
28 commit_read_pipe
(p, rid
);
29 commit_read_pipe
(tmp, rid
); // expected-error{{first argument to 'commit_read_pipe' must be a pipe type}}
30 work_group_commit_read_pipe
(p, tmp
); // expected-error{{invalid argument type to function 'work_group_commit_read_pipe' (expecting 'reserve_id_t' having '__private int')}}
31 sub_group_commit_write_pipe
(p, tmp
); // expected-error{{invalid pipe access modifier (expecting write_only)}}
34 void test2
(write_only pipe int p
, global int
* ptr
){
41 write_pipe
(tmp, p
); // expected-error {{first argument to 'write_pipe' must be a pipe type}}
42 write_pipe
(p); // expected-error {{invalid number of arguments to function: 'write_pipe'}}
43 write_pipe
(p, rid
, tmp
, ptr
);
44 write_pipe
(p, tmp
, tmp
, ptr
); // expected-error {{invalid argument type to function 'write_pipe' (expecting 'reserve_id_t' having '__private int')}}
45 write_pipe
(p, rid
, rid
, ptr
); // expected-error {{invalid argument type to function 'write_pipe' (expecting 'unsigned int' having '__private reserve_id_t')}}
46 write_pipe
(p, tmp
); // expected-error {{invalid argument type to function 'write_pipe' (expecting 'int *' having '__private int')}}
47 read_pipe
(p, ptr
); // expected-error {{invalid pipe access modifier (expecting read_only)}}
48 read_pipe
(p, rid
, tmp
, ptr
); // expected-error {{invalid pipe access modifier (expecting read_only)}}
50 // reserve_read
/write_pipe
51 reserve_write_pipe
(p, tmp
);
52 reserve_write_pipe
(p, ptr
); // expected-error{{invalid argument type to function 'reserve_write_pipe' (expecting 'unsigned int' having '__global int *__private')}}
53 work_group_reserve_write_pipe
(tmp, tmp
); // expected-error{{first argument to 'work_group_reserve_write_pipe' must be a pipe type}}
54 sub_group_reserve_read_pipe
(p, tmp
); // expected-error{{invalid pipe access modifier (expecting read_only)}}
56 // commit_read
/write_pipe
57 commit_write_pipe
(p, rid
);
58 commit_write_pipe
(tmp, rid
); // expected-error{{first argument to 'commit_write_pipe' must be a pipe type}}
59 work_group_commit_write_pipe
(p, tmp
); // expected-error{{invalid argument type to function 'work_group_commit_write_pipe' (expecting 'reserve_id_t' having '__private int')}}
60 sub_group_commit_read_pipe
(p, tmp
); // expected-error{{invalid pipe access modifier (expecting read_only)}}
65 get_pipe_num_packets
(tmp); // expected-error {{first argument to 'get_pipe_num_packets' must be a pipe type}}
66 get_pipe_max_packets
(tmp); // expected-error {{first argument to 'get_pipe_max_packets' must be a pipe type}}