|
47 | 47 | #define EXPECTED(TYPE, ...) ((TYPE[]){__VA_ARGS__})
|
48 | 48 |
|
49 | 49 | int main() {
|
50 |
| - sycl::queue deviceQueue; |
| 50 | + sycl::device Dev; |
| 51 | + sycl::queue deviceQueue(Dev); |
51 | 52 |
|
52 |
| - sycl::marray<float, 2> ma1{1.0, 2.0}; |
53 |
| - sycl::marray<float, 2> ma2{1.0, 2.0}; |
54 |
| - sycl::marray<float, 2> ma3{2.0, 1.0}; |
55 |
| - sycl::marray<float, 2> ma4{2.0, 2.0}; |
56 |
| - sycl::marray<float, 3> ma5{2.0, 2.0, 1.0}; |
57 |
| - sycl::marray<float, 3> ma6{1.0, 5.0, 8.0}; |
| 53 | + sycl::marray<sycl::half, 2> ma1_f16{1.f, 2.f}; |
| 54 | + sycl::marray<sycl::half, 2> ma2_f16{1.f, 2.f}; |
| 55 | + sycl::marray<sycl::half, 2> ma3_f16{2.f, 1.f}; |
| 56 | + sycl::marray<sycl::half, 2> ma4_f16{2.f, 2.f}; |
| 57 | + sycl::marray<sycl::half, 3> ma5_f16{2.f, 2.f, 1.f}; |
| 58 | + sycl::marray<sycl::half, 3> ma6_f16{1.f, 5.f, 8.f}; |
| 59 | + sycl::marray<sycl::half, 2> ma8_f16{1.f, 1.f}; |
| 60 | + sycl::marray<sycl::half, 2> ma9_f16{0.5f, 0.5f}; |
| 61 | + sycl::marray<sycl::half, 2> ma10_f16{2.f, 2.f}; |
| 62 | + |
| 63 | + sycl::marray<float, 2> ma1{1.f, 2.f}; |
| 64 | + sycl::marray<float, 2> ma2{1.f, 2.f}; |
| 65 | + sycl::marray<float, 2> ma3{2.f, 1.f}; |
| 66 | + sycl::marray<float, 2> ma4{2.f, 2.f}; |
| 67 | + sycl::marray<float, 3> ma5{2.f, 2.f, 1.f}; |
| 68 | + sycl::marray<float, 3> ma6{1.f, 5.f, 8.f}; |
58 | 69 | sycl::marray<int, 3> ma7{50, 2, 31};
|
59 |
| - sycl::marray<float, 2> ma8{1.0, 1.0}; |
60 |
| - sycl::marray<float, 2> ma9{0.5, 0.5}; |
61 |
| - sycl::marray<float, 2> ma10{2.0, 2.0}; |
| 70 | + sycl::marray<float, 2> ma8{1.f, 1.f}; |
| 71 | + sycl::marray<float, 2> ma9{0.5f, 0.5f}; |
| 72 | + sycl::marray<float, 2> ma10{2.f, 2.f}; |
62 | 73 | sycl::marray<bool, 3> c(1, 0, 1);
|
63 | 74 |
|
| 75 | + if (Dev.has(sycl::aspect::fp16)) { |
| 76 | + TEST(sycl::isequal, bool, EXPECTED(bool, 1, 1), 2, ma1_f16, ma2_f16); |
| 77 | + TEST(sycl::isnotequal, bool, EXPECTED(bool, 0, 0), 2, ma1_f16, ma2_f16); |
| 78 | + TEST(sycl::isgreater, bool, EXPECTED(bool, 0, 1), 2, ma1_f16, ma3_f16); |
| 79 | + TEST(sycl::isgreaterequal, bool, EXPECTED(bool, 0, 1), 2, ma1_f16, ma4_f16); |
| 80 | + TEST(sycl::isless, bool, EXPECTED(bool, 0, 1), 2, ma3_f16, ma1_f16); |
| 81 | + TEST(sycl::islessequal, bool, EXPECTED(bool, 0, 1), 2, ma4_f16, ma1_f16); |
| 82 | + TEST(sycl::islessgreater, bool, EXPECTED(bool, 0, 0), 2, ma1_f16, ma2_f16); |
| 83 | + TEST(sycl::isfinite, bool, EXPECTED(bool, 1, 1), 2, ma1_f16); |
| 84 | + TEST(sycl::isinf, bool, EXPECTED(bool, 0, 0), 2, ma1_f16); |
| 85 | + TEST(sycl::isnan, bool, EXPECTED(bool, 0, 0), 2, ma1_f16); |
| 86 | + TEST(sycl::isnormal, bool, EXPECTED(bool, 1, 1), 2, ma1_f16); |
| 87 | + TEST(sycl::isordered, bool, EXPECTED(bool, 1, 1), 2, ma1_f16, ma2_f16); |
| 88 | + TEST(sycl::isunordered, bool, EXPECTED(bool, 0, 0), 2, ma1_f16, ma2_f16); |
| 89 | + TEST(sycl::signbit, bool, EXPECTED(bool, 0, 0), 2, ma1_f16); |
| 90 | + TEST(sycl::bitselect, sycl::half, EXPECTED(float, 1.0, 1.0), 2, ma8_f16, |
| 91 | + ma9_f16, ma10_f16); |
| 92 | + TEST(sycl::select, sycl::half, EXPECTED(float, 1.0, 2.0, 8.0), 3, ma5_f16, |
| 93 | + ma6_f16, c); |
| 94 | + } |
| 95 | + |
64 | 96 | TEST(sycl::isequal, bool, EXPECTED(bool, 1, 1), 2, ma1, ma2);
|
65 | 97 | TEST(sycl::isnotequal, bool, EXPECTED(bool, 0, 0), 2, ma1, ma2);
|
66 | 98 | TEST(sycl::isgreater, bool, EXPECTED(bool, 0, 1), 2, ma1, ma3);
|
|
0 commit comments