// 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=SPV // 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=NV // SPV: void @_Z9test_castPi // SPV: call noundef ptr addrspace(1) @llvm.spv.generic.cast.to.ptr.explicit.p1 // SPV: call noundef ptr addrspace(3) @llvm.spv.generic.cast.to.ptr.explicit.p3 // SPV: call noundef ptr @llvm.spv.generic.cast.to.ptr.explicit.p0 // SPV: addrspacecast ptr addrspace(4) %{{.*}} to ptr addrspace(1) // SPV: addrspacecast ptr addrspace(4) %{{.*}} to ptr addrspace(3) // SPV: addrspacecast ptr addrspace(4) %{{.*}} to ptr // NV: void @_Z9test_castPi // NV: call noundef ptr addrspace(1) @_Z41__spirv_GenericCastToPtrExplicit_ToGlobalPvi // NV: call noundef ptr addrspace(3) @_Z40__spirv_GenericCastToPtrExplicit_ToLocalPvi // NV: call noundef ptr @_Z42__spirv_GenericCastToPtrExplicit_ToPrivatePvi // NV: addrspacecast ptr %{{.*}} to ptr addrspace(1) // NV: addrspacecast ptr %{{.*}} to ptr addrspace(3) void test_cast(int* p) { __spirv_GenericCastToPtrExplicit_ToGlobal(p, 5); __spirv_GenericCastToPtrExplicit_ToLocal(p, 4); __spirv_GenericCastToPtrExplicit_ToPrivate(p, 7); __spirv_GenericCastToPtr_ToGlobal(p, 5); __spirv_GenericCastToPtr_ToLocal(p, 4); __spirv_GenericCastToPtr_ToPrivate(p, 7); }