xref: /minix3/external/bsd/llvm/dist/clang/test/CodeGenOpenCL/kernel-arg-info.cl (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
1*0a6a1f1dSLionel Sambuc// RUN: %clang_cc1 %s -cl-kernel-arg-info -emit-llvm -o - -triple spir-unknown-unknown | FileCheck %s -check-prefix ARGINFO
2*0a6a1f1dSLionel Sambuc// RUN: %clang_cc1 %s -emit-llvm -o - -triple spir-unknown-unknown | FileCheck %s -check-prefix NO-ARGINFO
3f4a2713aSLionel Sambuc
4f4a2713aSLionel Sambuckernel void foo(__global int * restrict X, const int Y,
5f4a2713aSLionel Sambuc                volatile int anotherArg, __constant float * restrict Z) {
6f4a2713aSLionel Sambuc  *X = Y + anotherArg;
7f4a2713aSLionel Sambuc}
8f4a2713aSLionel Sambuc
9*0a6a1f1dSLionel Sambuc// CHECK:  !{!"kernel_arg_addr_space", i32 1, i32 0, i32 0, i32 2}
10*0a6a1f1dSLionel Sambuc// CHECK:  !{!"kernel_arg_access_qual", !"none", !"none", !"none", !"none"}
11*0a6a1f1dSLionel Sambuc// CHECK:  !{!"kernel_arg_type", !"int*", !"int", !"int", !"float*"}
12*0a6a1f1dSLionel Sambuc// CHECK:  !{!"kernel_arg_base_type", !"int*", !"int", !"int", !"float*"}
13*0a6a1f1dSLionel Sambuc// CHECK:  !{!"kernel_arg_type_qual", !"restrict", !"const", !"volatile", !"restrict const"}
14*0a6a1f1dSLionel Sambuc// ARGINFO: !{!"kernel_arg_name", !"X", !"Y", !"anotherArg", !"Z"}
15*0a6a1f1dSLionel Sambuc// NO-ARGINFO-NOT: !{!"kernel_arg_name", !"X", !"Y", !"anotherArg", !"Z"}
16f4a2713aSLionel Sambuc
17f4a2713aSLionel Sambuckernel void foo2(read_only image1d_t img1, image2d_t img2, write_only image2d_array_t img3) {
18f4a2713aSLionel Sambuc}
19*0a6a1f1dSLionel Sambuc// CHECK:  !{!"kernel_arg_addr_space", i32 1, i32 1, i32 1}
20*0a6a1f1dSLionel Sambuc// CHECK:  !{!"kernel_arg_access_qual", !"read_only", !"read_only", !"write_only"}
21*0a6a1f1dSLionel Sambuc// CHECK:  !{!"kernel_arg_type", !"image1d_t", !"image2d_t", !"image2d_array_t"}
22*0a6a1f1dSLionel Sambuc// CHECK:  !{!"kernel_arg_base_type", !"image1d_t", !"image2d_t", !"image2d_array_t"}
23*0a6a1f1dSLionel Sambuc// CHECK:  !{!"kernel_arg_type_qual", !"", !"", !""}
24*0a6a1f1dSLionel Sambuc// ARGINFO: !{!"kernel_arg_name", !"img1", !"img2", !"img3"}
25*0a6a1f1dSLionel Sambuc// NO-ARGINFO-NOT: !{!"kernel_arg_name", !"img1", !"img2", !"img3"}
26*0a6a1f1dSLionel Sambuc
27*0a6a1f1dSLionel Sambuckernel void foo3(__global half * X) {
28*0a6a1f1dSLionel Sambuc}
29*0a6a1f1dSLionel Sambuc// CHECK:  !{!"kernel_arg_addr_space", i32 1}
30*0a6a1f1dSLionel Sambuc// CHECK:  !{!"kernel_arg_access_qual", !"none"}
31*0a6a1f1dSLionel Sambuc// CHECK:  !{!"kernel_arg_type", !"half*"}
32*0a6a1f1dSLionel Sambuc// CHECK:  !{!"kernel_arg_base_type", !"half*"}
33*0a6a1f1dSLionel Sambuc// CHECK:  !{!"kernel_arg_type_qual", !""}
34*0a6a1f1dSLionel Sambuc// ARGINFO: !{!"kernel_arg_name", !"X"}
35*0a6a1f1dSLionel Sambuc// NO-ARGINFO-NOT: !{!"kernel_arg_name", !"X"}
36*0a6a1f1dSLionel Sambuc
37*0a6a1f1dSLionel Sambuctypedef unsigned int myunsignedint;
38*0a6a1f1dSLionel Sambuckernel void foo4(__global unsigned int * X, __global myunsignedint * Y) {
39*0a6a1f1dSLionel Sambuc}
40*0a6a1f1dSLionel Sambuc// CHECK:  !{!"kernel_arg_addr_space", i32 1, i32 1}
41*0a6a1f1dSLionel Sambuc// CHECK:  !{!"kernel_arg_access_qual", !"none", !"none"}
42*0a6a1f1dSLionel Sambuc// CHECK:  !{!"kernel_arg_type", !"uint*", !"myunsignedint*"}
43*0a6a1f1dSLionel Sambuc// CHECK:  !{!"kernel_arg_base_type", !"uint*", !"uint*"}
44*0a6a1f1dSLionel Sambuc// CHECK:  !{!"kernel_arg_type_qual", !"", !""}
45*0a6a1f1dSLionel Sambuc// ARGINFO: !{!"kernel_arg_name", !"X", !"Y"}
46*0a6a1f1dSLionel Sambuc// NO-ARGINFO-NOT: !{!"kernel_arg_name", !"X", !"Y"}
47*0a6a1f1dSLionel Sambuc
48*0a6a1f1dSLionel Sambuctypedef image1d_t myImage;
49*0a6a1f1dSLionel Sambuckernel void foo5(read_only myImage img1, write_only image1d_t img2) {
50*0a6a1f1dSLionel Sambuc}
51*0a6a1f1dSLionel Sambuc// CHECK:  !{!"kernel_arg_access_qual", !"read_only", !"write_only"}
52*0a6a1f1dSLionel Sambuc// CHECK:  !{!"kernel_arg_type", !"myImage", !"image1d_t"}
53*0a6a1f1dSLionel Sambuc// CHECK:  !{!"kernel_arg_base_type", !"image1d_t", !"image1d_t"}
54*0a6a1f1dSLionel Sambuc// ARGINFO: !{!"kernel_arg_name", !"img1", !"img2"}
55*0a6a1f1dSLionel Sambuc// NO-ARGINFO-NOT: !{!"kernel_arg_name", !"img1", !"img2"}
56