Skip to content

Commit 2428a37

Browse files
[SYCL][E2E] Add builtin tests for const vec and const swizzles (#13111)
This commit copies the vec math builtin tests to check that they also work for const vec and the constant swizzles produced from const vec. --------- Signed-off-by: Larsen, Steffen <[email protected]>
1 parent f8391a1 commit 2428a37

12 files changed

+1055
-939
lines changed
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// RUN: %{build} -o %t.out
2+
// RUN: %{run} %t.out
3+
// RUN: %if preview-breaking-changes-supported %{ %{build} -fpreview-breaking-changes -o %t2.out %}
4+
// RUN: %if preview-breaking-changes-supported %{ %{run} %t2.out %}
5+
6+
#include "vec_common.hpp"
7+
8+
// Alias is needed to const-qualify vec without template args.
9+
template <typename T, int NumElems>
10+
using ConstVec = const sycl::vec<T, NumElems>;
11+
12+
int main() {
13+
run_test<ConstVec>();
14+
return 0;
15+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// RUN: %{build} -o %t.out
2+
// RUN: %{run} %t.out
3+
// RUN: %if preview-breaking-changes-supported %{ %{build} -fpreview-breaking-changes -o %t2.out %}
4+
// RUN: %if preview-breaking-changes-supported %{ %{run} %t2.out %}
5+
6+
#include "vec_geometric.hpp"
7+
8+
// Alias is needed to const-qualify vec without template args.
9+
template <typename T, int NumElems>
10+
using ConstVec = const sycl::vec<T, NumElems>;
11+
12+
int main() {
13+
run_test<ConstVec>();
14+
return 0;
15+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
// DEFINE: %{mathflags} = %if cl_options %{/clang:-fno-fast-math%} %else %{-fno-fast-math%}
2+
3+
// RUN: %{build} %{mathflags} -o %t.out
4+
// RUN: %{run} %t.out
5+
// RUN: %if preview-breaking-changes-supported %{ %{build} -fpreview-breaking-changes %{mathflags} -o %t2.out %}
6+
// RUN: %if preview-breaking-changes-supported %{ %{run} %t2.out %}
7+
8+
#include "vec_math.hpp"
9+
10+
// Alias is needed to const-qualify vec without template args.
11+
template <typename T, int NumElems>
12+
using ConstVec = const sycl::vec<T, NumElems>;
13+
14+
int main() {
15+
run_test<ConstVec>();
16+
return 0;
17+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// RUN: %{build} -o %t.out
2+
// RUN: %{run} %t.out
3+
// RUN: %if preview-breaking-changes-supported %{ %{build} -fpreview-breaking-changes -o %t2.out %}
4+
// RUN: %if preview-breaking-changes-supported %{ %{run} %t2.out %}
5+
6+
#include "vec_relational.hpp"
7+
8+
// Alias is needed to const-qualify vec without template args.
9+
template <typename T, int NumElems>
10+
using ConstVec = const sycl::vec<T, NumElems>;
11+
12+
int main() {
13+
run_test<ConstVec>();
14+
return 0;
15+
}
Lines changed: 2 additions & 315 deletions
Original file line numberDiff line numberDiff line change
@@ -1,322 +1,9 @@
11
// RUN: %{build} -o %t.out
22
// RUN: %{run} %t.out
33

4-
#ifdef _WIN32
5-
#define _USE_MATH_DEFINES // To use math constants
6-
#endif
7-
#include <cmath>
8-
9-
#include <sycl/detail/core.hpp>
10-
11-
#include <sycl/builtins.hpp>
12-
13-
#define TEST(FUNC, VEC_ELEM_TYPE, DIM, EXPECTED, DELTA, ...) \
14-
{ \
15-
{ \
16-
VEC_ELEM_TYPE result[DIM]; \
17-
{ \
18-
sycl::buffer<VEC_ELEM_TYPE> b(result, sycl::range{DIM}); \
19-
deviceQueue.submit([&](sycl::handler &cgh) { \
20-
sycl::accessor res_access{b, cgh}; \
21-
cgh.single_task([=]() { \
22-
sycl::vec<VEC_ELEM_TYPE, DIM> res = FUNC(__VA_ARGS__); \
23-
for (int i = 0; i < DIM; i++) \
24-
res_access[i] = res[i]; \
25-
}); \
26-
}); \
27-
} \
28-
for (int i = 0; i < DIM; i++) \
29-
assert(abs(result[i] - EXPECTED[i]) <= DELTA); \
30-
} \
31-
}
32-
33-
#define EXPECTED(TYPE, ...) ((TYPE[]){__VA_ARGS__})
4+
#include "vec_common.hpp"
345

356
int main() {
36-
sycl::queue deviceQueue;
37-
sycl::device dev = deviceQueue.get_device();
38-
39-
sycl::vec<float, 2> va1{1.0f, 2.0f};
40-
sycl::vec<float, 2> va2{1.0f, 2.0f};
41-
sycl::vec<float, 2> va3{3.0f, 2.0f};
42-
sycl::vec<double, 2> va4{1.0, 2.0};
43-
sycl::vec<float, 3> va5{M_PI, M_PI, M_PI};
44-
sycl::vec<double, 3> va6{M_PI, M_PI, M_PI};
45-
sycl::vec<sycl::half, 3> va7{M_PI, M_PI, M_PI};
46-
sycl::vec<float, 2> va8{0.3f, 0.6f};
47-
sycl::vec<double, 2> va9{5.0, 8.0};
48-
sycl::vec<float, 3> va10{180, 180, 180};
49-
sycl::vec<double, 3> va11{180, 180, 180};
50-
sycl::vec<sycl::half, 3> va12{180, 180, 180};
51-
sycl::vec<sycl::half, 3> va13{181, 179, 181};
52-
sycl::vec<float, 2> va14{+0.0f, -0.6f};
53-
sycl::vec<double, 2> va15{-0.0, 0.6f};
54-
sycl::vec<float, 3> va16{180, 360, 540};
55-
sycl::vec<double, 3> va17{180, 360, 540};
56-
sycl::vec<float, 3> va18{0.3f, 0.6f, 0.9f};
57-
58-
// sycl::clamp
59-
TEST(sycl::clamp, float, 2, EXPECTED(float, 1.0f, 2.0f), 0, va1, va2, va3);
60-
TEST(sycl::clamp, float, 2, EXPECTED(float, 1.0f, 2.0f), 0, va1, 1.0f, 3.0f);
61-
if (dev.has(sycl::aspect::fp64)) {
62-
TEST(sycl::clamp, double, 2, EXPECTED(double, 1.0, 2.0), 0, va4, 1.0, 3.0);
63-
}
64-
// sycl::degrees
65-
TEST(sycl::degrees, float, 3, EXPECTED(float, 180, 180, 180), 0, va5);
66-
if (dev.has(sycl::aspect::fp64)) {
67-
TEST(sycl::degrees, double, 3, EXPECTED(double, 180, 180, 180), 0, va6);
68-
}
69-
if (dev.has(sycl::aspect::fp16)) {
70-
TEST(sycl::degrees, sycl::half, 3, EXPECTED(sycl::half, 180, 180, 180), 0.2,
71-
va7);
72-
}
73-
// sycl::max
74-
TEST(sycl::max, float, 2, EXPECTED(float, 3.0f, 2.0f), 0, va1, va3);
75-
TEST(sycl::max, float, 2, EXPECTED(float, 1.5f, 2.0f), 0, va1, 1.5f);
76-
if (dev.has(sycl::aspect::fp64)) {
77-
TEST(sycl::max, double, 2, EXPECTED(double, 1.5, 2.0), 0, va4, 1.5);
78-
}
79-
// sycl::min
80-
TEST(sycl::min, float, 2, EXPECTED(float, 1.0f, 2.0f), 0, va1, va3);
81-
TEST(sycl::min, float, 2, EXPECTED(float, 1.0f, 1.5f), 0, va1, 1.5f);
82-
if (dev.has(sycl::aspect::fp64)) {
83-
TEST(sycl::min, double, 2, EXPECTED(double, 1.0, 1.5), 0, va4, 1.5);
84-
}
85-
// sycl::mix
86-
TEST(sycl::mix, float, 2, EXPECTED(float, 1.6f, 2.0f), 0, va1, va3, va8);
87-
TEST(sycl::mix, float, 2, EXPECTED(float, 1.4f, 2.0f), 0, va1, va3, 0.2);
88-
if (dev.has(sycl::aspect::fp64)) {
89-
TEST(sycl::mix, double, 2, EXPECTED(double, 3.0, 5.0), 0, va4, va9, 0.5);
90-
}
91-
// sycl::radians
92-
TEST(sycl::radians, float, 3, EXPECTED(float, M_PI, M_PI, M_PI), 0, va10);
93-
if (dev.has(sycl::aspect::fp64)) {
94-
TEST(sycl::radians, double, 3, EXPECTED(double, M_PI, M_PI, M_PI), 0, va11);
95-
}
96-
if (dev.has(sycl::aspect::fp16)) {
97-
TEST(sycl::radians, sycl::half, 3, EXPECTED(sycl::half, M_PI, M_PI, M_PI),
98-
0.002, va12);
99-
}
100-
// sycl::step
101-
TEST(sycl::step, float, 2, EXPECTED(float, 1.0f, 1.0f), 0, va1, va3);
102-
if (dev.has(sycl::aspect::fp64)) {
103-
TEST(sycl::step, double, 2, EXPECTED(double, 1.0, 1.0), 0, va4, va9);
104-
}
105-
if (dev.has(sycl::aspect::fp16)) {
106-
TEST(sycl::step, sycl::half, 3, EXPECTED(sycl::half, 1.0, 0.0, 1.0), 0,
107-
va12, va13);
108-
}
109-
TEST(sycl::step, float, 2, EXPECTED(float, 1.0f, 0.0f), 0, 2.5f, va3);
110-
if (dev.has(sycl::aspect::fp64)) {
111-
TEST(sycl::step, double, 2, EXPECTED(double, 0.0f, 1.0f), 0, 6.0f, va9);
112-
}
113-
// sycl::smoothstep
114-
TEST(sycl::smoothstep, float, 2, EXPECTED(float, 1.0f, 1.0f), 0, va8, va1,
115-
va2);
116-
if (dev.has(sycl::aspect::fp64)) {
117-
TEST(sycl::smoothstep, double, 2, EXPECTED(double, 1.0, 1.0f), 0.00000001,
118-
va4, va9, va9);
119-
}
120-
if (dev.has(sycl::aspect::fp16)) {
121-
TEST(sycl::smoothstep, sycl::half, 3, EXPECTED(sycl::half, 1.0, 1.0, 1.0),
122-
0, va7, va12, va13);
123-
}
124-
TEST(sycl::smoothstep, float, 2, EXPECTED(float, 0.0553936f, 0.0f), 0.0000001,
125-
2.5f, 6.0f, va3);
126-
if (dev.has(sycl::aspect::fp64)) {
127-
TEST(sycl::smoothstep, double, 2, EXPECTED(double, 0.0f, 1.0f), 0, 6.0f,
128-
8.0f, va9);
129-
}
130-
// sign
131-
TEST(sycl::sign, float, 2, EXPECTED(float, +0.0f, -1.0f), 0, va14);
132-
if (dev.has(sycl::aspect::fp64)) {
133-
TEST(sycl::sign, double, 2, EXPECTED(double, -0.0, 1.0), 0, va15);
134-
}
135-
if (dev.has(sycl::aspect::fp16)) {
136-
TEST(sycl::sign, sycl::half, 3, EXPECTED(sycl::half, 1.0, 1.0, 1.0), 0,
137-
va12);
138-
}
139-
140-
// sycl::clamp swizzled
141-
TEST(sycl::clamp, float, 2, EXPECTED(float, 3.0f, 2.0f), 0,
142-
va16.swizzle<1, 0>(), va2, va3);
143-
TEST(sycl::clamp, float, 2, EXPECTED(float, 1.0f, 2.0f), 0, va1, va2,
144-
va16.swizzle<1, 0>());
145-
TEST(sycl::clamp, float, 2, EXPECTED(float, 360.0f, 180.0f), 0,
146-
va16.swizzle<1, 0>(), va2, va16.swizzle<1, 0>());
147-
TEST(sycl::clamp, float, 2, EXPECTED(float, 360.0f, 180.0f), 0, va1,
148-
va16.swizzle<1, 0>(), va16.swizzle<1, 0>());
149-
TEST(sycl::clamp, float, 2, EXPECTED(float, 360.0f, 180.0f), 0,
150-
va16.swizzle<1, 0>(), va16.swizzle<1, 0>(), va16.swizzle<1, 0>());
151-
TEST(sycl::clamp, float, 2, EXPECTED(float, 3.0f, 3.0f), 0,
152-
va16.swizzle<1, 0>(), 1.0f, 3.0f);
153-
if (dev.has(sycl::aspect::fp64)) {
154-
TEST(sycl::clamp, double, 2, EXPECTED(double, 3.0, 3.0), 0,
155-
va11.swizzle<1, 0>(), 1.0, 3.0);
156-
}
157-
// sycl::degrees swizzled
158-
TEST(sycl::degrees, float, 2, EXPECTED(float, 180, 180), 0,
159-
va5.swizzle<1, 0>());
160-
if (dev.has(sycl::aspect::fp64)) {
161-
TEST(sycl::degrees, double, 2, EXPECTED(double, 180, 180), 0,
162-
va6.swizzle<1, 0>());
163-
}
164-
if (dev.has(sycl::aspect::fp16)) {
165-
TEST(sycl::degrees, sycl::half, 2, EXPECTED(sycl::half, 180, 180), 0.2,
166-
va7.swizzle<1, 0>());
167-
}
168-
// sycl::max swizzled
169-
TEST(sycl::max, float, 2, EXPECTED(float, 360.0f, 180.0f), 0,
170-
va16.swizzle<1, 0>(), va3);
171-
TEST(sycl::max, float, 2, EXPECTED(float, 360.0f, 180.0f), 0, va1,
172-
va16.swizzle<1, 0>());
173-
TEST(sycl::max, float, 2, EXPECTED(float, 360.0f, 190.0f), 0,
174-
va16.swizzle<1, 0>(), 190.0f);
175-
if (dev.has(sycl::aspect::fp64)) {
176-
TEST(sycl::max, double, 2, EXPECTED(double, 360.0, 190.0), 0,
177-
va17.swizzle<1, 0>(), 190.0);
178-
}
179-
// sycl::min swizzled
180-
TEST(sycl::min, float, 2, EXPECTED(float, 3.0f, 2.0f), 0,
181-
va16.swizzle<1, 0>(), va3);
182-
TEST(sycl::min, float, 2, EXPECTED(float, 1.0f, 2.0f), 0, va1,
183-
va16.swizzle<1, 0>());
184-
TEST(sycl::min, float, 2, EXPECTED(float, 190.0f, 180.0f), 0,
185-
va16.swizzle<1, 0>(), 190.0f);
186-
if (dev.has(sycl::aspect::fp64)) {
187-
TEST(sycl::min, double, 2, EXPECTED(double, 190.0f, 180.0f), 0,
188-
va17.swizzle<1, 0>(), 190.0);
189-
}
190-
// sycl::mix swizzled
191-
TEST(sycl::mix, float, 2, EXPECTED(float, 252.9f, 73.2f), 0,
192-
va16.swizzle<1, 0>(), va3, va8);
193-
TEST(sycl::mix, float, 2, EXPECTED(float, 252.9f, 73.2f), 0,
194-
va16.swizzle<1, 0>(), va3, va18.swizzle<0, 1>());
195-
TEST(sycl::mix, float, 2, EXPECTED(float, 108.7f, 108.8f), 0.00001, va1,
196-
va16.swizzle<1, 0>(), va8);
197-
TEST(sycl::mix, float, 2, EXPECTED(float, 108.7f, 108.8f), 0.00001, va1,
198-
va16.swizzle<1, 0>(), va18.swizzle<0, 1>());
199-
TEST(sycl::mix, float, 2, EXPECTED(float, 360.0f, 180.0f), 0,
200-
va16.swizzle<1, 0>(), va16.swizzle<1, 0>(), va8);
201-
TEST(sycl::mix, float, 2, EXPECTED(float, 360.0f, 180.0f), 0,
202-
va16.swizzle<1, 0>(), va16.swizzle<1, 0>(), va18.swizzle<0, 1>());
203-
TEST(sycl::mix, float, 2, EXPECTED(float, 1.6f, 2.0f), 0, va1, va3,
204-
va18.swizzle<0, 1>());
205-
if (dev.has(sycl::aspect::fp64)) {
206-
TEST(sycl::mix, double, 2, EXPECTED(double, 182.5, 94.0), 0,
207-
va17.swizzle<1, 0>(), va9, 0.5);
208-
TEST(sycl::mix, double, 2, EXPECTED(double, 180.5, 91.0), 0, va4,
209-
va17.swizzle<1, 0>(), 0.5);
210-
TEST(sycl::mix, double, 2, EXPECTED(double, 360.0, 180.0), 0,
211-
va17.swizzle<1, 0>(), va17.swizzle<1, 0>(), 0.5);
212-
}
213-
// sycl::radians swizzled
214-
TEST(sycl::radians, float, 2, EXPECTED(float, M_PI, M_PI), 0,
215-
va10.swizzle<1, 0>());
216-
if (dev.has(sycl::aspect::fp64)) {
217-
TEST(sycl::radians, double, 2, EXPECTED(double, M_PI, M_PI), 0,
218-
va11.swizzle<1, 0>());
219-
}
220-
if (dev.has(sycl::aspect::fp16)) {
221-
TEST(sycl::radians, sycl::half, 2, EXPECTED(sycl::half, M_PI, M_PI), 0.002,
222-
va12.swizzle<1, 0>());
223-
}
224-
// sycl::step swizzled
225-
TEST(sycl::step, float, 2, EXPECTED(float, 0.0f, 0.0f), 0,
226-
va16.swizzle<1, 0>(), va3);
227-
TEST(sycl::step, float, 2, EXPECTED(float, 1.0f, 1.0f), 0, va1,
228-
va16.swizzle<1, 0>());
229-
TEST(sycl::step, float, 2, EXPECTED(float, 1.0f, 1.0f), 0,
230-
va16.swizzle<1, 0>(), va16.swizzle<1, 0>());
231-
if (dev.has(sycl::aspect::fp64)) {
232-
TEST(sycl::step, double, 2, EXPECTED(double, 0.0, 0.0), 0,
233-
va17.swizzle<1, 0>(), va9);
234-
TEST(sycl::step, double, 2, EXPECTED(double, 1.0, 1.0), 0, va4,
235-
va17.swizzle<1, 0>());
236-
TEST(sycl::step, double, 2, EXPECTED(double, 1.0, 1.0), 0,
237-
va17.swizzle<1, 0>(), va17.swizzle<1, 0>());
238-
}
239-
if (dev.has(sycl::aspect::fp16)) {
240-
TEST(sycl::step, sycl::half, 3, EXPECTED(sycl::half, 1.0, 0.0, 1.0), 0,
241-
va12.swizzle<0, 1, 2>(), va13);
242-
TEST(sycl::step, sycl::half, 3, EXPECTED(sycl::half, 1.0, 0.0, 1.0), 0,
243-
va12, va13.swizzle<0, 1, 2>());
244-
TEST(sycl::step, sycl::half, 3, EXPECTED(sycl::half, 1.0, 0.0, 1.0), 0,
245-
va12.swizzle<0, 1, 2>(), va13.swizzle<0, 1, 2>());
246-
}
247-
TEST(sycl::step, float, 2, EXPECTED(float, 0.0f, 1.0f), 0, 2.5f,
248-
va3.swizzle<1, 0>());
249-
if (dev.has(sycl::aspect::fp64)) {
250-
TEST(sycl::step, double, 2, EXPECTED(double, 1.0f, 0.0f), 0, 6.0f,
251-
va9.swizzle<1, 0>());
252-
}
253-
// sycl::smoothstep swizzled
254-
TEST(sycl::smoothstep, float, 2, EXPECTED(float, 1.0f, 1.0f), 0,
255-
va8.swizzle<0, 1>(), va1, va2);
256-
TEST(sycl::smoothstep, float, 2, EXPECTED(float, 1.0f, 1.0f), 0, va8,
257-
va1.swizzle<0, 1>(), va2);
258-
TEST(sycl::smoothstep, float, 2, EXPECTED(float, 1.0f, 1.0f), 0, va8, va1,
259-
va2.swizzle<0, 1>());
260-
TEST(sycl::smoothstep, float, 2, EXPECTED(float, 1.0f, 1.0f), 0,
261-
va8.swizzle<0, 1>(), va1.swizzle<0, 1>(), va2);
262-
TEST(sycl::smoothstep, float, 2, EXPECTED(float, 1.0f, 1.0f), 0,
263-
va8.swizzle<0, 1>(), va1, va2.swizzle<0, 1>());
264-
TEST(sycl::smoothstep, float, 2, EXPECTED(float, 1.0f, 1.0f), 0, va8,
265-
va1.swizzle<0, 1>(), va2.swizzle<0, 1>());
266-
TEST(sycl::smoothstep, float, 2, EXPECTED(float, 1.0f, 1.0f), 0,
267-
va8.swizzle<0, 1>(), va1.swizzle<0, 1>(), va2.swizzle<0, 1>());
268-
if (dev.has(sycl::aspect::fp64)) {
269-
TEST(sycl::smoothstep, double, 2, EXPECTED(double, 1.0, 1.0f), 0.00000001,
270-
va4.swizzle<0, 1>(), va9, va9);
271-
TEST(sycl::smoothstep, double, 2, EXPECTED(double, 1.0, 1.0f), 0.00000001,
272-
va4, va9.swizzle<0, 1>(), va9);
273-
TEST(sycl::smoothstep, double, 2, EXPECTED(double, 1.0, 1.0f), 0.00000001,
274-
va4, va9, va9.swizzle<0, 1>());
275-
TEST(sycl::smoothstep, double, 2, EXPECTED(double, 1.0, 1.0f), 0.00000001,
276-
va4.swizzle<0, 1>(), va9.swizzle<0, 1>(), va9);
277-
TEST(sycl::smoothstep, double, 2, EXPECTED(double, 1.0, 1.0f), 0.00000001,
278-
va4.swizzle<0, 1>(), va9, va9.swizzle<0, 1>());
279-
TEST(sycl::smoothstep, double, 2, EXPECTED(double, 1.0, 1.0f), 0.00000001,
280-
va4, va9.swizzle<0, 1>(), va9.swizzle<0, 1>());
281-
TEST(sycl::smoothstep, double, 2, EXPECTED(double, 1.0, 1.0f), 0.00000001,
282-
va4.swizzle<0, 1>(), va9.swizzle<0, 1>(), va9.swizzle<0, 1>());
283-
}
284-
if (dev.has(sycl::aspect::fp16)) {
285-
TEST(sycl::smoothstep, sycl::half, 3, EXPECTED(sycl::half, 1.0, 1.0, 1.0),
286-
0, va7.swizzle<0, 1, 2>(), va12, va13);
287-
TEST(sycl::smoothstep, sycl::half, 3, EXPECTED(sycl::half, 1.0, 1.0, 1.0),
288-
0, va7, va12.swizzle<0, 1, 2>(), va13);
289-
TEST(sycl::smoothstep, sycl::half, 3, EXPECTED(sycl::half, 1.0, 1.0, 1.0),
290-
0, va7, va12, va13.swizzle<0, 1, 2>());
291-
TEST(sycl::smoothstep, sycl::half, 3, EXPECTED(sycl::half, 1.0, 1.0, 1.0),
292-
0, va7.swizzle<0, 1, 2>(), va12.swizzle<0, 1, 2>(), va13);
293-
TEST(sycl::smoothstep, sycl::half, 3, EXPECTED(sycl::half, 1.0, 1.0, 1.0),
294-
0, va7.swizzle<0, 1, 2>(), va12, va13.swizzle<0, 1, 2>());
295-
TEST(sycl::smoothstep, sycl::half, 3, EXPECTED(sycl::half, 1.0, 1.0, 1.0),
296-
0, va7, va12.swizzle<0, 1, 2>(), va13.swizzle<0, 1, 2>());
297-
TEST(sycl::smoothstep, sycl::half, 3, EXPECTED(sycl::half, 1.0, 1.0, 1.0),
298-
0, va7.swizzle<0, 1, 2>(), va12.swizzle<0, 1, 2>(),
299-
va13.swizzle<0, 1, 2>());
300-
}
301-
TEST(sycl::smoothstep, float, 2, EXPECTED(float, 0.0f, 0.0553936f), 0.0000001,
302-
2.5f, 6.0f, va3.swizzle<1, 0>());
303-
if (dev.has(sycl::aspect::fp64)) {
304-
TEST(sycl::smoothstep, double, 2, EXPECTED(double, 0.0f, 1.0f), 0, 6.0f,
305-
8.0f, va9);
306-
TEST(sycl::smoothstep, double, 2, EXPECTED(double, 1.0f, 0.0f), 0, 6.0f,
307-
8.0f, va9.swizzle<1, 0>());
308-
}
309-
// sign swizzled
310-
TEST(sycl::sign, float, 2, EXPECTED(float, -1.0f, +0.0f), 0,
311-
va14.swizzle<1, 0>());
312-
if (dev.has(sycl::aspect::fp64)) {
313-
TEST(sycl::sign, double, 2, EXPECTED(double, 1.0, -0.0), 0,
314-
va15.swizzle<1, 0>());
315-
}
316-
if (dev.has(sycl::aspect::fp16)) {
317-
TEST(sycl::sign, sycl::half, 3, EXPECTED(sycl::half, 1.0, 1.0, 1.0), 0,
318-
va12.swizzle<2, 1, 0>());
319-
}
320-
7+
run_test<sycl::vec>();
3218
return 0;
3229
}

0 commit comments

Comments
 (0)