42 lines · plain
1// RUN: %clang_cc1 -fcuda-is-device -triple spirv64 -o - -emit-llvm -x cuda %s | FileCheck %s2// RUN: %clang_cc1 -fcuda-is-device -triple spirv32 -o - -emit-llvm -x cuda %s | FileCheck %s3 4#define __global__ __attribute__((global))5 6__attribute__((reqd_work_group_size(0, 0, 0)))7__global__ void reqd_work_group_size_0_0_0() {}8 9__attribute__((reqd_work_group_size(128, 1, 1)))10__global__ void reqd_work_group_size_128_1_1() {}11 12__attribute__((work_group_size_hint(2, 2, 2)))13__global__ void work_group_size_hint_2_2_2() {}14 15__attribute__((vec_type_hint(int)))16__global__ void vec_type_hint_int() {}17 18__attribute__((intel_reqd_sub_group_size(64)))19__global__ void intel_reqd_sub_group_size_64() {}20 21template <unsigned a, unsigned b, unsigned c>22__attribute__((reqd_work_group_size(a, b, c)))23__global__ void reqd_work_group_size_a_b_c() {}24 25template __global__ void reqd_work_group_size_a_b_c<256,1,1>(void);26 27// CHECK: define spir_kernel void @_Z26reqd_work_group_size_0_0_0v() #[[ATTR:[0-9]+]] !reqd_work_group_size ![[WG_SIZE_ZEROS:[0-9]+]]28// CHECK: define spir_kernel void @_Z28reqd_work_group_size_128_1_1v() #[[ATTR:[0-9]+]] !reqd_work_group_size ![[WG_SIZE:[0-9]+]]29// CHECK: define spir_kernel void @_Z26work_group_size_hint_2_2_2v() #[[ATTR]] !work_group_size_hint ![[WG_HINT:[0-9]+]]30// CHECK: define spir_kernel void @_Z17vec_type_hint_intv() #[[ATTR]] !vec_type_hint ![[VEC_HINT:[0-9]+]]31// CHECK: define spir_kernel void @_Z28intel_reqd_sub_group_size_64v() #[[ATTR]] !intel_reqd_sub_group_size ![[SUB_GRP:[0-9]+]]32// CHECK: define spir_kernel void @_Z26reqd_work_group_size_a_b_cILj256ELj1ELj1EEvv() #[[ATTR]] comdat !reqd_work_group_size ![[WG_SIZE_TMPL:[0-9]+]]33 34// CHECK: attributes #[[ATTR]] = { {{.*}} }35 36// CHECK: ![[WG_SIZE_ZEROS]] = !{i32 0, i32 0, i32 0}37// CHECK: ![[WG_SIZE]] = !{i32 128, i32 1, i32 1}38// CHECK: ![[WG_HINT]] = !{i32 2, i32 2, i32 2}39// CHECK: ![[VEC_HINT]] = !{i32 poison, i32 1}40// CHECK: ![[SUB_GRP]] = !{i32 64}41// CHECK: ![[WG_SIZE_TMPL]] = !{i32 256, i32 1, i32 1}42