-
Notifications
You must be signed in to change notification settings - Fork 87
/
Copy pathvector_swizzles.template
89 lines (74 loc) · 2.27 KB
/
vector_swizzles.template
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
/*************************************************************************
//
// SYCL Conformance Test Suite
//
//
// Copyright (c) 2017-2022 Codeplay Software LTD. All Rights Reserved.
// Copyright (c) 2022 The Khronos Group Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
**************************************************************************/
$IFDEF
#define SYCL_SIMPLE_SWIZZLES
#include "../common/common.h"
#include "../common/common_vec.h"
#define TEST_NAME vector_swizzles_$TYPE_NAME
namespace vector_swizzles_$TYPE_NAME__ {
using namespace sycl_cts;
/** Test each combination of vector swizzles can be generated
* and used like a normal vector
*/
class TEST_NAME : public util::test_base {
enum per_element_swizzle_test_case : int {
in_order = 0,
reverse_order,
in_order_reversed_pair,
reverse_order_reversed_pair,
total_per_element_swizzle_test_cases
};
public:
/** return information about this test
*/
void get_info(test_base::info &out) const override {
set_test_info(out, TOSTRING(TEST_NAME), TEST_FILE);
}
/** execute the test
*/
void run(util::logger &log) override {
{
auto testQueue = util::get_cts_object::queue();
{
auto testDevice = testQueue.get_device();
/** Test vector swizzles
*/
// 1 dimensional swizzles
$1D_SWIZZLES
// 2 dimensional swizzles
$2D_SWIZZLES
// 3 dimensional swizzles
$3D_SWIZZLES
// 4 dimensional swizzles
$4D_SWIZZLES
// 8 dimensional swizzles
$8D_SWIZZLES
// 16 dimensional swizzles
$16D_SWIZZLES
}
testQueue.wait_and_throw();
}
}
};
inline util::test_proxy<TEST_NAME> proxy;
} /* namespace vector_swizzles_$TYPE_NAME__ */
$ENDIF