brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.5 KiB · a1c953e Raw
111 lines · cpp
1// RUN: %clang_cc1 -Wno-unused-value -O0 -internal-isystem %S/../../lib/Headers -include __clang_spirv_builtins.h -triple spirv64 -emit-llvm %s -fsycl-is-device -o - | FileCheck %s -check-prefixes=CHECK642// RUN: %clang_cc1 -Wno-unused-value -O0 -internal-isystem %S/../../lib/Headers -include __clang_spirv_builtins.h -triple spirv64 -emit-llvm %s -x cl -o - | FileCheck %s -check-prefixes=CHECK643// RUN: %clang_cc1 -Wno-unused-value -O0 -internal-isystem %S/../../lib/Headers -include __clang_spirv_builtins.h -triple spirv32 -emit-llvm %s -fsycl-is-device -o - | FileCheck %s -check-prefixes=CHECK324// RUN: %clang_cc1 -Wno-unused-value -O0 -internal-isystem %S/../../lib/Headers -include __clang_spirv_builtins.h -triple spirv32 -emit-llvm %s -x cl -o - | FileCheck %s -check-prefixes=CHECK325// RUN: %clang_cc1 -Wno-unused-value -O0 -internal-isystem %S/../../lib/Headers -include __clang_spirv_builtins.h -triple nvptx64 -emit-llvm %s -fsycl-is-device -o - | FileCheck %s -check-prefixes=NV6 7 8// CHECK64: call i64 @llvm.spv.num.workgroups.i64(i32 0)9// CHECK64: call i64 @llvm.spv.num.workgroups.i64(i32 1)10// CHECK64: call i64 @llvm.spv.num.workgroups.i64(i32 2)11// CHECK64: call i64 @llvm.spv.workgroup.size.i64(i32 0)12// CHECK64: call i64 @llvm.spv.workgroup.size.i64(i32 1)13// CHECK64: call i64 @llvm.spv.workgroup.size.i64(i32 2)14// CHECK64: call i64 @llvm.spv.group.id.i64(i32 0)15// CHECK64: call i64 @llvm.spv.group.id.i64(i32 1)16// CHECK64: call i64 @llvm.spv.group.id.i64(i32 2)17// CHECK64: call i64 @llvm.spv.thread.id.in.group.i64(i32 0)18// CHECK64: call i64 @llvm.spv.thread.id.in.group.i64(i32 1)19// CHECK64: call i64 @llvm.spv.thread.id.in.group.i64(i32 2)20// CHECK64: call i64 @llvm.spv.thread.id.i64(i32 0)21// CHECK64: call i64 @llvm.spv.thread.id.i64(i32 1)22// CHECK64: call i64 @llvm.spv.thread.id.i64(i32 2)23// CHECK64: call i64 @llvm.spv.global.size.i64(i32 0)24// CHECK64: call i64 @llvm.spv.global.size.i64(i32 1)25// CHECK64: call i64 @llvm.spv.global.size.i64(i32 2)26// CHECK64: call i64 @llvm.spv.global.offset.i64(i32 0)27// CHECK64: call i64 @llvm.spv.global.offset.i64(i32 1)28// CHECK64: call i64 @llvm.spv.global.offset.i64(i32 2)29// CHECK32: call i32 @llvm.spv.num.workgroups.i32(i32 0)30// CHECK32: call i32 @llvm.spv.num.workgroups.i32(i32 1)31// CHECK32: call i32 @llvm.spv.num.workgroups.i32(i32 2)32// CHECK32: call i32 @llvm.spv.workgroup.size.i32(i32 0)33// CHECK32: call i32 @llvm.spv.workgroup.size.i32(i32 1)34// CHECK32: call i32 @llvm.spv.workgroup.size.i32(i32 2)35// CHECK32: call i32 @llvm.spv.group.id.i32(i32 0)36// CHECK32: call i32 @llvm.spv.group.id.i32(i32 1)37// CHECK32: call i32 @llvm.spv.group.id.i32(i32 2)38// CHECK32: call i32 @llvm.spv.thread.id.in.group.i32(i32 0)39// CHECK32: call i32 @llvm.spv.thread.id.in.group.i32(i32 1)40// CHECK32: call i32 @llvm.spv.thread.id.in.group.i32(i32 2)41// CHECK32: call i32 @llvm.spv.thread.id.i32(i32 0)42// CHECK32: call i32 @llvm.spv.thread.id.i32(i32 1)43// CHECK32: call i32 @llvm.spv.thread.id.i32(i32 2)44// CHECK32: call i32 @llvm.spv.global.size.i32(i32 0)45// CHECK32: call i32 @llvm.spv.global.size.i32(i32 1)46// CHECK32: call i32 @llvm.spv.global.size.i32(i32 2)47// CHECK32: call i32 @llvm.spv.global.offset.i32(i32 0)48// CHECK32: call i32 @llvm.spv.global.offset.i32(i32 1)49// CHECK32: call i32 @llvm.spv.global.offset.i32(i32 2)50// CHECK: call i32 @llvm.spv.subgroup.size()51// CHECK: call i32 @llvm.spv.subgroup.max.size()52// CHECK: call i32 @llvm.spv.num.subgroups()53// CHECK: call i32 @llvm.spv.subgroup.id()54// CHECK: call i32 @llvm.spv.subgroup.local.invocation.id()55  56// NV: call noundef i64 @_Z28__spirv_BuiltInNumWorkgroupsi(i32 noundef 0) #257// NV: call noundef i64 @_Z28__spirv_BuiltInNumWorkgroupsi(i32 noundef 1) #258// NV: call noundef i64 @_Z28__spirv_BuiltInNumWorkgroupsi(i32 noundef 2) #259// NV: call noundef i64 @_Z28__spirv_BuiltInWorkgroupSizei(i32 noundef 0) #260// NV: call noundef i64 @_Z28__spirv_BuiltInWorkgroupSizei(i32 noundef 1) #261// NV: call noundef i64 @_Z28__spirv_BuiltInWorkgroupSizei(i32 noundef 2) #262// NV: call noundef i64 @_Z26__spirv_BuiltInWorkgroupIdi(i32 noundef 0) #263// NV: call noundef i64 @_Z26__spirv_BuiltInWorkgroupIdi(i32 noundef 1) #264// NV: call noundef i64 @_Z26__spirv_BuiltInWorkgroupIdi(i32 noundef 2) #265// NV: call noundef i64 @_Z32__spirv_BuiltInLocalInvocationIdi(i32 noundef 0) #266// NV: call noundef i64 @_Z32__spirv_BuiltInLocalInvocationIdi(i32 noundef 1) #267// NV: call noundef i64 @_Z32__spirv_BuiltInLocalInvocationIdi(i32 noundef 2) #268// NV: call noundef i64 @_Z33__spirv_BuiltInGlobalInvocationIdi(i32 noundef 0) #269// NV: call noundef i64 @_Z33__spirv_BuiltInGlobalInvocationIdi(i32 noundef 1) #270// NV: call noundef i64 @_Z33__spirv_BuiltInGlobalInvocationIdi(i32 noundef 2) #271// NV: call noundef i64 @_Z25__spirv_BuiltInGlobalSizei(i32 noundef 0) #272// NV: call noundef i64 @_Z25__spirv_BuiltInGlobalSizei(i32 noundef 1) #273// NV: call noundef i64 @_Z25__spirv_BuiltInGlobalSizei(i32 noundef 2) #274// NV: call noundef i64 @_Z27__spirv_BuiltInGlobalOffseti(i32 noundef 0) #275// NV: call noundef i64 @_Z27__spirv_BuiltInGlobalOffseti(i32 noundef 1) #276// NV: call noundef i64 @_Z27__spirv_BuiltInGlobalOffseti(i32 noundef 2) #277// NV: call noundef i32 @_Z27__spirv_BuiltInSubgroupSizev() #278// NV: call noundef i32 @_Z30__spirv_BuiltInSubgroupMaxSizev() #279// NV: call noundef i32 @_Z27__spirv_BuiltInNumSubgroupsv() #280// NV: call noundef i32 @_Z25__spirv_BuiltInSubgroupIdv() #281// NV: call noundef i32 @_Z40__spirv_BuiltInSubgroupLocalInvocationIdv() #282 83[[clang::sycl_external]] void test_id_and_range() {84  __spirv_BuiltInNumWorkgroups(0);85  __spirv_BuiltInNumWorkgroups(1);86  __spirv_BuiltInNumWorkgroups(2);87  __spirv_BuiltInWorkgroupSize(0);88  __spirv_BuiltInWorkgroupSize(1);89  __spirv_BuiltInWorkgroupSize(2);90  __spirv_BuiltInWorkgroupId(0);91  __spirv_BuiltInWorkgroupId(1);92  __spirv_BuiltInWorkgroupId(2);93  __spirv_BuiltInLocalInvocationId(0);94  __spirv_BuiltInLocalInvocationId(1);95  __spirv_BuiltInLocalInvocationId(2);96  __spirv_BuiltInGlobalInvocationId(0);97  __spirv_BuiltInGlobalInvocationId(1);98  __spirv_BuiltInGlobalInvocationId(2);99  __spirv_BuiltInGlobalSize(0);100  __spirv_BuiltInGlobalSize(1);101  __spirv_BuiltInGlobalSize(2);102  __spirv_BuiltInGlobalOffset(0);103  __spirv_BuiltInGlobalOffset(1);104  __spirv_BuiltInGlobalOffset(2);105  unsigned int ssize = __spirv_BuiltInSubgroupSize();106  unsigned int smax = __spirv_BuiltInSubgroupMaxSize();107  unsigned int snum = __spirv_BuiltInNumSubgroups();108  unsigned int sid = __spirv_BuiltInSubgroupId();109  unsigned int sinvocid = __spirv_BuiltInSubgroupLocalInvocationId();110}111