File tree Expand file tree Collapse file tree 1 file changed +44
-0
lines changed Expand file tree Collapse file tree 1 file changed +44
-0
lines changed Original file line number Diff line number Diff line change
1
+ // RUN: %{build} -DINCLUDE_BEFORE -o %t.out
2
+ // RUN: %{run} %t.out
3
+ // RUN: %{build} -o %t.out
4
+ // RUN: %{run} %t.out
5
+
6
+ // Test scenario when <complex> is included before SYCL headers.
7
+ #ifdef INCLUDE_BEFORE
8
+ #include < complex>
9
+ #endif
10
+
11
+ #include < sycl/sycl.hpp>
12
+
13
+ #ifndef INCLUDE_BEFORE
14
+ #include < complex>
15
+ #endif
16
+
17
+ using namespace sycl ;
18
+
19
+ int main () {
20
+ queue q;
21
+ auto test = []() {
22
+ static_assert (sycl::detail::is_complex<std::complex<float >>::value);
23
+ static_assert (sycl::detail::isComplex<std::complex<float >>::value);
24
+ #ifdef __SYCL_DEVICE_ONLY__
25
+ static_assert (
26
+ std::is_same_v<sycl::detail::GroupOpTag<std::complex<float >>::type,
27
+ sycl::detail::GroupOpC>);
28
+ #endif
29
+ static_assert (
30
+ std::is_same_v<
31
+ sycl::detail::select_cl_scalar_complex_or_T_t<std::complex<float >>,
32
+ __spv::complex_float>);
33
+ static_assert (
34
+ std::is_same_v<sycl::detail::select_cl_scalar_complex_or_T_t<float >,
35
+ float >);
36
+ };
37
+ test ();
38
+ q.single_task ([=] {
39
+ test ();
40
+ std::ignore = std::complex<float >{0 .0f , 1 .0f };
41
+ }).wait ();
42
+
43
+ return 0 ;
44
+ }
You can’t perform that action at this time.
0 commit comments