@@ -25,37 +25,15 @@ namespace oneapi {
2525namespace experimental {
2626namespace cuda {
2727
28- namespace detail {
29- using ldg_vector_types = sycl::detail::type_list<
30- sycl::vec<char , 2 >, sycl::vec<char , 3 >, sycl::vec<char , 4 >,
31- sycl::vec<signed char , 2 >, sycl::vec<signed char , 3 >,
32- sycl::vec<signed char , 4 >, sycl::vec<short , 2 >, sycl::vec<short , 3 >,
33- sycl::vec<short , 4 >, sycl::vec<int , 2 >, sycl::vec<int , 3 >,
34- sycl::vec<int , 4 >, sycl::vec<long , 2 >, sycl::vec<long , 3 >,
35- sycl::vec<long , 4 >, sycl::vec<long long , 2 >, sycl::vec<long long , 3 >,
36- sycl::vec<long long , 4 >, sycl::vec<unsigned char , 2 >,
37- sycl::vec<unsigned char , 3 >, sycl::vec<unsigned char , 4 >,
38- sycl::vec<unsigned short , 2 >, sycl::vec<unsigned short , 3 >,
39- sycl::vec<unsigned short , 4 >, sycl::vec<unsigned int , 2 >,
40- sycl::vec<unsigned int , 3 >, sycl::vec<unsigned int , 4 >,
41- sycl::vec<unsigned long , 2 >, sycl::vec<unsigned long , 3 >,
42- sycl::vec<unsigned long , 4 >, sycl::vec<unsigned long long , 2 >,
43- sycl::vec<unsigned long long , 3 >, sycl::vec<unsigned long long , 4 >,
44- sycl::vec<half, 2 >, sycl::vec<half, 3 >, sycl::vec<half, 4 >,
45- sycl::vec<float , 2 >, sycl::vec<float , 3 >, sycl::vec<float , 4 >,
46- sycl::vec<double , 2 >, sycl::vec<double , 3 >, sycl::vec<double , 4 >>;
47-
48- using ldg_types =
49- sycl::detail::tl_append<ldg_vector_types,
50- sycl::detail::gtl::scalar_floating_list,
51- sycl::detail::gtl::scalar_signed_integer_list,
52- sycl::detail::gtl::scalar_unsigned_integer_list>;
53- } // namespace detail
54-
5528template <typename T>
5629inline __SYCL_ALWAYS_INLINE std::enable_if_t <
57- sycl::detail::is_contained<
58- T, sycl::ext::oneapi::experimental::cuda::detail::ldg_types>::value,
30+ detail::check_type_in_v<detail::element_type_t <T>, char , signed char , short ,
31+ int , long , long long , unsigned char , unsigned short ,
32+ unsigned int , unsigned long , unsigned long long ,
33+ half, float , double > &&
34+ (std::is_same_v<detail::element_type_t <T>, T> ||
35+ (detail::is_vec_v<T> && detail::num_elements_v<T> >= 2 &&
36+ detail::num_elements_v<T> <= 4 )),
5937 T>
6038ldg (const T *ptr) {
6139#if defined(__SYCL_DEVICE_ONLY__)
0 commit comments