diff --git a/libcudacxx/test/libcudacxx/cuda/ptx/nvrtc_workaround.h b/libcudacxx/test/libcudacxx/cuda/ptx/nvrtc_workaround.h index fef34f25ef4..2e049bc6217 100644 --- a/libcudacxx/test/libcudacxx/cuda/ptx/nvrtc_workaround.h +++ b/libcudacxx/test/libcudacxx/cuda/ptx/nvrtc_workaround.h @@ -13,6 +13,25 @@ // required for the PTX tests, we define them here outside the header guards. // TODO(bgruber): limit this workaround to NVRTC versions older than the first one shipping those macros #ifdef __CUDACC_RTC__ + +// missing SM_100 +# define _NV_TARGET_VAL_SM_100 1000 +# define _NV_TARGET___NV_PROVIDES_SM_100 (_NV_TARGET_PROVIDES(_NV_TARGET_VAL_SM_100)) +# define _NV_TARGET___NV_IS_EXACTLY_SM_100 (_NV_TARGET_IS_EXACTLY(_NV_TARGET_VAL_SM_100)) +# define NV_PROVIDES_SM_100 __NV_PROVIDES_SM_100 +# define NV_IS_EXACTLY_SM_100 __NV_IS_EXACTLY_SM_100 +# if (_NV_TARGET___NV_IS_EXACTLY_SM_100) +# define _NV_TARGET_BOOL___NV_IS_EXACTLY_SM_100 1 +# else +# define _NV_TARGET_BOOL___NV_IS_EXACTLY_SM_100 0 +# endif +# if (_NV_TARGET___NV_PROVIDES_SM_100) +# define _NV_TARGET_BOOL___NV_PROVIDES_SM_100 1 +# else +# define _NV_TARGET_BOOL___NV_PROVIDES_SM_100 0 +# endif + +// missing SM_100a # ifndef NV_HAS_FEATURE_SM_100a # define NV_HAS_FEATURE_SM_100a __NV_HAS_FEATURE_SM_100a # if (defined(__CUDA_ARCH__) && (__CUDA_ARCH__ >= 1000) && defined(__CUDA_ARCH_FEAT_SM100_ALL)) @@ -22,7 +41,7 @@ # endif # endif // NV_HAS_FEATURE_SM_100a -// Re-enable sm_101a support in nvcc. +// missing SM_101a # ifndef NV_HAS_FEATURE_SM_101a # define NV_HAS_FEATURE_SM_101a __NV_HAS_FEATURE_SM_101a # if (defined(__CUDA_ARCH__) && (__CUDA_ARCH__ >= 1010) && defined(__CUDA_ARCH_FEAT_SM101_ALL)) @@ -31,4 +50,5 @@ # define _NV_TARGET_BOOL___NV_HAS_FEATURE_SM_101a 0 # endif # endif // NV_HAS_FEATURE_SM_101a + #endif // __CUDACC_RTC__ diff --git a/libcudacxx/test/libcudacxx/cuda/ptx/ptx.clusterlaunchcontrol.compile.pass.cpp b/libcudacxx/test/libcudacxx/cuda/ptx/ptx.clusterlaunchcontrol.compile.pass.cpp index 212414c4535..bc4e3b1b9d4 100644 --- a/libcudacxx/test/libcudacxx/cuda/ptx/ptx.clusterlaunchcontrol.compile.pass.cpp +++ b/libcudacxx/test/libcudacxx/cuda/ptx/ptx.clusterlaunchcontrol.compile.pass.cpp @@ -14,6 +14,8 @@ #include #include +#include "nvrtc_workaround.h" +// above header needs to be included before the generated test header #include "generated/clusterlaunchcontrol.h" int main(int, char**) diff --git a/libcudacxx/test/libcudacxx/cuda/ptx/ptx.st.bulk.compile.pass.cpp b/libcudacxx/test/libcudacxx/cuda/ptx/ptx.st.bulk.compile.pass.cpp index 951e1a9f513..56c9c9027ec 100644 --- a/libcudacxx/test/libcudacxx/cuda/ptx/ptx.st.bulk.compile.pass.cpp +++ b/libcudacxx/test/libcudacxx/cuda/ptx/ptx.st.bulk.compile.pass.cpp @@ -14,6 +14,8 @@ #include #include +#include "nvrtc_workaround.h" +// above header needs to be included before the generated test header #include "generated/st_bulk.h" int main(int, char**)