[clang] [libc] [Clang] Implement resource directory headers for common GPU intrinsics (PR #110179)

Johannes Doerfert via cfe-commits cfe-commits at lists.llvm.org
Tue Nov 5 09:34:30 PST 2024


================
@@ -0,0 +1,86 @@
+//===-- gpuintrin.h - Generic GPU intrinsic functions ---------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+//
+// Provides wrappers around the clang builtins for accessing GPU hardware
+// features. The interface is intended to be portable between architectures, but
+// some targets may provide different implementations. This header can be
+// included for all the common GPU programming languages, namely OpenMP, HIP,
+// CUDA, and OpenCL.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef __GPUINTRIN_H
+#define __GPUINTRIN_H
+
+#if defined(__NVPTX__)
+#include <nvptxintrin.h>
+#elif defined(__AMDGPU__)
+#include <amdgpuintrin.h>
+#else
+#error "This header is only meant to be used on GPU architectures."
+#endif
+
----------------
jdoerfert wrote:

Can we please have a dispatch for each _x/y/z function to pass an index? And define the indices.



https://github.com/llvm/llvm-project/pull/110179


More information about the cfe-commits mailing list