[clang] 310f558 - [CUDA] Make target intrinsics work with ptx 8.7 (#124818)

via cfe-commits cfe-commits at lists.llvm.org
Tue Jan 28 12:14:49 PST 2025


Author: Artem Belevich
Date: 2025-01-28T12:14:46-08:00
New Revision: 310f55875f2fc69af310b6259e65136f0de4404a

URL: https://github.com/llvm/llvm-project/commit/310f55875f2fc69af310b6259e65136f0de4404a
DIFF: https://github.com/llvm/llvm-project/commit/310f55875f2fc69af310b6259e65136f0de4404a.diff

LOG: [CUDA] Make target intrinsics work with ptx 8.7 (#124818)

Fixes build break with CUDA-12.8 introduced in #123398

Added: 
    

Modified: 
    clang/include/clang/Basic/BuiltinsNVPTX.td
    clang/test/CodeGen/builtins-nvptx.c

Removed: 
    


################################################################################
diff  --git a/clang/include/clang/Basic/BuiltinsNVPTX.td b/clang/include/clang/Basic/BuiltinsNVPTX.td
index b43e8ba57f7a0b..9d24a992563a45 100644
--- a/clang/include/clang/Basic/BuiltinsNVPTX.td
+++ b/clang/include/clang/Basic/BuiltinsNVPTX.td
@@ -48,8 +48,9 @@ class PTX<string version, PTXFeatures newer> : PTXFeatures {
   let Features = !strconcat("ptx", version, "|", newer.Features);
 }
 
-let Features = "ptx86" in def PTX86 : PTXFeatures;
+let Features = "ptx87" in def PTX87 : PTXFeatures;
 
+def PTX86 : PTX<"86", PTX87>;
 def PTX85 : PTX<"85", PTX86>;
 def PTX84 : PTX<"84", PTX85>;
 def PTX83 : PTX<"83", PTX84>;

diff  --git a/clang/test/CodeGen/builtins-nvptx.c b/clang/test/CodeGen/builtins-nvptx.c
index 26c465eef306a0..ffa41c85c2734f 100644
--- a/clang/test/CodeGen/builtins-nvptx.c
+++ b/clang/test/CodeGen/builtins-nvptx.c
@@ -28,6 +28,11 @@
 // RUN: %clang_cc1 -ffp-contract=off -triple nvptx64-unknown-unknown -target-cpu sm_89 -target-feature +ptx81 \
 // RUN:            -fcuda-is-device -emit-llvm -o - -x cuda %s \
 // RUN:   | FileCheck -check-prefix=CHECK -check-prefix=CHECK_PTX81_SM89 %s
+// ###  The last run to check with the highest SM and PTX version available
+// ###  to make sure target builtins are still accepted.
+// RUN: %clang_cc1 -ffp-contract=off -triple nvptx64-unknown-unknown -target-cpu sm_100a -target-feature +ptx87 \
+// RUN:            -fcuda-is-device -emit-llvm -o - -x cuda %s \
+// RUN:   | FileCheck -check-prefix=CHECK -check-prefix=CHECK_PTX81_SM89 %s
 
 #define __device__ __attribute__((device))
 #define __global__ __attribute__((global))


        


More information about the cfe-commits mailing list