[clang] Implement lifetime analysis for lifetime_capture_by(X) (#115921)
[llvm-project.git] / clang / test / CodeGenCUDASPIRV / spirv-attrs.cu
blob466aee00717a07fd38e73e24f98d37e6629549a6
1 // RUN: %clang_cc1 -fcuda-is-device -triple spirv64 -o - -emit-llvm -x cuda %s  | FileCheck %s
2 // RUN: %clang_cc1 -fcuda-is-device -triple spirv32 -o - -emit-llvm -x cuda %s  | FileCheck %s
4 #define __global__ __attribute__((global))
6 __attribute__((reqd_work_group_size(128, 1, 1)))
7 __global__ void reqd_work_group_size_128_1_1() {}
9 __attribute__((work_group_size_hint(2, 2, 2)))
10 __global__ void work_group_size_hint_2_2_2() {}
12 __attribute__((vec_type_hint(int)))
13 __global__ void vec_type_hint_int() {}
15 __attribute__((intel_reqd_sub_group_size(64)))
16 __global__ void intel_reqd_sub_group_size_64() {}
18 // CHECK: define spir_kernel void @_Z28reqd_work_group_size_128_1_1v() #[[ATTR:[0-9]+]] !reqd_work_group_size ![[WG_SIZE:[0-9]+]]
19 // CHECK: define spir_kernel void @_Z26work_group_size_hint_2_2_2v() #[[ATTR]] !work_group_size_hint ![[WG_HINT:[0-9]+]]
20 // CHECK: define spir_kernel void @_Z17vec_type_hint_intv() #[[ATTR]] !vec_type_hint ![[VEC_HINT:[0-9]+]]
21 // CHECK: define spir_kernel void @_Z28intel_reqd_sub_group_size_64v() #[[ATTR]] !intel_reqd_sub_group_size ![[SUB_GRP:[0-9]+]]
23 // CHECK: attributes #[[ATTR]] = { {{.*}} }
25 // CHECK: ![[WG_SIZE]] = !{i32 128, i32 1, i32 1}
26 // CHECK: ![[WG_HINT]] = !{i32 2, i32 2, i32 2}
27 // CHECK: ![[VEC_HINT]] = !{i32 undef, i32 1}
28 // CHECK: ![[SUB_GRP]] = !{i32 64}