1e5c31af7Sopenharmony_ci#ifndef _VKTSUBGROUPSSCANHELPERS_HPP
2e5c31af7Sopenharmony_ci#define _VKTSUBGROUPSSCANHELPERS_HPP
3e5c31af7Sopenharmony_ci
4e5c31af7Sopenharmony_ci/*------------------------------------------------------------------------
5e5c31af7Sopenharmony_ci * Vulkan Conformance Tests
6e5c31af7Sopenharmony_ci * ------------------------
7e5c31af7Sopenharmony_ci *
8e5c31af7Sopenharmony_ci * Copyright (c) 2019 The Khronos Group Inc.
9e5c31af7Sopenharmony_ci * Copyright (c) 2019 Google Inc.
10e5c31af7Sopenharmony_ci * Copyright (c) 2017 Codeplay Software Ltd.
11e5c31af7Sopenharmony_ci *
12e5c31af7Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
13e5c31af7Sopenharmony_ci * you may not use this file except in compliance with the License.
14e5c31af7Sopenharmony_ci * You may obtain a copy of the License at
15e5c31af7Sopenharmony_ci *
16e5c31af7Sopenharmony_ci *      http://www.apache.org/licenses/LICENSE-2.0
17e5c31af7Sopenharmony_ci *
18e5c31af7Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
19e5c31af7Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
20e5c31af7Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21e5c31af7Sopenharmony_ci * See the License for the specific language governing permissions and
22e5c31af7Sopenharmony_ci * limitations under the License.
23e5c31af7Sopenharmony_ci *
24e5c31af7Sopenharmony_ci */ /*!
25e5c31af7Sopenharmony_ci * \file
26e5c31af7Sopenharmony_ci * \brief Subgroups Tests
27e5c31af7Sopenharmony_ci */ /*--------------------------------------------------------------------*/
28e5c31af7Sopenharmony_ci
29e5c31af7Sopenharmony_ci#include "vktSubgroupsTestsUtils.hpp"
30e5c31af7Sopenharmony_ci
31e5c31af7Sopenharmony_ci#include <string>
32e5c31af7Sopenharmony_ci
33e5c31af7Sopenharmony_cienum Operator
34e5c31af7Sopenharmony_ci{
35e5c31af7Sopenharmony_ci	OPERATOR_ADD,
36e5c31af7Sopenharmony_ci	OPERATOR_MUL,
37e5c31af7Sopenharmony_ci	OPERATOR_MIN,
38e5c31af7Sopenharmony_ci	OPERATOR_MAX,
39e5c31af7Sopenharmony_ci	OPERATOR_AND,
40e5c31af7Sopenharmony_ci	OPERATOR_OR,
41e5c31af7Sopenharmony_ci	OPERATOR_XOR,
42e5c31af7Sopenharmony_ci};
43e5c31af7Sopenharmony_ci
44e5c31af7Sopenharmony_cienum ScanType
45e5c31af7Sopenharmony_ci{
46e5c31af7Sopenharmony_ci	SCAN_REDUCE,
47e5c31af7Sopenharmony_ci	SCAN_INCLUSIVE,
48e5c31af7Sopenharmony_ci	SCAN_EXCLUSIVE
49e5c31af7Sopenharmony_ci};
50e5c31af7Sopenharmony_ci
51e5c31af7Sopenharmony_cistd::string getScanOpName (std::string prefix, std::string suffix, Operator op, ScanType scanType);
52e5c31af7Sopenharmony_cistd::string getOpOperation (Operator op, vk::VkFormat format, std::string lhs, std::string rhs);
53e5c31af7Sopenharmony_cistd::string getIdentity (Operator op, vk::VkFormat format);
54e5c31af7Sopenharmony_cistd::string getCompare (Operator op, vk::VkFormat format, std::string lhs, std::string rhs);
55e5c31af7Sopenharmony_ci
56e5c31af7Sopenharmony_ci#endif // _VKTSUBGROUPSSCANHELPERS_HPP
57