blob: 3a18988c70ef6381ea0106df10cd44f82ffd9c57 [file] [log] [blame]
//
// Copyright (c) 2017 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.
//
#include "harness/compat.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream>
#include <memory>
#include <sstream>
#include <iterator>
#include "harness/errorHelpers.h"
#include "harness/kernelHelpers.h"
#include "harness/typeWrappers.h"
#include "harness/os_helpers.h"
#include "exceptions.h"
#include "run_build_test.h"
#include "run_services.h"
#include <list>
#include <algorithm>
#include "miniz/miniz.h"
#if defined(_WIN32)
#include <windows.h>
#include <direct.h>
#else // !_WIN32
#include <dirent.h>
#include <sys/stat.h>
#include <sys/types.h>
#endif
static int no_unzip = 0;
class custom_cout : public std::streambuf
{
private:
std::stringstream ss;
std::streamsize xsputn (const char* s, std::streamsize n)
{
ss.write(s, n);
return n;
}
int overflow(int c)
{
if(c > 0 && c < 256) ss.put(c);
return c;
}
int sync()
{
log_info("%s", ss.str().c_str());
ss.str("");
return 0;
}
};
class custom_cerr : public std::streambuf
{
private:
std::stringstream ss;
std::streamsize xsputn (const char* s, std::streamsize n)
{
ss.write(s, n);
return n;
}
int overflow(int c)
{
if(c > 0 && c < 256) ss.put(c);
return c;
}
int sync()
{
log_error("%s", ss.str().c_str());
ss.str("");
return 0;
}
};
class override_buff
{
std::ostream* stream;
std::streambuf* buff;
public:
override_buff(std::ostream& s, std::streambuf& b)
{
stream = &s;
buff = stream->rdbuf();
stream->rdbuf(&b);
}
~override_buff()
{
stream->rdbuf(buff);
}
};
typedef bool (*testfn)(cl_device_id device, cl_uint size_t_width, const char *folder);
template <typename T>
void dealloc(T *p)
{
if (p) delete p;
}
static bool is_dir_exits(const char* path)
{
assert(path && "NULL directory");
#if defined(_WIN32)
DWORD ftyp = GetFileAttributesA(path);
if (ftyp != INVALID_FILE_ATTRIBUTES && (ftyp & FILE_ATTRIBUTE_DIRECTORY))
return true;
#else // Linux assumed here.
if (DIR *pDir = opendir(path))
{
closedir(pDir);
return true;
}
#endif
return false;
}
static void get_spir_version(cl_device_id device,
std::vector<Version> &versions)
{
char version[64] = {0};
cl_int err;
size_t size = 0;
if ((err = clGetDeviceInfo(device, CL_DEVICE_SPIR_VERSIONS, sizeof(version),
(void *)version, &size)))
{
log_error( "Error: failed to obtain SPIR version at %s:%d (err = %d)\n",
__FILE__, __LINE__, err );
return;
}
assert(size && "Empty version string");
std::list<std::string> versionVector;
std::stringstream versionStream(version);
std::copy(std::istream_iterator<std::string>(versionStream),
std::istream_iterator<std::string>(),
std::back_inserter(versionVector));
for (auto &v : versionVector)
{
auto major = v[v.find('.') - 1];
auto minor = v[v.find('.') + 1];
versions.push_back(Version{ major - '0', minor - '0' });
}
}
struct CounterEventHandler: EventHandler{
unsigned int& Counter;
unsigned int TN;
std::string LastTest;
//N - counter of successful tests.
//T - total number of tests in the suite
CounterEventHandler(unsigned int& N, unsigned int T): Counter(N), TN(T){}
void operator ()(const std::string& testName, const std::string& kernelName) {
if (testName != LastTest){
++Counter;
LastTest = testName;
}
}
};
class AccumulatorEventHandler: public EventHandler{
std::list<std::string>& m_list;
const std::string m_name;
public:
AccumulatorEventHandler(std::list<std::string>& L, const std::string N):
m_list(L), m_name(N){}
void operator ()(const std::string& T, const std::string& K){
std::cerr << "\nTest " << T << "\t Kernel " << K << " failed" << std::endl;
m_list.push_back(m_name + "\t" + T + "\t" + K);
}
};
static void printError(const std::string& S){
std::cerr << S << std::endl;
}
static bool extractKernelAttribute(std::string& kernel_attributes,
const std::string& attribute, std::vector<std::string>& attribute_vector) {
size_t start = kernel_attributes.find(attribute + "(");
if (start == 0) {
size_t end = kernel_attributes.find(")", start);
if (end != std::string::npos) {
size_t length = end-start+1;
attribute_vector.push_back(kernel_attributes.substr(start, length));
kernel_attributes.erase(start, length);
return true;
}
}
return false;
}
// Extracts suite with the given name, and saves it to disk.
static void extract_suite(const char *suiteName)
{
mz_zip_archive zip_archive;
// Composing the name of the archive.
char* dir = get_exe_dir();
std::string archiveName(dir);
archiveName.append(dir_sep());
archiveName.append(suiteName);
archiveName.append(".zip");
free(dir);
#if defined(_WIN32)
_mkdir(suiteName);
#else
mkdir(suiteName, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
#endif
memset(&zip_archive, 0, sizeof(zip_archive));
if (!mz_zip_reader_init_file(&zip_archive, archiveName.c_str(), 0))
throw Exceptions::ArchiveError(MZ_DATA_ERROR);
// Get and print information about each file in the archive.
for (size_t i = 0; i < mz_zip_reader_get_num_files(&zip_archive); i++)
{
mz_zip_archive_file_stat fileStat;
size_t fileSize = 0;
if (!mz_zip_reader_file_stat(&zip_archive, i, &fileStat))
{
mz_zip_reader_end(&zip_archive);
throw Exceptions::ArchiveError(MZ_DATA_ERROR);
}
const std::string fileName = fileStat.m_filename;
// If the file is a directory, skip it. We create suite folder at the beggining.
if (mz_zip_reader_is_file_a_directory(&zip_archive, fileStat.m_file_index))
{
continue;
}
// Extracting the file.
void *p = mz_zip_reader_extract_file_to_heap(&zip_archive,
fileName.c_str(),
&fileSize, 0);
if (!p)
{
mz_zip_reader_end(&zip_archive);
throw std::runtime_error("mz_zip_reader_extract_file_to_heap() failed!\n");
}
// Writing the file back to the disk
std::fstream file(fileName.c_str(),
std::ios_base::trunc | std::ios_base::in |
std::ios_base::out | std::ios_base::binary);
if (!file.is_open())
{
std::string msg = "Failed to open ";
msg.append(fileName);
throw Exceptions::TestError(msg);
}
file.write((const char*)p, fileSize);
if (file.bad())
{
std::string msg("Failed to write into ");
msg.append(fileName);
throw Exceptions::TestError(msg);
}
// Cleanup.
file.flush();
file.close();
free(p);
}
mz_zip_reader_end(&zip_archive);
}
//
// Extracts the given suite package if needed.
// return true if the suite was extracted, false otherwise.
//
static bool try_extract(const char* suite)
{
if(no_unzip == 0)
{
std::cout << "Extracting test suite " << suite << std::endl;
extract_suite(suite);
std::cout << "Done." << std::endl;
}
return true;
}
bool test_suite(cl_device_id device, cl_uint size_t_width, const char *folder,
const char *test_name[], unsigned int number_of_tests,
const char *extension)
{
// If the folder doesn't exist, we extract in from the archive.
try_extract(folder);
std::cout << "Running tests:" << std::endl;
OclExtensions deviceCapabilities = OclExtensions::getDeviceCapabilities(device);
unsigned int tests_passed = 0;
CounterEventHandler SuccE(tests_passed, number_of_tests);
std::list<std::string> ErrList;
for (unsigned int i = 0; i < number_of_tests; ++i)
{
AccumulatorEventHandler FailE(ErrList, test_name[i]);
if((strlen(extension) != 0) && (!is_extension_available(device, extension)))
{
(SuccE)(test_name[i], "");
std::cout << test_name[i] << "... Skipped. (Cannot run on device due to missing extension: " << extension << " )." << std::endl;
continue;
}
TestRunner testRunner(&SuccE, &FailE, deviceCapabilities);
testRunner.runBuildTest(device, folder, test_name[i], size_t_width);
}
std::cout << std::endl;
std::cout << "PASSED " << tests_passed << " of " << number_of_tests << " tests.\n" << std::endl;
if (!ErrList.empty())
{
std::cout << "Failed tests:" << std::endl;
std::for_each(ErrList.begin(), ErrList.end(), printError);
std::cout << std::endl;
return false;
}
std::cout << std::endl;
return true;
}
static std::string getTestFolder(const std::string& TS)
{
const std::string DOUBLE("_double");
if (TS.size() < DOUBLE.size())
return TS;
const size_t prefixLen = TS.size() - DOUBLE.size();
const std::string postfix = TS.substr(prefixLen, DOUBLE.size());
if (DOUBLE == postfix)
return TS.substr(0, prefixLen);
return TS;
}
bool test_api (cl_device_id device, cl_uint size_t_width, const char *folder)
{
static const char* test_name[] = {
"const_derived_d",
"const_scalar_d",
"const_vector16_d",
"const_vector2_d",
"const_vector3_d",
"const_vector4_d",
"const_vector8_d",
"constant_derived_p0",
"constant_derived_p1",
"constant_derived_restrict_p0",
"constant_derived_restrict_p1",
"constant_scalar_p0",
"constant_scalar_p1",
"constant_scalar_p2",
"constant_scalar_p3",
"constant_scalar_restrict_p0",
"constant_scalar_restrict_p1",
"constant_scalar_restrict_p2",
"constant_scalar_restrict_p3",
"constant_vector16_p0",
"constant_vector16_p1",
"constant_vector16_p2",
"constant_vector16_restrict_p0",
"constant_vector16_restrict_p2",
"constant_vector2_p0",
"constant_vector2_p1",
"constant_vector2_restrict_p0",
"constant_vector2_restrict_p1",
"constant_vector2_restrict_p2",
"constant_vector3_p0",
"constant_vector3_p1",
"constant_vector3_p2",
"constant_vector3_restrict_p0",
"constant_vector3_restrict_p1",
"constant_vector3_restrict_p2",
"constant_vector4_p0",
"constant_vector4_p1",
"constant_vector4_p2",
"constant_vector4_restrict_p0",
"constant_vector4_restrict_p1",
"constant_vector4_restrict_p2",
"constant_vector8_p0",
"constant_vector8_p1",
"constant_vector8_p2",
"constant_vector8_restrict_p0",
"constant_vector8_restrict_p1",
"constant_vector8_restrict_p2",
"derived_d",
"global_const_derived_p",
"global_const_derived_restrict_p",
"global_const_scalar_p",
"global_const_scalar_restrict_p",
"global_const_vector16_p",
"global_const_vector16_restrict_p",
"global_const_vector2_p",
"global_const_vector2_restrict_p",
"global_const_vector3_p",
"global_const_vector3_restrict_p",
"global_const_vector4_p",
"global_const_vector4_restrict_p",
"global_const_vector8_p",
"global_const_vector8_restrict_p",
"global_const_volatile_derived_p",
"global_const_volatile_derived_restrict_p",
"global_const_volatile_scalar_p",
"global_const_volatile_scalar_restrict_p",
"global_const_volatile_vector16_p",
"global_const_volatile_vector16_restrict_p",
"global_const_volatile_vector2_p",
"global_const_volatile_vector2_restrict_p",
"global_const_volatile_vector3_p",
"global_const_volatile_vector3_restrict_p",
"global_const_volatile_vector4_p",
"global_const_volatile_vector4_restrict_p",
"global_const_volatile_vector8_p",
"global_const_volatile_vector8_restrict_p",
"global_derived_p",
"global_derived_restrict_p",
"global_scalar_p",
"global_scalar_restrict_p",
"global_vector16_p",
"global_vector16_restrict_p",
"global_vector2_p",
"global_vector2_restrict_p",
"global_vector3_p",
"global_vector3_restrict_p",
"global_vector4_p",
"global_vector4_restrict_p",
"global_vector8_p",
"global_vector8_restrict_p",
"global_volatile_derived_p",
"global_volatile_derived_restrict_p",
"global_volatile_scalar_p",
"global_volatile_scalar_restrict_p",
"global_volatile_vector16_p",
"global_volatile_vector16_restrict_p",
"global_volatile_vector2_p",
"global_volatile_vector2_restrict_p",
"global_volatile_vector3_p",
"global_volatile_vector3_restrict_p",
"global_volatile_vector4_p",
"global_volatile_vector4_restrict_p",
"global_volatile_vector8_p",
"global_volatile_vector8_restrict_p",
"local_const_derived_p",
"local_const_derived_restrict_p",
"local_const_scalar_p",
"local_const_scalar_restrict_p",
"local_const_vector16_p",
"local_const_vector16_restrict_p",
"local_const_vector2_p",
"local_const_vector2_restrict_p",
"local_const_vector3_p",
"local_const_vector3_restrict_p",
"local_const_vector4_p",
"local_const_vector4_restrict_p",
"local_const_vector8_p",
"local_const_vector8_restrict_p",
"local_const_volatile_derived_p",
"local_const_volatile_derived_restrict_p",
"local_const_volatile_scalar_p",
"local_const_volatile_scalar_restrict_p",
"local_const_volatile_vector16_p",
"local_const_volatile_vector16_restrict_p",
"local_const_volatile_vector2_p",
"local_const_volatile_vector2_restrict_p",
"local_const_volatile_vector3_p",
"local_const_volatile_vector3_restrict_p",
"local_const_volatile_vector4_p",
"local_const_volatile_vector4_restrict_p",
"local_const_volatile_vector8_p",
"local_const_volatile_vector8_restrict_p",
"local_derived_p",
"local_derived_restrict_p",
"local_scalar_p",
"local_scalar_restrict_p",
"local_vector16_p",
"local_vector16_restrict_p",
"local_vector2_p",
"local_vector2_restrict_p",
"local_vector3_p",
"local_vector3_restrict_p",
"local_vector4_p",
"local_vector4_restrict_p",
"local_vector8_p",
"local_vector8_restrict_p",
"local_volatile_derived_p",
"local_volatile_derived_restrict_p",
"local_volatile_scalar_p",
"local_volatile_scalar_restrict_p",
"local_volatile_vector16_p",
"local_volatile_vector16_restrict_p",
"local_volatile_vector2_p",
"local_volatile_vector2_restrict_p",
"local_volatile_vector3_p",
"local_volatile_vector3_restrict_p",
"local_volatile_vector4_p",
"local_volatile_vector4_restrict_p",
"local_volatile_vector8_p",
"local_volatile_vector8_restrict_p",
"private_const_derived_d",
"private_const_scalar_d",
"private_const_vector16_d",
"private_const_vector2_d",
"private_const_vector3_d",
"private_const_vector4_d",
"private_const_vector8_d",
"private_derived_d",
"private_scalar_d",
"private_vector16_d",
"private_vector2_d",
"private_vector3_d",
"private_vector4_d",
"private_vector8_d",
"scalar_d",
"vector16_d",
"vector2_d",
"vector3_d",
"vector4_d",
"vector8_d",
"image_d",
"image_d_write_array",
"image_d_3d",
"sample_test.min_max_read_image_args",
"kernel_with_bool",
"bool_scalar_d",
"long_constant_scalar_p2",
"long_const_scalar_d",
"long_const_vector16_d",
"long_const_vector2_d",
"long_const_vector3_d",
"long_const_vector4_d",
"long_const_vector8_d",
"long_constant_scalar_p3",
"long_constant_scalar_restrict_p2",
"long_constant_scalar_restrict_p3",
"long_constant_vector16_p1",
"long_constant_vector16_restrict_p1",
"long_constant_vector2_p1",
"long_constant_vector2_restrict_p1",
"long_constant_vector3_p1",
"long_constant_vector3_restrict_p1",
"long_constant_vector4_p1",
"long_constant_vector4_restrict_p1",
"long_constant_vector8_p1",
"long_constant_vector8_restrict_p1",
"long_global_const_scalar_p",
"long_global_const_scalar_restrict_p",
"long_global_const_vector16_p",
"long_global_const_vector16_restrict_p",
"long_global_const_vector2_p",
"long_global_const_vector2_restrict_p",
"long_global_const_vector3_p",
"long_global_const_vector3_restrict_p",
"long_global_const_vector4_p",
"long_global_const_vector4_restrict_p",
"long_global_const_vector8_p",
"long_global_const_vector8_restrict_p",
"long_global_const_volatile_scalar_p",
"long_global_const_volatile_scalar_restrict_p",
"long_global_const_volatile_vector16_p",
"long_global_const_volatile_vector16_restrict_p",
"long_global_const_volatile_vector2_p",
"long_global_const_volatile_vector2_restrict_p",
"long_global_const_volatile_vector3_p",
"long_global_const_volatile_vector3_restrict_p",
"long_global_const_volatile_vector4_p",
"long_global_const_volatile_vector4_restrict_p",
"long_global_const_volatile_vector8_p",
"long_global_const_volatile_vector8_restrict_p",
"long_global_scalar_p",
"long_global_scalar_restrict_p",
"long_global_vector16_p",
"long_global_vector16_restrict_p",
"long_global_vector2_p",
"long_global_vector2_restrict_p",
"long_global_vector3_p",
"long_global_vector3_restrict_p",
"long_global_vector4_p",
"long_global_vector4_restrict_p",
"long_global_vector8_p",
"long_global_vector8_restrict_p",
"long_global_volatile_scalar_p",
"long_global_volatile_scalar_restrict_p",
"long_global_volatile_vector16_p",
"long_global_volatile_vector16_restrict_p",
"long_global_volatile_vector2_p",
"long_global_volatile_vector2_restrict_p",
"long_global_volatile_vector3_p",
"long_global_volatile_vector3_restrict_p",
"long_global_volatile_vector4_p",
"long_global_volatile_vector4_restrict_p",
"long_global_volatile_vector8_p",
"long_global_volatile_vector8_restrict_p",
"long_local_const_scalar_p",
"long_local_const_scalar_restrict_p",
"long_local_const_vector16_p",
"long_local_const_vector16_restrict_p",
"long_local_const_vector2_p",
"long_local_const_vector2_restrict_p",
"long_local_const_vector3_p",
"long_local_const_vector3_restrict_p",
"long_local_const_vector4_p",
"long_local_const_vector4_restrict_p",
"long_local_const_vector8_p",
"long_local_const_vector8_restrict_p",
"long_local_const_volatile_scalar_p",
"long_local_const_volatile_scalar_restrict_p",
"long_local_const_volatile_vector16_p",
"long_local_const_volatile_vector16_restrict_p",
"long_local_const_volatile_vector2_p",
"long_local_const_volatile_vector2_restrict_p",
"long_local_const_volatile_vector3_p",
"long_local_const_volatile_vector3_restrict_p",
"long_local_const_volatile_vector4_p",
"long_local_const_volatile_vector4_restrict_p",
"long_local_const_volatile_vector8_p",
"long_local_const_volatile_vector8_restrict_p",
"long_local_scalar_p",
"long_local_scalar_restrict_p",
"long_local_vector16_p",
"long_local_vector16_restrict_p",
"long_local_vector2_p",
"long_local_vector2_restrict_p",
"long_local_vector3_p",
"long_local_vector3_restrict_p",
"long_local_vector4_p",
"long_local_vector4_restrict_p",
"long_local_vector8_p",
"long_local_vector8_restrict_p",
"long_local_volatile_scalar_p",
"long_local_volatile_scalar_restrict_p",
"long_local_volatile_vector16_p",
"long_local_volatile_vector16_restrict_p",
"long_local_volatile_vector2_p",
"long_local_volatile_vector2_restrict_p",
"long_local_volatile_vector3_p",
"long_local_volatile_vector3_restrict_p",
"long_local_volatile_vector4_p",
"long_local_volatile_vector4_restrict_p",
"long_local_volatile_vector8_p",
"long_local_volatile_vector8_restrict_p",
"long_private_const_scalar_d",
"long_private_const_vector16_d",
"long_private_const_vector2_d",
"long_private_const_vector3_d",
"long_private_const_vector4_d",
"long_private_const_vector8_d",
"long_private_scalar_d",
"long_private_vector16_d",
"long_private_vector2_d",
"long_private_vector3_d",
"long_private_vector4_d",
"long_private_vector8_d",
"long_scalar_d",
"long_vector16_d",
"long_vector2_d",
"long_vector3_d",
"long_vector4_d",
"long_vector8_d",
};
log_info("test_api\n");
return test_suite(device, size_t_width, folder, test_name, sizeof(test_name) / sizeof(const char *), "");
}
bool test_api_double (cl_device_id device, cl_uint size_t_width, const char *folder)
{
static const char* test_name[] = {
"double_scalar_p",
"double_scalar_p2",
"double_scalar_d",
"double_vector2_p",
"double_vector2_p2",
"double_vector2_d",
"double_vector3_p",
"double_vector3_p2",
"double_vector3_d",
"double_vector4_p",
"double_vector4_p2",
"double_vector4_d",
"double_vector8_p",
"double_vector8_p2",
"double_vector8_d",
"double_vector16_p",
"double_vector16_p2",
"double_vector16_d",
};
log_info("test_api_double\n");
return test_suite(device, size_t_width, folder, test_name, sizeof(test_name) / sizeof(const char *), "cl_khr_fp64");
}
bool test_atomics (cl_device_id device, cl_uint size_t_width, const char *folder)
{
static const char* test_name[] = {
"test_atomic_fn.atomic_add_global_int",
"test_atomic_fn.atomic_add_global_uint",
"test_atomic_fn.atomic_sub_global_int",
"test_atomic_fn.atomic_sub_global_uint",
"test_atomic_fn.atomic_xchg_global_int",
"test_atomic_fn.atomic_xchg_global_uint",
"test_atomic_fn.atomic_xchg_global_float",
"test_atomic_fn.atomic_min_global_int",
"test_atomic_fn.atomic_min_global_uint",
"test_atomic_fn.atomic_max_global_int",
"test_atomic_fn.atomic_max_global_uint",
"test_atomic_fn.atomic_inc_global_int",
"test_atomic_fn.atomic_inc_global_uint",
"test_atomic_fn.atomic_dec_global_int",
"test_atomic_fn.atomic_dec_global_uint",
"test_atomic_fn.atomic_cmpxchg_global_int",
"test_atomic_fn.atomic_cmpxchg_global_uint",
"test_atomic_fn.atomic_and_global_int",
"test_atomic_fn.atomic_and_global_uint",
"test_atomic_fn.atomic_or_global_int",
"test_atomic_fn.atomic_or_global_uint",
"test_atomic_fn.atomic_xor_global_int",
"test_atomic_fn.atomic_xor_global_uint",
"test_atomic_fn.atomic_add_local_int",
"test_atomic_fn.atomic_add_local_uint",
"test_atomic_fn.atomic_sub_local_int",
"test_atomic_fn.atomic_sub_local_uint",
"test_atomic_fn.atomic_xchg_local_int",
"test_atomic_fn.atomic_xchg_local_uint",
"test_atomic_fn.atomic_xchg_local_float",
"test_atomic_fn.atomic_min_local_int",
"test_atomic_fn.atomic_min_local_uint",
"test_atomic_fn.atomic_max_local_int",
"test_atomic_fn.atomic_max_local_uint",
"test_atomic_fn.atomic_inc_local_int",
"test_atomic_fn.atomic_inc_local_uint",
"test_atomic_fn.atomic_dec_local_int",
"test_atomic_fn.atomic_dec_local_uint",
"test_atomic_fn.atomic_cmpxchg_local_int",
"test_atomic_fn.atomic_cmpxchg_local_uint",
"test_atomic_fn.atomic_and_local_int",
"test_atomic_fn.atomic_and_local_uint",
"test_atomic_fn.atomic_or_local_int",
"test_atomic_fn.atomic_or_local_uint",
"test_atomic_fn.atomic_xor_local_int",
"test_atomic_fn.atomic_xor_local_uint",
};
log_info("test_atomics\n");
return test_suite(device, size_t_width, folder, test_name, sizeof(test_name) / sizeof(const char *), "");
}
bool test_basic (cl_device_id device, cl_uint size_t_width, const char *folder)
{
static const char* test_name[] = {
"sample_kernel.work_item_functions",
"test_sizeof.sizeof_char",
"test_sizeof.sizeof_uchar",
"test_sizeof.sizeof_unsigned_char",
"test_sizeof.sizeof_short",
"test_sizeof.sizeof_ushort",
"test_sizeof.sizeof_unsigned_short",
"test_sizeof.sizeof_int",
"test_sizeof.sizeof_uint",
"test_sizeof.sizeof_unsigned_int",
"test_sizeof.sizeof_float",
"test_sizeof.sizeof_long",
"test_sizeof.sizeof_ulong",
"test_sizeof.sizeof_unsigned_long",
"test_sizeof.sizeof_char2",
"test_sizeof.sizeof_uchar2",
"test_sizeof.sizeof_short2",
"test_sizeof.sizeof_ushort2",
"test_sizeof.sizeof_int2",
"test_sizeof.sizeof_uint2",
"test_sizeof.sizeof_float2",
"test_sizeof.sizeof_long2",
"test_sizeof.sizeof_ulong2",
"test_sizeof.sizeof_char4",
"test_sizeof.sizeof_uchar4",
"test_sizeof.sizeof_short4",
"test_sizeof.sizeof_ushort4",
"test_sizeof.sizeof_int4",
"test_sizeof.sizeof_uint4",
"test_sizeof.sizeof_float4",
"test_sizeof.sizeof_long4",
"test_sizeof.sizeof_ulong4",
"test_sizeof.sizeof_char8",
"test_sizeof.sizeof_uchar8",
"test_sizeof.sizeof_short8",
"test_sizeof.sizeof_ushort8",
"test_sizeof.sizeof_int8",
"test_sizeof.sizeof_uint8",
"test_sizeof.sizeof_float8",
"test_sizeof.sizeof_long8",
"test_sizeof.sizeof_ulong8",
"test_sizeof.sizeof_char16",
"test_sizeof.sizeof_uchar16",
"test_sizeof.sizeof_short16",
"test_sizeof.sizeof_ushort16",
"test_sizeof.sizeof_int16",
"test_sizeof.sizeof_uint16",
"test_sizeof.sizeof_float16",
"test_sizeof.sizeof_long16",
"test_sizeof.sizeof_ulong16",
"test_sizeof.sizeof_void_p",
"test_sizeof.sizeof_size_t",
"test_sizeof.sizeof_sizeof_int",
"test_sizeof.sizeof_ptrdiff_t",
"test_sizeof.sizeof_intptr_t",
"test_sizeof.sizeof_uintptr_t",
"test_sizeof.sizeof_image2d_t",
"test_sizeof.sizeof_image3d_t",
"test_sizeof.sizeof_double",
"test_sizeof.sizeof_double2",
"test_sizeof.sizeof_double4",
"test_sizeof.sizeof_double8",
"test_sizeof.sizeof_double16",
"sample_test.vec_type_hint_char",
"sample_test.vec_type_hint_char2",
"sample_test.vec_type_hint_char4",
"sample_test.vec_type_hint_char8",
"sample_test.vec_type_hint_char16",
"sample_test.vec_type_hint_uchar",
"sample_test.vec_type_hint_uchar2",
"sample_test.vec_type_hint_uchar4",
"sample_test.vec_type_hint_uchar8",
"sample_test.vec_type_hint_uchar16",
"sample_test.vec_type_hint_short",
"sample_test.vec_type_hint_short2",
"sample_test.vec_type_hint_short4",
"sample_test.vec_type_hint_short8",
"sample_test.vec_type_hint_short16",
"sample_test.vec_type_hint_ushort",
"sample_test.vec_type_hint_ushort2",
"sample_test.vec_type_hint_ushort4",
"sample_test.vec_type_hint_ushort8",
"sample_test.vec_type_hint_ushort16",
"sample_test.vec_type_hint_int",
"sample_test.vec_type_hint_int2",
"sample_test.vec_type_hint_int4",
"sample_test.vec_type_hint_int8",
"sample_test.vec_type_hint_int16",
"sample_test.vec_type_hint_uint",
"sample_test.vec_type_hint_uint2",
"sample_test.vec_type_hint_uint4",
"sample_test.vec_type_hint_uint8",
"sample_test.vec_type_hint_uint16",
"sample_test.vec_type_hint_long",
"sample_test.vec_type_hint_long2",
"sample_test.vec_type_hint_long4",
"sample_test.vec_type_hint_long8",
"sample_test.vec_type_hint_long16",
"sample_test.vec_type_hint_ulong",
"sample_test.vec_type_hint_ulong2",
"sample_test.vec_type_hint_ulong4",
"sample_test.vec_type_hint_ulong8",
"sample_test.vec_type_hint_ulong16",
"sample_test.vec_type_hint_float",
"sample_test.vec_type_hint_float2",
"sample_test.vec_type_hint_float4",
"sample_test.vec_type_hint_float8",
"sample_test.vec_type_hint_float16",
"test.kernel_memory_alignment_private_char",
"test.kernel_memory_alignment_private_uchar",
"test.kernel_memory_alignment_private_short",
"test.kernel_memory_alignment_private_ushort",
"test.kernel_memory_alignment_private_int",
"test.kernel_memory_alignment_private_uint",
"test.kernel_memory_alignment_private_long",
"test.kernel_memory_alignment_private_ulong",
"test.kernel_memory_alignment_private_float",
"test_fn.vload_global_char2",
"test_fn.vload_global_char3",
"test_fn.vload_global_char4",
"test_fn.vload_global_char8",
"test_fn.vload_global_char16",
"test_fn.vload_global_uchar2",
"test_fn.vload_global_uchar3",
"test_fn.vload_global_uchar4",
"test_fn.vload_global_uchar8",
"test_fn.vload_global_uchar16",
"test_fn.vload_global_short2",
"test_fn.vload_global_short3",
"test_fn.vload_global_short4",
"test_fn.vload_global_short8",
"test_fn.vload_global_short16",
"test_fn.vload_global_ushort2",
"test_fn.vload_global_ushort3",
"test_fn.vload_global_ushort4",
"test_fn.vload_global_ushort8",
"test_fn.vload_global_ushort16",
"test_fn.vload_global_int2",
"test_fn.vload_global_int3",
"test_fn.vload_global_int4",
"test_fn.vload_global_int8",
"test_fn.vload_global_int16",
"test_fn.vload_global_uint2",
"test_fn.vload_global_uint3",
"test_fn.vload_global_uint4",
"test_fn.vload_global_uint8",
"test_fn.vload_global_uint16",
"test_fn.vload_global_long2",
"test_fn.vload_global_long3",
"test_fn.vload_global_long4",
"test_fn.vload_global_long8",
"test_fn.vload_global_long16",
"test_fn.vload_global_ulong2",
"test_fn.vload_global_ulong3",
"test_fn.vload_global_ulong4",
"test_fn.vload_global_ulong8",
"test_fn.vload_global_ulong16",
"test_fn.vload_global_float2",
"test_fn.vload_global_float3",
"test_fn.vload_global_float4",
"test_fn.vload_global_float8",
"test_fn.vload_global_float16",
"test_fn.vload_constant_char2",
"test_fn.vload_constant_char3",
"test_fn.vload_constant_char4",
"test_fn.vload_constant_char8",
"test_fn.vload_constant_char16",
"test_fn.vload_constant_uchar2",
"test_fn.vload_constant_uchar3",
"test_fn.vload_constant_uchar4",
"test_fn.vload_constant_uchar8",
"test_fn.vload_constant_uchar16",
"test_fn.vload_constant_short2",
"test_fn.vload_constant_short3",
"test_fn.vload_constant_short4",
"test_fn.vload_constant_short8",
"test_fn.vload_constant_short16",
"test_fn.vload_constant_ushort2",
"test_fn.vload_constant_ushort3",
"test_fn.vload_constant_ushort4",
"test_fn.vload_constant_ushort8",
"test_fn.vload_constant_ushort16",
"test_fn.vload_constant_int2",
"test_fn.vload_constant_int3",
"test_fn.vload_constant_int4",
"test_fn.vload_constant_int8",
"test_fn.vload_constant_int16",
"test_fn.vload_constant_uint2",
"test_fn.vload_constant_uint3",
"test_fn.vload_constant_uint4",
"test_fn.vload_constant_uint8",
"test_fn.vload_constant_uint16",
"test_fn.vload_constant_long2",
"test_fn.vload_constant_long3",
"test_fn.vload_constant_long4",
"test_fn.vload_constant_long8",
"test_fn.vload_constant_long16",
"test_fn.vload_constant_ulong2",
"test_fn.vload_constant_ulong3",
"test_fn.vload_constant_ulong4",
"test_fn.vload_constant_ulong8",
"test_fn.vload_constant_ulong16",
"test_fn.vload_constant_float2",
"test_fn.vload_constant_float3",
"test_fn.vload_constant_float4",
"test_fn.vload_constant_float8",
"test_fn.vload_constant_float16",
"test_fn.vload_private_char2",
"test_fn.vload_private_char3",
"test_fn.vload_private_char4",
"test_fn.vload_private_char8",
"test_fn.vload_private_char16",
"test_fn.vload_private_uchar2",
"test_fn.vload_private_uchar3",
"test_fn.vload_private_uchar4",
"test_fn.vload_private_uchar8",
"test_fn.vload_private_uchar16",
"test_fn.vload_private_short2",
"test_fn.vload_private_short3",
"test_fn.vload_private_short4",
"test_fn.vload_private_short8",
"test_fn.vload_private_short16",
"test_fn.vload_private_ushort2",
"test_fn.vload_private_ushort3",
"test_fn.vload_private_ushort4",
"test_fn.vload_private_ushort8",
"test_fn.vload_private_ushort16",
"test_fn.vload_private_int2",
"test_fn.vload_private_int3",
"test_fn.vload_private_int4",
"test_fn.vload_private_int8",
"test_fn.vload_private_int16",
"test_fn.vload_private_uint2",
"test_fn.vload_private_uint3",
"test_fn.vload_private_uint4",
"test_fn.vload_private_uint8",
"test_fn.vload_private_uint16",
"test_fn.vload_private_long2",
"test_fn.vload_private_long3",
"test_fn.vload_private_long4",
"test_fn.vload_private_long8",
"test_fn.vload_private_long16",
"test_fn.vload_private_ulong2",
"test_fn.vload_private_ulong3",
"test_fn.vload_private_ulong4",
"test_fn.vload_private_ulong8",
"test_fn.vload_private_ulong16",
"test_fn.vload_private_float2",
"test_fn.vload_private_float3",
"test_fn.vload_private_float4",
"test_fn.vload_private_float8",
"test_fn.vload_private_float16",
"test_fn.vload_local_char2",
"test_fn.vload_local_char3",
"test_fn.vload_local_char4",
"test_fn.vload_local_char8",
"test_fn.vload_local_char16",
"test_fn.vload_local_uchar2",
"test_fn.vload_local_uchar3",
"test_fn.vload_local_uchar4",
"test_fn.vload_local_uchar8",
"test_fn.vload_local_uchar16",
"test_fn.vload_local_short2",
"test_fn.vload_local_short3",
"test_fn.vload_local_short4",
"test_fn.vload_local_short8",
"test_fn.vload_local_short16",
"test_fn.vload_local_ushort2",
"test_fn.vload_local_ushort3",
"test_fn.vload_local_ushort4",
"test_fn.vload_local_ushort8",
"test_fn.vload_local_ushort16",
"test_fn.vload_local_int2",
"test_fn.vload_local_int3",
"test_fn.vload_local_int4",
"test_fn.vload_local_int8",
"test_fn.vload_local_int16",
"test_fn.vload_local_uint2",
"test_fn.vload_local_uint3",
"test_fn.vload_local_uint4",
"test_fn.vload_local_uint8",
"test_fn.vload_local_uint16",
"test_fn.vload_local_long2",
"test_fn.vload_local_long3",
"test_fn.vload_local_long4",
"test_fn.vload_local_long8",
"test_fn.vload_local_long16",
"test_fn.vload_local_ulong2",
"test_fn.vload_local_ulong3",
"test_fn.vload_local_ulong4",
"test_fn.vload_local_ulong8",
"test_fn.vload_local_ulong16",
"test_fn.vload_local_float2",
"test_fn.vload_local_float3",
"test_fn.vload_local_float4",
"test_fn.vload_local_float8",
"test_fn.vload_local_float16",
"test_fn.vstore_global_char2",
"test_fn.vstore_global_char3",
"test_fn.vstore_global_char4",
"test_fn.vstore_global_char8",
"test_fn.vstore_global_char16",
"test_fn.vstore_global_uchar2",
"test_fn.vstore_global_uchar3",
"test_fn.vstore_global_uchar4",
"test_fn.vstore_global_uchar8",
"test_fn.vstore_global_uchar16",
"test_fn.vstore_global_short2",
"test_fn.vstore_global_short3",
"test_fn.vstore_global_short4",
"test_fn.vstore_global_short8",
"test_fn.vstore_global_short16",
"test_fn.vstore_global_ushort2",
"test_fn.vstore_global_ushort3",
"test_fn.vstore_global_ushort4",
"test_fn.vstore_global_ushort8",
"test_fn.vstore_global_ushort16",
"test_fn.vstore_global_int2",
"test_fn.vstore_global_int3",
"test_fn.vstore_global_int4",
"test_fn.vstore_global_int8",
"test_fn.vstore_global_int16",
"test_fn.vstore_global_uint2",
"test_fn.vstore_global_uint3",
"test_fn.vstore_global_uint4",
"test_fn.vstore_global_uint8",
"test_fn.vstore_global_uint16",
"test_fn.vstore_global_long2",
"test_fn.vstore_global_long3",
"test_fn.vstore_global_long4",
"test_fn.vstore_global_long8",
"test_fn.vstore_global_long16",
"test_fn.vstore_global_ulong2",
"test_fn.vstore_global_ulong3",
"test_fn.vstore_global_ulong4",
"test_fn.vstore_global_ulong8",
"test_fn.vstore_global_ulong16",
"test_fn.vstore_global_float2",
"test_fn.vstore_global_float3",
"test_fn.vstore_global_float4",
"test_fn.vstore_global_float8",
"test_fn.vstore_global_float16",
"test_fn.vstore_local_char2",
"test_fn.vstore_local_char3",
"test_fn.vstore_local_char4",
"test_fn.vstore_local_char8",
"test_fn.vstore_local_char16",
"test_fn.vstore_local_uchar2",
"test_fn.vstore_local_uchar3",
"test_fn.vstore_local_uchar4",
"test_fn.vstore_local_uchar8",
"test_fn.vstore_local_uchar16",
"test_fn.vstore_local_short2",
"test_fn.vstore_local_short3",
"test_fn.vstore_local_short4",
"test_fn.vstore_local_short8",
"test_fn.vstore_local_short16",
"test_fn.vstore_local_ushort2",
"test_fn.vstore_local_ushort3",
"test_fn.vstore_local_ushort4",
"test_fn.vstore_local_ushort8",
"test_fn.vstore_local_ushort16",
"test_fn.vstore_local_int2",
"test_fn.vstore_local_int3",
"test_fn.vstore_local_int4",
"test_fn.vstore_local_int8",
"test_fn.vstore_local_int16",
"test_fn.vstore_local_uint2",
"test_fn.vstore_local_uint3",
"test_fn.vstore_local_uint4",
"test_fn.vstore_local_uint8",
"test_fn.vstore_local_uint16",
"test_fn.vstore_local_long2",
"test_fn.vstore_local_long3",
"test_fn.vstore_local_long4",
"test_fn.vstore_local_long8",
"test_fn.vstore_local_long16",
"test_fn.vstore_local_ulong2",
"test_fn.vstore_local_ulong3",
"test_fn.vstore_local_ulong4",
"test_fn.vstore_local_ulong8",
"test_fn.vstore_local_ulong16",
"test_fn.vstore_local_float2",
"test_fn.vstore_local_float3",
"test_fn.vstore_local_float4",
"test_fn.vstore_local_float8",
"test_fn.vstore_local_float16",
"test_fn.vstore_private_char2",
"test_fn.vstore_private_char3",
"test_fn.vstore_private_char4",
"test_fn.vstore_private_char8",
"test_fn.vstore_private_char16",
"test_fn.vstore_private_uchar2",
"test_fn.vstore_private_uchar3",
"test_fn.vstore_private_uchar4",
"test_fn.vstore_private_uchar8",
"test_fn.vstore_private_uchar16",
"test_fn.vstore_private_short2",
"test_fn.vstore_private_short3",
"test_fn.vstore_private_short4",
"test_fn.vstore_private_short8",
"test_fn.vstore_private_short16",
"test_fn.vstore_private_ushort2",
"test_fn.vstore_private_ushort3",
"test_fn.vstore_private_ushort4",
"test_fn.vstore_private_ushort8",
"test_fn.vstore_private_ushort16",
"test_fn.vstore_private_int2",
"test_fn.vstore_private_int3",
"test_fn.vstore_private_int4",
"test_fn.vstore_private_int8",
"test_fn.vstore_private_int16",
"test_fn.vstore_private_uint2",
"test_fn.vstore_private_uint3",
"test_fn.vstore_private_uint4",
"test_fn.vstore_private_uint8",
"test_fn.vstore_private_uint16",
"test_fn.vstore_private_long2",
"test_fn.vstore_private_long3",
"test_fn.vstore_private_long4",
"test_fn.vstore_private_long8",
"test_fn.vstore_private_long16",
"test_fn.vstore_private_ulong2",
"test_fn.vstore_private_ulong3",
"test_fn.vstore_private_ulong4",
"test_fn.vstore_private_ulong8",
"test_fn.vstore_private_ulong16",
"test_fn.vstore_private_float2",
"test_fn.vstore_private_float3",
"test_fn.vstore_private_float4",
"test_fn.vstore_private_float8",
"test_fn.vstore_private_float16",
"test_fn.async_copy_global_to_local_char",
"test_fn.async_copy_global_to_local_char2",
"test_fn.async_copy_global_to_local_char4",
"test_fn.async_copy_global_to_local_char8",
"test_fn.async_copy_global_to_local_char16",
"test_fn.async_copy_global_to_local_uchar",
"test_fn.async_copy_global_to_local_uchar2",
"test_fn.async_copy_global_to_local_uchar4",
"test_fn.async_copy_global_to_local_uchar8",
"test_fn.async_copy_global_to_local_uchar16",
"test_fn.async_copy_global_to_local_short",
"test_fn.async_copy_global_to_local_short2",
"test_fn.async_copy_global_to_local_short4",
"test_fn.async_copy_global_to_local_short8",
"test_fn.async_copy_global_to_local_short16",
"test_fn.async_copy_global_to_local_ushort",
"test_fn.async_copy_global_to_local_ushort2",
"test_fn.async_copy_global_to_local_ushort4",
"test_fn.async_copy_global_to_local_ushort8",
"test_fn.async_copy_global_to_local_ushort16",
"test_fn.async_copy_global_to_local_int",
"test_fn.async_copy_global_to_local_int2",
"test_fn.async_copy_global_to_local_int4",
"test_fn.async_copy_global_to_local_int8",
"test_fn.async_copy_global_to_local_int16",
"test_fn.async_copy_global_to_local_uint",
"test_fn.async_copy_global_to_local_uint2",
"test_fn.async_copy_global_to_local_uint4",
"test_fn.async_copy_global_to_local_uint8",
"test_fn.async_copy_global_to_local_uint16",
"test_fn.async_copy_global_to_local_long",
"test_fn.async_copy_global_to_local_long2",
"test_fn.async_copy_global_to_local_long4",
"test_fn.async_copy_global_to_local_long8",
"test_fn.async_copy_global_to_local_long16",
"test_fn.async_copy_global_to_local_ulong",
"test_fn.async_copy_global_to_local_ulong2",
"test_fn.async_copy_global_to_local_ulong4",
"test_fn.async_copy_global_to_local_ulong8",
"test_fn.async_copy_global_to_local_ulong16",
"test_fn.async_copy_global_to_local_float",
"test_fn.async_copy_global_to_local_float2",
"test_fn.async_copy_global_to_local_float4",
"test_fn.async_copy_global_to_local_float8",
"test_fn.async_copy_global_to_local_float16",
"test_fn.async_copy_global_to_local_double",
"test_fn.async_copy_global_to_local_double2",
"test_fn.async_copy_global_to_local_double4",
"test_fn.async_copy_global_to_local_double8",
"test_fn.async_copy_global_to_local_double16",
"test_fn.async_copy_local_to_global_char",
"test_fn.async_copy_local_to_global_char2",
"test_fn.async_copy_local_to_global_char4",
"test_fn.async_copy_local_to_global_char8",
"test_fn.async_copy_local_to_global_char16",
"test_fn.async_copy_local_to_global_uchar",
"test_fn.async_copy_local_to_global_uchar2",
"test_fn.async_copy_local_to_global_uchar4",
"test_fn.async_copy_local_to_global_uchar8",
"test_fn.async_copy_local_to_global_uchar16",
"test_fn.async_copy_local_to_global_short",
"test_fn.async_copy_local_to_global_short2",
"test_fn.async_copy_local_to_global_short4",
"test_fn.async_copy_local_to_global_short8",
"test_fn.async_copy_local_to_global_short16",
"test_fn.async_copy_local_to_global_ushort",
"test_fn.async_copy_local_to_global_ushort2",
"test_fn.async_copy_local_to_global_ushort4",
"test_fn.async_copy_local_to_global_ushort8",
"test_fn.async_copy_local_to_global_ushort16",
"test_fn.async_copy_local_to_global_int",
"test_fn.async_copy_local_to_global_int2",
"test_fn.async_copy_local_to_global_int4",
"test_fn.async_copy_local_to_global_int8",
"test_fn.async_copy_local_to_global_int16",
"test_fn.async_copy_local_to_global_uint",
"test_fn.async_copy_local_to_global_uint2",
"test_fn.async_copy_local_to_global_uint4",
"test_fn.async_copy_local_to_global_uint8",
"test_fn.async_copy_local_to_global_uint16",
"test_fn.async_copy_local_to_global_long",
"test_fn.async_copy_local_to_global_long2",
"test_fn.async_copy_local_to_global_long4",
"test_fn.async_copy_local_to_global_long8",
"test_fn.async_copy_local_to_global_long16",
"test_fn.async_copy_local_to_global_ulong",
"test_fn.async_copy_local_to_global_ulong2",
"test_fn.async_copy_local_to_global_ulong4",
"test_fn.async_copy_local_to_global_ulong8",
"test_fn.async_copy_local_to_global_ulong16",
"test_fn.async_copy_local_to_global_float",
"test_fn.async_copy_local_to_global_float2",
"test_fn.async_copy_local_to_global_float4",
"test_fn.async_copy_local_to_global_float8",
"test_fn.async_copy_local_to_global_float16",
"test_fn.async_strided_copy_global_to_local_char",
"test_fn.async_strided_copy_global_to_local_char2",
"test_fn.async_strided_copy_global_to_local_char4",
"test_fn.async_strided_copy_global_to_local_char8",
"test_fn.async_strided_copy_global_to_local_char16",
"test_fn.async_strided_copy_global_to_local_uchar",
"test_fn.async_strided_copy_global_to_local_uchar2",
"test_fn.async_strided_copy_global_to_local_uchar4",
"test_fn.async_strided_copy_global_to_local_uchar8",
"test_fn.async_strided_copy_global_to_local_uchar16",
"test_fn.async_strided_copy_global_to_local_short",
"test_fn.async_strided_copy_global_to_local_short2",
"test_fn.async_strided_copy_global_to_local_short4",
"test_fn.async_strided_copy_global_to_local_short8",
"test_fn.async_strided_copy_global_to_local_short16",
"test_fn.async_strided_copy_global_to_local_ushort",
"test_fn.async_strided_copy_global_to_local_ushort2",
"test_fn.async_strided_copy_global_to_local_ushort4",
"test_fn.async_strided_copy_global_to_local_ushort8",
"test_fn.async_strided_copy_global_to_local_ushort16",
"test_fn.async_strided_copy_global_to_local_int",
"test_fn.async_strided_copy_global_to_local_int2",
"test_fn.async_strided_copy_global_to_local_int4",
"test_fn.async_strided_copy_global_to_local_int8",
"test_fn.async_strided_copy_global_to_local_int16",
"test_fn.async_strided_copy_global_to_local_uint",
"test_fn.async_strided_copy_global_to_local_uint2",
"test_fn.async_strided_copy_global_to_local_uint4",
"test_fn.async_strided_copy_global_to_local_uint8",
"test_fn.async_strided_copy_global_to_local_uint16",
"test_fn.async_strided_copy_global_to_local_long",
"test_fn.async_strided_copy_global_to_local_long2",
"test_fn.async_strided_copy_global_to_local_long4",
"test_fn.async_strided_copy_global_to_local_long8",
"test_fn.async_strided_copy_global_to_local_long16",
"test_fn.async_strided_copy_global_to_local_ulong",
"test_fn.async_strided_copy_global_to_local_ulong2",
"test_fn.async_strided_copy_global_to_local_ulong4",
"test_fn.async_strided_copy_global_to_local_ulong8",
"test_fn.async_strided_copy_global_to_local_ulong16",
"test_fn.async_strided_copy_global_to_local_float",
"test_fn.async_strided_copy_global_to_local_float2",
"test_fn.async_strided_copy_global_to_local_float4",
"test_fn.async_strided_copy_global_to_local_float8",
"test_fn.async_strided_copy_global_to_local_float16",
"test_fn.async_strided_copy_local_to_global_char",
"test_fn.async_strided_copy_local_to_global_char2",
"test_fn.async_strided_copy_local_to_global_char4",
"test_fn.async_strided_copy_local_to_global_char8",
"test_fn.async_strided_copy_local_to_global_char16",
"test_fn.async_strided_copy_local_to_global_uchar",
"test_fn.async_strided_copy_local_to_global_uchar2",
"test_fn.async_strided_copy_local_to_global_uchar4",
"test_fn.async_strided_copy_local_to_global_uchar8",
"test_fn.async_strided_copy_local_to_global_uchar16",
"test_fn.async_strided_copy_local_to_global_short",
"test_fn.async_strided_copy_local_to_global_short2",
"test_fn.async_strided_copy_local_to_global_short4",
"test_fn.async_strided_copy_local_to_global_short8",
"test_fn.async_strided_copy_local_to_global_short16",
"test_fn.async_strided_copy_local_to_global_ushort",
"test_fn.async_strided_copy_local_to_global_ushort2",
"test_fn.async_strided_copy_local_to_global_ushort4",
"test_fn.async_strided_copy_local_to_global_ushort8",
"test_fn.async_strided_copy_local_to_global_ushort16",
"test_fn.async_strided_copy_local_to_global_int",
"test_fn.async_strided_copy_local_to_global_int2",
"test_fn.async_strided_copy_local_to_global_int4",
"test_fn.async_strided_copy_local_to_global_int8",
"test_fn.async_strided_copy_local_to_global_int16",
"test_fn.async_strided_copy_local_to_global_uint",
"test_fn.async_strided_copy_local_to_global_uint2",
"test_fn.async_strided_copy_local_to_global_uint4",
"test_fn.async_strided_copy_local_to_global_uint8",
"test_fn.async_strided_copy_local_to_global_uint16",
"test_fn.async_strided_copy_local_to_global_long",
"test_fn.async_strided_copy_local_to_global_long2",
"test_fn.async_strided_copy_local_to_global_long4",
"test_fn.async_strided_copy_local_to_global_long8",
"test_fn.async_strided_copy_local_to_global_long16",
"test_fn.async_strided_copy_local_to_global_ulong",
"test_fn.async_strided_copy_local_to_global_ulong2",
"test_fn.async_strided_copy_local_to_global_ulong4",
"test_fn.async_strided_copy_local_to_global_ulong8",
"test_fn.async_strided_copy_local_to_global_ulong16",
"test_fn.async_strided_copy_local_to_global_float",
"test_fn.async_strided_copy_local_to_global_float2",
"test_fn.async_strided_copy_local_to_global_float4",
"test_fn.async_strided_copy_local_to_global_float8",
"test_fn.async_strided_copy_local_to_global_float16",
"test_fn.prefetch_char",
"test_fn.prefetch_char2",
"test_fn.prefetch_char4",
"test_fn.prefetch_char8",
"test_fn.prefetch_char16",
"test_fn.prefetch_uchar",
"test_fn.prefetch_uchar2",
"test_fn.prefetch_uchar4",
"test_fn.prefetch_uchar8",
"test_fn.prefetch_uchar16",
"test_fn.prefetch_short",
"test_fn.prefetch_short2",
"test_fn.prefetch_short4",
"test_fn.prefetch_short8",
"test_fn.prefetch_short16",
"test_fn.prefetch_ushort",
"test_fn.prefetch_ushort2",
"test_fn.prefetch_ushort4",
"test_fn.prefetch_ushort8",
"test_fn.prefetch_ushort16",
"test_fn.prefetch_int",
"test_fn.prefetch_int2",
"test_fn.prefetch_int4",
"test_fn.prefetch_int8",
"test_fn.prefetch_int16",
"test_fn.prefetch_uint",
"test_fn.prefetch_uint2",
"test_fn.prefetch_uint4",
"test_fn.prefetch_uint8",
"test_fn.prefetch_uint16",
"test_fn.prefetch_long",
"test_fn.prefetch_long2",
"test_fn.prefetch_long4",
"test_fn.prefetch_long8",
"test_fn.prefetch_long16",
"test_fn.prefetch_ulong",
"test_fn.prefetch_ulong2",
"test_fn.prefetch_ulong4",
"test_fn.prefetch_ulong8",
"test_fn.prefetch_ulong16",
"test_fn.prefetch_float",
"test_fn.prefetch_float2",
"test_fn.prefetch_float4",
"test_fn.prefetch_float8",
"test_fn.prefetch_float16",
};
log_info("test_basic\n");
return test_suite(device, size_t_width, folder, test_name, sizeof(test_name) / sizeof(const char *), "");
}
bool test_basic_double (cl_device_id device, cl_uint size_t_width, const char *folder)
{
static const char* test_name[] = {
"sample_test.vec_type_hint_double",
"sample_test.vec_type_hint_double2",
"sample_test.vec_type_hint_double4",
"sample_test.vec_type_hint_double8",
"sample_test.vec_type_hint_double16",
"test.kernel_memory_alignment_private_double",
"test_fn.vload_global_double2",
"test_fn.vload_global_double3",
"test_fn.vload_global_double4",
"test_fn.vload_global_double8",
"test_fn.vload_global_double16",
"test_fn.vload_constant_double2",
"test_fn.vload_constant_double3",
"test_fn.vload_constant_double4",
"test_fn.vload_constant_double8",
"test_fn.vload_constant_double16",
"test_fn.vstore_global_double2",
"test_fn.vstore_global_double3",
"test_fn.vstore_global_double4",
"test_fn.vstore_global_double8",
"test_fn.vstore_global_double16",
"test_fn.vload_local_double2",
"test_fn.vload_local_double3",
"test_fn.vload_local_double4",
"test_fn.vload_local_double8",
"test_fn.vload_local_double16",
"test_fn.vstore_global_double2",
"test_fn.vstore_global_double3",
"test_fn.vstore_global_double4",
"test_fn.vstore_global_double8",
"test_fn.vstore_global_double16",
"test_fn.vstore_local_double2",
"test_fn.vstore_local_double3",
"test_fn.vstore_local_double4",
"test_fn.vstore_local_double8",
"test_fn.vstore_local_double16",
"test_fn.vstore_private_double2",
"test_fn.vstore_private_double3",
"test_fn.vstore_private_double4",
"test_fn.vstore_private_double8",
"test_fn.vstore_private_double16",
"test_fn.async_copy_local_to_global_double",
"test_fn.async_copy_local_to_global_double2",
"test_fn.async_copy_local_to_global_double4",
"test_fn.async_copy_local_to_global_double8",
"test_fn.async_copy_local_to_global_double16",
"test_fn.async_strided_copy_global_to_local_double",
"test_fn.async_strided_copy_global_to_local_double2",
"test_fn.async_strided_copy_global_to_local_double4",
"test_fn.async_strided_copy_global_to_local_double8",
"test_fn.async_strided_copy_global_to_local_double16",
"test_fn.async_strided_copy_local_to_global_double",
"test_fn.async_strided_copy_local_to_global_double2",
"test_fn.async_strided_copy_local_to_global_double4",
"test_fn.async_strided_copy_local_to_global_double8",
"test_fn.async_strided_copy_local_to_global_double16",
"test_fn.prefetch_double",
"test_fn.prefetch_double2",
"test_fn.prefetch_double4",
"test_fn.prefetch_double8",
"test_fn.prefetch_double16",
};
log_info("test_basic_double\n");
return test_suite(device, size_t_width, folder, test_name, sizeof(test_name) / sizeof(const char *), "cl_khr_fp64");
}
bool test_commonfns (cl_device_id device, cl_uint size_t_width, const char *folder)
{
static const char* test_name[] = {
"test_clamp.test_clamp_float",
"test_clamp.test_clamp_float2",
"test_clamp.test_clamp_float4",
"test_clamp.test_clamp_float8",
"test_clamp.test_clamp_float16",
"test_clamp.test_clamp_float3",
"test_degrees",
"test_degrees2",
"test_degrees4",
"test_degrees8",
"test_degrees16",
"test_degrees3",
"test_fmax",
"test_fmax2",
"test_fmax4",
"test_fmax8",
"test_fmax16",
"test_fmax3",
"test_fmin",
"test_fmin2",
"test_fmin4",
"test_fmin8",
"test_fmin16",
"test_fmin3",
"test_fn.test_max_float",
"test_fn.test_max_float2",
"test_fn.test_max_float4",
"test_fn.test_max_float8",
"test_fn.test_max_float16",
"test_fn.test_max_float3",
"test_fn.test_min_float",
"test_fn.test_min_float2",
"test_fn.test_min_float4",
"test_fn.test_min_float8",
"test_fn.test_min_float16",
"test_fn.test_min_float3",
"test_mix",
"test_radians",
"test_radians2",
"test_radians4",
"test_radians8",
"test_radians16",
"test_radians3",
"test_step",
"test_step2",
"test_step4",
"test_step8",
"test_step16",
"test_step3",
"test_smoothstep",
"test_smoothstep2",
"test_smoothstep4",
"test_smoothstep8",
"test_smoothstep16",
"test_smoothstep3",
"test_sign",
"test_sign2",
"test_sign4",
"test_sign8",
"test_sign16",
"test_sign3",
};
log_info("test_commonfns\n");
return test_suite(device, size_t_width, folder, test_name, sizeof(test_name) / sizeof(const char *), "");
}
bool test_commonfns_double (cl_device_id device, cl_uint size_t_width, const char *folder)
{
static const char* test_name[] = {
"test_clamp.test_clamp_double",
"test_clamp.test_clamp_double2",
"test_clamp.test_clamp_double4",
"test_clamp.test_clamp_double8",
"test_clamp.test_clamp_double16",
"test_clamp.test_clamp_double3",
"test_degrees_double",
"test_degrees2_double",
"test_degrees4_double",
"test_degrees8_double",
"test_degrees16_double",
"test_degrees3_double",
"test_fn.test_max_double",
"test_fn.test_max_double2",
"test_fn.test_max_double4",
"test_fn.test_max_double8",
"test_fn.test_max_double16",
"test_fn.test_max_double3",
"test_fn.test_min_double",
"test_fn.test_min_double2",
"test_fn.test_min_double4",
"test_fn.test_min_double8",
"test_fn.test_min_double16",
"test_fn.test_min_double3",
"test_radians_double",
"test_radians2_double",
"test_radians4_double",
"test_radians8_double",
"test_radians16_double",
"test_radians3_double",
"test_step_double",
"test_step2_double",
"test_step4_double",
"test_step8_double",
"test_step16_double",
"test_step3_double",
"test_sign_double",
"test_sign2_double",
"test_sign4_double",
"test_sign8_double",
"test_sign16_double",
"test_sign3_double",
};
log_info("test_commonfns_double\n");
return test_suite(device, size_t_width, folder, test_name, sizeof(test_name) / sizeof(const char *), "cl_khr_fp64");
}
bool test_conversions (cl_device_id device, cl_uint size_t_width, const char *folder)
{
static const char* test_name[] = {
"convert2_type_roundingmode_type_f",
"convert3_type_roundingmode_type_f",
"convert4_type_roundingmode_type_f",
"convert8_type_roundingmode_type_f",
"convert16_type_roundingmode_type_f",
"test_implicit_uchar_uchar",
"test_convert_uchar_uchar",
"test_convert_uchar_rte_uchar",
"test_convert_uchar_rtp_uchar",
"test_convert_uchar_rtn_uchar",
"test_convert_uchar_rtz_uchar",
"test_convert_uchar_sat_uchar",
"test_convert_uchar_sat_rte_uchar",
"test_convert_uchar_sat_rtp_uchar",
"test_convert_uchar_sat_rtn_uchar",
"test_convert_uchar_sat_rtz_uchar",
"test_implicit_uchar_char",
"test_convert_uchar_char",
"test_convert_uchar_rte_char",
"test_convert_uchar_rtp_char",
"test_convert_uchar_rtn_char",
"test_convert_uchar_rtz_char",
"test_convert_uchar_sat_char",
"test_convert_uchar_sat_rte_char",
"test_convert_uchar_sat_rtp_char",
"test_convert_uchar_sat_rtn_char",
"test_convert_uchar_sat_rtz_char",
"test_implicit_uchar_ushort",
"test_convert_uchar_ushort",
"test_convert_uchar_rte_ushort",
"test_convert_uchar_rtp_ushort",
"test_convert_uchar_rtn_ushort",
"test_convert_uchar_rtz_ushort",
"test_convert_uchar_sat_ushort",
"test_convert_uchar_sat_rte_ushort",
"test_convert_uchar_sat_rtp_ushort",
"test_convert_uchar_sat_rtn_ushort",
"test_convert_uchar_sat_rtz_ushort",
"test_implicit_uchar_short",
"test_convert_uchar_short",
"test_convert_uchar_rte_short",
"test_convert_uchar_rtp_short",
"test_convert_uchar_rtn_short",
"test_convert_uchar_rtz_short",
"test_convert_uchar_sat_short",
"test_convert_uchar_sat_rte_short",
"test_convert_uchar_sat_rtp_short",
"test_convert_uchar_sat_rtn_short",
"test_convert_uchar_sat_rtz_short",
"test_implicit_uchar_uint",
"test_convert_uchar_uint",
"test_convert_uchar_rte_uint",
"test_convert_uchar_rtp_uint",
"test_convert_uchar_rtn_uint",
"test_convert_uchar_rtz_uint",
"test_convert_uchar_sat_uint",
"test_convert_uchar_sat_rte_uint",
"test_convert_uchar_sat_rtp_uint",
"test_convert_uchar_sat_rtn_uint",
"test_convert_uchar_sat_rtz_uint",
"test_implicit_uchar_int",
"test_convert_uchar_int",
"test_convert_uchar_rte_int",
"test_convert_uchar_rtp_int",
"test_convert_uchar_rtn_int",
"test_convert_uchar_rtz_int",
"test_convert_uchar_sat_int",
"test_convert_uchar_sat_rte_int",
"test_convert_uchar_sat_rtp_int",
"test_convert_uchar_sat_rtn_int",
"test_convert_uchar_sat_rtz_int",
"test_implicit_uchar_float",
"test_convert_uchar_float",
"test_convert_uchar_rte_float",
"test_convert_uchar_rtp_float",
"test_convert_uchar_rtn_float",
"test_convert_uchar_rtz_float",
"test_convert_uchar_sat_float",
"test_convert_uchar_sat_rte_float",
"test_convert_uchar_sat_rtp_float",
"test_convert_uchar_sat_rtn_float",
"test_convert_uchar_sat_rtz_float",
"test_implicit_uchar_ulong",
"test_convert_uchar_ulong",
"test_convert_uchar_rte_ulong",
"test_convert_uchar_rtp_ulong",
"test_convert_uchar_rtn_ulong",
"test_convert_uchar_rtz_ulong",
"test_convert_uchar_sat_ulong",
"test_convert_uchar_sat_rte_ulong",
"test_convert_uchar_sat_rtp_ulong",
"test_convert_uchar_sat_rtn_ulong",
"test_convert_uchar_sat_rtz_ulong",
"test_implicit_uchar_long",
"test_convert_uchar_long",
"test_convert_uchar_rte_long",
"test_convert_uchar_rtp_long",
"test_convert_uchar_rtn_long",
"test_convert_uchar_rtz_long",
"test_convert_uchar_sat_long",
"test_convert_uchar_sat_rte_long",
"test_convert_uchar_sat_rtp_long",
"test_convert_uchar_sat_rtn_long",
"test_convert_uchar_sat_rtz_long",
"test_implicit_char_uchar",
"test_convert_char_uchar",
"test_convert_char_rte_uchar",
"test_convert_char_rtp_uchar",
"test_convert_char_rtn_uchar",
"test_convert_char_rtz_uchar",
"test_convert_char_sat_uchar",
"test_convert_char_sat_rte_uchar",
"test_convert_char_sat_rtp_uchar",
"test_convert_char_sat_rtn_uchar",
"test_convert_char_sat_rtz_uchar",
"test_implicit_char_char",
"test_convert_char_char",
"test_convert_char_rte_char",
"test_convert_char_rtp_char",
"test_convert_char_rtn_char",
"test_convert_char_rtz_char",
"test_convert_char_sat_char",
"test_convert_char_sat_rte_char",
"test_convert_char_sat_rtp_char",
"test_convert_char_sat_rtn_char",
"test_convert_char_sat_rtz_char",
"test_implicit_char_ushort",
"test_convert_char_ushort",
"test_convert_char_rte_ushort",
"test_convert_char_rtp_ushort",
"test_convert_char_rtn_ushort",
"test_convert_char_rtz_ushort",
"test_convert_char_sat_ushort",
"test_convert_char_sat_rte_ushort",
"test_convert_char_sat_rtp_ushort",
"test_convert_char_sat_rtn_ushort",
"test_convert_char_sat_rtz_ushort",
"test_implicit_char_short",
"test_convert_char_short",
"test_convert_char_rte_short",
"test_convert_char_rtp_short",
"test_convert_char_rtn_short",
"test_convert_char_rtz_short",
"test_convert_char_sat_short",
"test_convert_char_sat_rte_short",
"test_convert_char_sat_rtp_short",
"test_convert_char_sat_rtn_short",
"test_convert_char_sat_rtz_short",
"test_implicit_char_uint",
"test_convert_char_uint",
"test_convert_char_rte_uint",
"test_convert_char_rtp_uint",
"test_convert_char_rtn_uint",
"test_convert_char_rtz_uint",
"test_convert_char_sat_uint",
"test_convert_char_sat_rte_uint",
"test_convert_char_sat_rtp_uint",
"test_convert_char_sat_rtn_uint",
"test_convert_char_sat_rtz_uint",
"test_implicit_char_int",
"test_convert_char_int",
"test_convert_char_rte_int",
"test_convert_char_rtp_int",
"test_convert_char_rtn_int",
"test_convert_char_rtz_int",
"test_convert_char_sat_int",
"test_convert_char_sat_rte_int",
"test_convert_char_sat_rtp_int",
"test_convert_char_sat_rtn_int",
"test_convert_char_sat_rtz_int",
"test_implicit_char_float",
"test_convert_char_float",
"test_convert_char_rte_float",
"test_convert_char_rtp_float",
"test_convert_char_rtn_float",
"test_convert_char_rtz_float",
"test_convert_char_sat_float",
"test_convert_char_sat_rte_float",
"test_convert_char_sat_rtp_float",
"test_convert_char_sat_rtn_float",
"test_convert_char_sat_rtz_float",
"test_implicit_char_ulong",
"test_convert_char_ulong",
"test_convert_char_rte_ulong",
"test_convert_char_rtp_ulong",
"test_convert_char_rtn_ulong",
"test_convert_char_rtz_ulong",
"test_convert_char_sat_ulong",
"test_convert_char_sat_rte_ulong",
"test_convert_char_sat_rtp_ulong",
"test_convert_char_sat_rtn_ulong",
"test_convert_char_sat_rtz_ulong",
"test_implicit_char_long",
"test_convert_char_long",
"test_convert_char_rte_long",
"test_convert_char_rtp_long",
"test_convert_char_rtn_long",
"test_convert_char_rtz_long",
"test_convert_char_sat_long",
"test_convert_char_sat_rte_long",
"test_convert_char_sat_rtp_long",
"test_convert_char_sat_rtn_long",
"test_convert_char_sat_rtz_long",
"test_implicit_ushort_uchar",
"test_convert_ushort_uchar",
"test_convert_ushort_rte_uchar",
"test_convert_ushort_rtp_uchar",
"test_convert_ushort_rtn_uchar",
"test_convert_ushort_rtz_uchar",
"test_convert_ushort_sat_uchar",
"test_convert_ushort_sat_rte_uchar",
"test_convert_ushort_sat_rtp_uchar",
"test_convert_ushort_sat_rtn_uchar",
"test_convert_ushort_sat_rtz_uchar",
"test_implicit_ushort_char",
"test_convert_ushort_char",
"test_convert_ushort_rte_char",
"test_convert_ushort_rtp_char",
"test_convert_ushort_rtn_char",
"test_convert_ushort_rtz_char",
"test_convert_ushort_sat_char",
"test_convert_ushort_sat_rte_char",
"test_convert_ushort_sat_rtp_char",
"test_convert_ushort_sat_rtn_char",
"test_convert_ushort_sat_rtz_char",
"test_implicit_ushort_ushort",
"test_convert_ushort_ushort",
"test_convert_ushort_rte_ushort",
"test_convert_ushort_rtp_ushort",
"test_convert_ushort_rtn_ushort",
"test_convert_ushort_rtz_ushort",
"test_convert_ushort_sat_ushort",
"test_convert_ushort_sat_rte_ushort",
"test_convert_ushort_sat_rtp_ushort",
"test_convert_ushort_sat_rtn_ushort",
"test_convert_ushort_sat_rtz_ushort",
"test_implicit_ushort_short",
"test_convert_ushort_short",
"test_convert_ushort_rte_short",
"test_convert_ushort_rtp_short",
"test_convert_ushort_rtn_short",
"test_convert_ushort_rtz_short",
"test_convert_ushort_sat_short",
"test_convert_ushort_sat_rte_short",
"test_convert_ushort_sat_rtp_short",
"test_convert_ushort_sat_rtn_short",
"test_convert_ushort_sat_rtz_short",
"test_implicit_ushort_uint",
"test_convert_ushort_uint",
"test_convert_ushort_rte_uint",
"test_convert_ushort_rtp_uint",
"test_convert_ushort_rtn_uint",
"test_convert_ushort_rtz_uint",
"test_convert_ushort_sat_uint",
"test_convert_ushort_sat_rte_uint",
"test_convert_ushort_sat_rtp_uint",
"test_convert_ushort_sat_rtn_uint",
"test_convert_ushort_sat_rtz_uint",
"test_implicit_ushort_int",
"test_convert_ushort_int",
"test_convert_ushort_rte_int",
"test_convert_ushort_rtp_int",
"test_convert_ushort_rtn_int",
"test_convert_ushort_rtz_int",
"test_convert_ushort_sat_int",
"test_convert_ushort_sat_rte_int",
"test_convert_ushort_sat_rtp_int",
"test_convert_ushort_sat_rtn_int",
"test_convert_ushort_sat_rtz_int",
"test_implicit_ushort_float",
"test_convert_ushort_float",
"test_convert_ushort_rte_float",
"test_convert_ushort_rtp_float",
"test_convert_ushort_rtn_float",
"test_convert_ushort_rtz_float",
"test_convert_ushort_sat_float",
"test_convert_ushort_sat_rte_float",
"test_convert_ushort_sat_rtp_float",
"test_convert_ushort_sat_rtn_float",
"test_convert_ushort_sat_rtz_float",
"test_implicit_ushort_ulong",
"test_convert_ushort_ulong",
"test_convert_ushort_rte_ulong",
"test_convert_ushort_rtp_ulong",
"test_convert_ushort_rtn_ulong",
"test_convert_ushort_rtz_ulong",
"test_convert_ushort_sat_ulong",
"test_convert_ushort_sat_rte_ulong",
"test_convert_ushort_sat_rtp_ulong",
"test_convert_ushort_sat_rtn_ulong",
"test_convert_ushort_sat_rtz_ulong",
"test_implicit_ushort_long",
"test_convert_ushort_long",
"test_convert_ushort_rte_long",
"test_convert_ushort_rtp_long",
"test_convert_ushort_rtn_long",
"test_convert_ushort_rtz_long",
"test_convert_ushort_sat_long",
"test_convert_ushort_sat_rte_long",
"test_convert_ushort_sat_rtp_long",
"test_convert_ushort_sat_rtn_long",
"test_convert_ushort_sat_rtz_long",
"test_implicit_short_uchar",
"test_convert_short_uchar",
"test_convert_short_rte_uchar",
"test_convert_short_rtp_uchar",
"test_convert_short_rtn_uchar",
"test_convert_short_rtz_uchar",
"test_convert_short_sat_uchar",
"test_convert_short_sat_rte_uchar",
"test_convert_short_sat_rtp_uchar",
"test_convert_short_sat_rtn_uchar",
"test_convert_short_sat_rtz_uchar",
"test_implicit_short_char",
"test_convert_short_char",
"test_convert_short_rte_char",
"test_convert_short_rtp_char",
"test_convert_short_rtn_char",
"test_convert_short_rtz_char",
"test_convert_short_sat_char",
"test_convert_short_sat_rte_char",
"test_convert_short_sat_rtp_char",
"test_convert_short_sat_rtn_char",
"test_convert_short_sat_rtz_char",
"test_implicit_short_ushort",
"test_convert_short_ushort",
"test_convert_short_rte_ushort",
"test_convert_short_rtp_ushort",
"test_convert_short_rtn_ushort",
"test_convert_short_rtz_ushort",
"test_convert_short_sat_ushort",
"test_convert_short_sat_rte_ushort",
"test_convert_short_sat_rtp_ushort",
"test_convert_short_sat_rtn_ushort",
"test_convert_short_sat_rtz_ushort",
"test_implicit_short_short",
"test_convert_short_short",
"test_convert_short_rte_short",
"test_convert_short_rtp_short",
"test_convert_short_rtn_short",
"test_convert_short_rtz_short",
"test_convert_short_sat_short",
"test_convert_short_sat_rte_short",
"test_convert_short_sat_rtp_short",
"test_convert_short_sat_rtn_short",
"test_convert_short_sat_rtz_short",
"test_implicit_short_uint",
"test_convert_short_uint",
"test_convert_short_rte_uint",
"test_convert_short_rtp_uint",
"test_convert_short_rtn_uint",
"test_convert_short_rtz_uint",
"test_convert_short_sat_uint",
"test_convert_short_sat_rte_uint",
"test_convert_short_sat_rtp_uint",
"test_convert_short_sat_rtn_uint",
"test_convert_short_sat_rtz_uint",
"test_implicit_short_int",
"test_convert_short_int",
"test_convert_short_rte_int",
"test_convert_short_rtp_int",
"test_convert_short_rtn_int",
"test_convert_short_rtz_int",
"test_convert_short_sat_int",
"test_convert_short_sat_rte_int",
"test_convert_short_sat_rtp_int",
"test_convert_short_sat_rtn_int",
"test_convert_short_sat_rtz_int",
"test_implicit_short_float",
"test_convert_short_float",
"test_convert_short_rte_float",
"test_convert_short_rtp_float",
"test_convert_short_rtn_float",
"test_convert_short_rtz_float",
"test_convert_short_sat_float",
"test_convert_short_sat_rte_float",
"test_convert_short_sat_rtp_float",
"test_convert_short_sat_rtn_float",
"test_convert_short_sat_rtz_float",
"test_implicit_short_ulong",
"test_convert_short_ulong",
"test_convert_short_rte_ulong",
"test_convert_short_rtp_ulong",
"test_convert_short_rtn_ulong",
"test_convert_short_rtz_ulong",
"test_convert_short_sat_ulong",
"test_convert_short_sat_rte_ulong",
"test_convert_short_sat_rtp_ulong",
"test_convert_short_sat_rtn_ulong",
"test_convert_short_sat_rtz_ulong",
"test_implicit_short_long",
"test_convert_short_long",
"test_convert_short_rte_long",
"test_convert_short_rtp_long",
"test_convert_short_rtn_long",
"test_convert_short_rtz_long",
"test_convert_short_sat_long",
"test_convert_short_sat_rte_long",
"test_convert_short_sat_rtp_long",
"test_convert_short_sat_rtn_long",
"test_convert_short_sat_rtz_long",
"test_implicit_uint_uchar",
"test_convert_uint_uchar",
"test_convert_uint_rte_uchar",
"test_convert_uint_rtp_uchar",
"test_convert_uint_rtn_uchar",
"test_convert_uint_rtz_uchar",
"test_convert_uint_sat_uchar",
"test_convert_uint_sat_rte_uchar",
"test_convert_uint_sat_rtp_uchar",
"test_convert_uint_sat_rtn_uchar",
"test_convert_uint_sat_rtz_uchar",
"test_implicit_uint_char",
"test_convert_uint_char",
"test_convert_uint_rte_char",
"test_convert_uint_rtp_char",
"test_convert_uint_rtn_char",
"test_convert_uint_rtz_char",
"test_convert_uint_sat_char",
"test_convert_uint_sat_rte_char",
"test_convert_uint_sat_rtp_char",
"test_convert_uint_sat_rtn_char",
"test_convert_uint_sat_rtz_char",
"test_implicit_uint_ushort",
"test_convert_uint_ushort",
"test_convert_uint_rte_ushort",
"test_convert_uint_rtp_ushort",
"test_convert_uint_rtn_ushort",
"test_convert_uint_rtz_ushort",
"test_convert_uint_sat_ushort",
"test_convert_uint_sat_rte_ushort",
"test_convert_uint_sat_rtp_ushort",
"test_convert_uint_sat_rtn_ushort",
"test_convert_uint_sat_rtz_ushort",
"test_implicit_uint_short",
"test_convert_uint_short",
"test_convert_uint_rte_short",
"test_convert_uint_rtp_short",
"test_convert_uint_rtn_short",
"test_convert_uint_rtz_short",
"test_convert_uint_sat_short",
"test_convert_uint_sat_rte_short",
"test_convert_uint_sat_rtp_short",
"test_convert_uint_sat_rtn_short",
"test_convert_uint_sat_rtz_short",
"test_implicit_uint_uint",
"test_convert_uint_uint",
"test_convert_uint_rte_uint",
"test_convert_uint_rtp_uint",
"test_convert_uint_rtn_uint",
"test_convert_uint_rtz_uint",
"test_convert_uint_sat_uint",
"test_convert_uint_sat_rte_uint",
"test_convert_uint_sat_rtp_uint",
"test_convert_uint_sat_rtn_uint",
"test_convert_uint_sat_rtz_uint",
"test_implicit_uint_int",
"test_convert_uint_int",
"test_convert_uint_rte_int",
"test_convert_uint_rtp_int",
"test_convert_uint_rtn_int",
"test_convert_uint_rtz_int",
"test_convert_uint_sat_int",
"test_convert_uint_sat_rte_int",
"test_convert_uint_sat_rtp_int",
"test_convert_uint_sat_rtn_int",
"test_convert_uint_sat_rtz_int",
"test_implicit_uint_float",
"test_convert_uint_float",
"test_convert_uint_rte_float",
"test_convert_uint_rtp_float",
"test_convert_uint_rtn_float",
"test_convert_uint_rtz_float",
"test_convert_uint_sat_float",
"test_convert_uint_sat_rte_float",
"test_convert_uint_sat_rtp_float",
"test_convert_uint_sat_rtn_float",
"test_convert_uint_sat_rtz_float",
"test_implicit_uint_ulong",
"test_convert_uint_ulong",
"test_convert_uint_rte_ulong",
"test_convert_uint_rtp_ulong",
"test_convert_uint_rtn_ulong",
"test_convert_uint_rtz_ulong",
"test_convert_uint_sat_ulong",
"test_convert_uint_sat_rte_ulong",
"test_convert_uint_sat_rtp_ulong",
"test_convert_uint_sat_rtn_ulong",
"test_convert_uint_sat_rtz_ulong",
"test_implicit_uint_long",
"test_convert_uint_long",
"test_convert_uint_rte_long",
"test_convert_uint_rtp_long",
"test_convert_uint_rtn_long",
"test_convert_uint_rtz_long",
"test_convert_uint_sat_long",
"test_convert_uint_sat_rte_long",
"test_convert_uint_sat_rtp_long",
"test_convert_uint_sat_rtn_long",
"test_convert_uint_sat_rtz_long",
"test_implicit_int_uchar",
"test_convert_int_uchar",
"test_convert_int_rte_uchar",
"test_convert_int_rtp_uchar",
"test_convert_int_rtn_uchar",
"test_convert_int_rtz_uchar",
"test_convert_int_sat_uchar",
"test_convert_int_sat_rte_uchar",
"test_convert_int_sat_rtp_uchar",
"test_convert_int_sat_rtn_uchar",
"test_convert_int_sat_rtz_uchar",
"test_implicit_int_char",
"test_convert_int_char",
"test_convert_int_rte_char",
"test_convert_int_rtp_char",
"test_convert_int_rtn_char",
"test_convert_int_rtz_char",
"test_convert_int_sat_char",
"test_convert_int_sat_rte_char",
"test_convert_int_sat_rtp_char",
"test_convert_int_sat_rtn_char",
"test_convert_int_sat_rtz_char",
"test_implicit_int_ushort",
"test_convert_int_ushort",
"test_convert_int_rte_ushort",
"test_convert_int_rtp_ushort",
"test_convert_int_rtn_ushort",
"test_convert_int_rtz_ushort",
"test_convert_int_sat_ushort",
"test_convert_int_sat_rte_ushort",
"test_convert_int_sat_rtp_ushort",
"test_convert_int_sat_rtn_ushort",
"test_convert_int_sat_rtz_ushort",
"test_implicit_int_short",
"test_convert_int_short",
"test_convert_int_rte_short",
"test_convert_int_rtp_short",
"test_convert_int_rtn_short",
"test_convert_int_rtz_short",
"test_convert_int_sat_short",
"test_convert_int_sat_rte_short",
"test_convert_int_sat_rtp_short",
"test_convert_int_sat_rtn_short",
"test_convert_int_sat_rtz_short",
"test_implicit_int_uint",
"test_convert_int_uint",
"test_convert_int_rte_uint",
"test_convert_int_rtp_uint",
"test_convert_int_rtn_uint",
"test_convert_int_rtz_uint",
"test_convert_int_sat_uint",
"test_convert_int_sat_rte_uint",
"test_convert_int_sat_rtp_uint",
"test_convert_int_sat_rtn_uint",
"test_convert_int_sat_rtz_uint",
"test_implicit_int_int",
"test_convert_int_int",
"test_convert_int_rte_int",
"test_convert_int_rtp_int",
"test_convert_int_rtn_int",
"test_convert_int_rtz_int",
"test_convert_int_sat_int",
"test_convert_int_sat_rte_int",
"test_convert_int_sat_rtp_int",
"test_convert_int_sat_rtn_int",
"test_convert_int_sat_rtz_int",
"test_implicit_int_float",
"test_convert_int_float",
"test_convert_int_rte_float",
"test_convert_int_rtp_float",
"test_convert_int_rtn_float",
"test_convert_int_rtz_float",
"test_convert_int_sat_float",
"test_convert_int_sat_rte_float",
"test_convert_int_sat_rtp_float",
"test_convert_int_sat_rtn_float",
"test_convert_int_sat_rtz_float",
"test_implicit_int_ulong",
"test_convert_int_ulong",
"test_convert_int_rte_ulong",
"test_convert_int_rtp_ulong",
"test_convert_int_rtn_ulong",
"test_convert_int_rtz_ulong",
"test_convert_int_sat_ulong",
"test_convert_int_sat_rte_ulong",
"test_convert_int_sat_rtp_ulong",
"test_convert_int_sat_rtn_ulong",
"test_convert_int_sat_rtz_ulong",
"test_implicit_int_long",
"test_convert_int_long",
"test_convert_int_rte_long",
"test_convert_int_rtp_long",
"test_convert_int_rtn_long",
"test_convert_int_rtz_long",
"test_convert_int_sat_long",
"test_convert_int_sat_rte_long",
"test_convert_int_sat_rtp_long",
"test_convert_int_sat_rtn_long",
"test_convert_int_sat_rtz_long",
"test_implicit_float_uchar",
"test_convert_float_uchar",
"test_convert_float_rte_uchar",
"test_convert_float_rtp_uchar",
"test_convert_float_rtn_uchar",
"test_convert_float_rtz_uchar",
"test_implicit_float_char",
"test_convert_float_char",
"test_convert_float_rte_char",
"test_convert_float_rtp_char",
"test_convert_float_rtn_char",
"test_convert_float_rtz_char",
"test_implicit_float_ushort",
"test_convert_float_ushort",
"test_convert_float_rte_ushort",
"test_convert_float_rtp_ushort",
"test_convert_float_rtn_ushort",
"test_convert_float_rtz_ushort",
"test_implicit_float_short",
"test_convert_float_short",
"test_convert_float_rte_short",
"test_convert_float_rtp_short",
"test_convert_float_rtn_short",
"test_convert_float_rtz_short",
"test_implicit_float_uint",
"test_convert_float_uint",
"test_convert_float_rte_uint",
"test_convert_float_rtp_uint",
"test_convert_float_rtn_uint",
"test_convert_float_rtz_uint",
"test_implicit_float_int",
"test_convert_float_int",
"test_convert_float_rte_int",
"test_convert_float_rtp_int",
"test_convert_float_rtn_int",
"test_convert_float_rtz_int",
"test_implicit_float_float",
"test_convert_float_float",
"test_convert_float_rte_float",
"test_convert_float_rtp_float",
"test_convert_float_rtn_float",
"test_convert_float_rtz_float",
"test_implicit_float_ulong",
"test_convert_float_ulong",
"test_convert_float_rte_ulong",
"test_convert_float_rtp_ulong",
"test_convert_float_rtn_ulong",
"test_convert_float_rtz_ulong",
"test_implicit_float_long",
"test_convert_float_long",
"test_convert_float_rte_long",
"test_convert_float_rtp_long",
"test_convert_float_rtn_long",
"test_convert_float_rtz_long",
"test_implicit_ulong_uchar",
"test_convert_ulong_uchar",
"test_convert_ulong_rte_uchar",
"test_convert_ulong_rtp_uchar",
"test_convert_ulong_rtn_uchar",
"test_convert_ulong_rtz_uchar",
"test_convert_ulong_sat_uchar",
"test_convert_ulong_sat_rte_uchar",
"test_convert_ulong_sat_rtp_uchar",
"test_convert_ulong_sat_rtn_uchar",
"test_convert_ulong_sat_rtz_uchar",
"test_implicit_ulong_char",
"test_convert_ulong_char",
"test_convert_ulong_rte_char",
"test_convert_ulong_rtp_char",
"test_convert_ulong_rtn_char",
"test_convert_ulong_rtz_char",
"test_convert_ulong_sat_char",
"test_convert_ulong_sat_rte_char",
"test_convert_ulong_sat_rtp_char",
"test_convert_ulong_sat_rtn_char",
"test_convert_ulong_sat_rtz_char",
"test_implicit_ulong_ushort",
"test_convert_ulong_ushort",
"test_convert_ulong_rte_ushort",
"test_convert_ulong_rtp_ushort",
"test_convert_ulong_rtn_ushort",
"test_convert_ulong_rtz_ushort",
"test_convert_ulong_sat_ushort",
"test_convert_ulong_sat_rte_ushort",
"test_convert_ulong_sat_rtp_ushort",
"test_convert_ulong_sat_rtn_ushort",
"test_convert_ulong_sat_rtz_ushort",
"test_implicit_ulong_short",
"test_convert_ulong_short",
"test_convert_ulong_rte_short",
"test_convert_ulong_rtp_short",
"test_convert_ulong_rtn_short",
"test_convert_ulong_rtz_short",
"test_convert_ulong_sat_short",
"test_convert_ulong_sat_rte_short",
"test_convert_ulong_sat_rtp_short",
"test_convert_ulong_sat_rtn_short",
"test_convert_ulong_sat_rtz_short",
"test_implicit_ulong_uint",
"test_convert_ulong_uint",
"test_convert_ulong_rte_uint",
"test_convert_ulong_rtp_uint",
"test_convert_ulong_rtn_uint",
"test_convert_ulong_rtz_uint",
"test_convert_ulong_sat_uint",
"test_convert_ulong_sat_rte_uint",
"test_convert_ulong_sat_rtp_uint",
"test_convert_ulong_sat_rtn_uint",
"test_convert_ulong_sat_rtz_uint",
"test_implicit_ulong_int",
"test_convert_ulong_int",
"test_convert_ulong_rte_int",
"test_convert_ulong_rtp_int",
"test_convert_ulong_rtn_int",
"test_convert_ulong_rtz_int",
"test_convert_ulong_sat_int",
"test_convert_ulong_sat_rte_int",
"test_convert_ulong_sat_rtp_int",
"test_convert_ulong_sat_rtn_int",
"test_convert_ulong_sat_rtz_int",
"test_implicit_ulong_float",
"test_convert_ulong_float",
"test_convert_ulong_rte_float",
"test_convert_ulong_rtp_float",
"test_convert_ulong_rtn_float",
"test_convert_ulong_rtz_float",
"test_convert_ulong_sat_float",
"test_convert_ulong_sat_rte_float",
"test_convert_ulong_sat_rtp_float",
"test_convert_ulong_sat_rtn_float",
"test_convert_ulong_sat_rtz_float",
"test_implicit_ulong_ulong",
"test_convert_ulong_ulong",
"test_convert_ulong_rte_ulong",
"test_convert_ulong_rtp_ulong",
"test_convert_ulong_rtn_ulong",
"test_convert_ulong_rtz_ulong",
"test_convert_ulong_sat_ulong",
"test_convert_ulong_sat_rte_ulong",
"test_convert_ulong_sat_rtp_ulong",
"test_convert_ulong_sat_rtn_ulong",
"test_convert_ulong_sat_rtz_ulong",
"test_implicit_ulong_long",
"test_convert_ulong_long",
"test_convert_ulong_rte_long",
"test_convert_ulong_rtp_long",
"test_convert_ulong_rtn_long",
"test_convert_ulong_rtz_long",
"test_convert_ulong_sat_long",
"test_convert_ulong_sat_rte_long",
"test_convert_ulong_sat_rtp_long",
"test_convert_ulong_sat_rtn_long",
"test_convert_ulong_sat_rtz_long",
"test_implicit_long_uchar",
"test_convert_long_uchar",
"test_convert_long_rte_uchar",
"test_convert_long_rtp_uchar",
"test_convert_long_rtn_uchar",
"test_convert_long_rtz_uchar",
"test_convert_long_sat_uchar",
"test_convert_long_sat_rte_uchar",
"test_convert_long_sat_rtp_uchar",
"test_convert_long_sat_rtn_uchar",
"test_convert_long_sat_rtz_uchar",
"test_implicit_long_char",
"test_convert_long_char",
"test_convert_long_rte_char",
"test_convert_long_rtp_char",
"test_convert_long_rtn_char",
"test_convert_long_rtz_char",
"test_convert_long_sat_char",
"test_convert_long_sat_rte_char",
"test_convert_long_sat_rtp_char",
"test_convert_long_sat_rtn_char",
"test_convert_long_sat_rtz_char",
"test_implicit_long_ushort",
"test_convert_long_ushort",
"test_convert_long_rte_ushort",
"test_convert_long_rtp_ushort",
"test_convert_long_rtn_ushort",
"test_convert_long_rtz_ushort",
"test_convert_long_sat_ushort",
"test_convert_long_sat_rte_ushort",
"test_convert_long_sat_rtp_ushort",
"test_convert_long_sat_rtn_ushort",
"test_convert_long_sat_rtz_ushort",
"test_implicit_long_short",
"test_convert_long_short",
"test_convert_long_rte_short",
"test_convert_long_rtp_short",
"test_convert_long_rtn_short",
"test_convert_long_rtz_short",
"test_convert_long_sat_short",
"test_convert_long_sat_rte_short",
"test_convert_long_sat_rtp_short",
"test_convert_long_sat_rtn_short",
"test_convert_long_sat_rtz_short",
"test_implicit_long_uint",
"test_convert_long_uint",
"test_convert_long_rte_uint",
"test_convert_long_rtp_uint",
"test_convert_long_rtn_uint",
"test_convert_long_rtz_uint",
"test_convert_long_sat_uint",
"test_convert_long_sat_rte_uint",
"test_convert_long_sat_rtp_uint",
"test_convert_long_sat_rtn_uint",
"test_convert_long_sat_rtz_uint",
"test_implicit_long_int",
"test_convert_long_int",
"test_convert_long_rte_int",
"test_convert_long_rtp_int",
"test_convert_long_rtn_int",
"test_convert_long_rtz_int",
"test_convert_long_sat_int",
"test_convert_long_sat_rte_int",
"test_convert_long_sat_rtp_int",
"test_convert_long_sat_rtn_int",
"test_convert_long_sat_rtz_int",
"test_implicit_long_float",
"test_convert_long_float",
"test_convert_long_rte_float",
"test_convert_long_rtp_float",
"test_convert_long_rtn_float",
"test_convert_long_rtz_float",
"test_convert_long_sat_float",
"test_convert_long_sat_rte_float",
"test_convert_long_sat_rtp_float",
"test_convert_long_sat_rtn_float",
"test_convert_long_sat_rtz_float",
"test_implicit_long_ulong",
"test_convert_long_ulong",
"test_convert_long_rte_ulong",
"test_convert_long_rtp_ulong",
"test_convert_long_rtn_ulong",
"test_convert_long_rtz_ulong",
"test_convert_long_sat_ulong",
"test_convert_long_sat_rte_ulong",
"test_convert_long_sat_rtp_ulong",
"test_convert_long_sat_rtn_ulong",
"test_convert_long_sat_rtz_ulong",
"test_implicit_long_long",
"test_convert_long_long",
"test_convert_long_rte_long",
"test_convert_long_rtp_long",
"test_convert_long_rtn_long",
"test_convert_long_rtz_long",
"test_convert_long_sat_long",
"test_convert_long_sat_rte_long",
"test_convert_long_sat_rtp_long",
"test_convert_long_sat_rtn_long",
"test_convert_long_sat_rtz_long",
"long_convert2_type_roundingmode_type_f",
"long_convert3_type_roundingmode_type_f",
"long_convert4_type_roundingmode_type_f",
"long_convert8_type_roundingmode_type_f",
"long_convert16_type_roundingmode_type_f",
};
log_info("test_conversions\n");
return test_suite(device, size_t_width, folder, test_name, sizeof(test_name) / sizeof(const char *), "");
}
bool test_conversions_double (cl_device_id device, cl_uint size_t_width, const char *folder)
{
static const char* test_name[] = {
"convert2_type_roundingmode_type_d",
"convert3_type_roundingmode_type_d",
"convert4_type_roundingmode_type_d",
"convert8_type_roundingmode_type_d",
"convert16_type_roundingmode_type_d",
"test_implicit_uchar_double",
"test_convert_uchar_double",
"test_convert_uchar_rte_double",
"test_convert_uchar_rtp_double",
"test_convert_uchar_rtn_double",
"test_convert_uchar_rtz_double",
"test_convert_uchar_sat_double",
"test_convert_uchar_sat_rte_double",
"test_convert_uchar_sat_rtp_double",
"test_convert_uchar_sat_rtn_double",
"test_convert_uchar_sat_rtz_double",
"test_implicit_char_double",
"test_convert_char_double",
"test_convert_char_rte_double",
"test_convert_char_rtp_double",
"test_convert_char_rtn_double",
"test_convert_char_rtz_double",
"test_convert_char_sat_double",
"test_convert_char_sat_rte_double",
"test_convert_char_sat_rtp_double",
"test_convert_char_sat_rtn_double",
"test_convert_char_sat_rtz_double",
"test_implicit_ushort_double",
"test_convert_ushort_double",
"test_convert_ushort_rte_double",
"test_convert_ushort_rtp_double",
"test_convert_ushort_rtn_double",
"test_convert_ushort_rtz_double",
"test_convert_ushort_sat_double",
"test_convert_ushort_sat_rte_double",
"test_convert_ushort_sat_rtp_double",
"test_convert_ushort_sat_rtn_double",
"test_convert_ushort_sat_rtz_double",
"test_implicit_short_double",
"test_convert_short_double",
"test_convert_short_rte_double",
"test_convert_short_rtp_double",
"test_convert_short_rtn_double",
"test_convert_short_rtz_double",
"test_convert_short_sat_double",
"test_convert_short_sat_rte_double",
"test_convert_short_sat_rtp_double",
"test_convert_short_sat_rtn_double",
"test_convert_short_sat_rtz_double",
"test_implicit_uint_double",
"test_convert_uint_double",
"test_convert_uint_rte_double",
"test_convert_uint_rtp_double",
"test_convert_uint_rtn_double",
"test_convert_uint_rtz_double",
"test_convert_uint_sat_double",
"test_convert_uint_sat_rte_double",
"test_convert_uint_sat_rtp_double",
"test_convert_uint_sat_rtn_double",
"test_convert_uint_sat_rtz_double",
"test_implicit_int_double",
"test_convert_int_double",
"test_convert_int_rte_double",
"test_convert_int_rtp_double",
"test_convert_int_rtn_double",
"test_convert_int_rtz_double",
"test_convert_int_sat_double",
"test_convert_int_sat_rte_double",
"test_convert_int_sat_rtp_double",
"test_convert_int_sat_rtn_double",
"test_convert_int_sat_rtz_double",
"test_implicit_float_double",
"test_convert_float_double",
"test_convert_float_rte_double",
"test_convert_float_rtp_double",
"test_convert_float_rtn_double",
"test_convert_float_rtz_double",
"test_implicit_double_uchar",
"test_convert_double_uchar",
"test_convert_double_rte_uchar",
"test_convert_double_rtp_uchar",
"test_convert_double_rtn_uchar",
"test_convert_double_rtz_uchar",
"test_implicit_double_char",
"test_convert_double_char",
"test_convert_double_rte_char",
"test_convert_double_rtp_char",
"test_convert_double_rtn_char",
"test_convert_double_rtz_char",
"test_implicit_double_ushort",
"test_convert_double_ushort",
"test_convert_double_rte_ushort",
"test_convert_double_rtp_ushort",
"test_convert_double_rtn_ushort",
"test_convert_double_rtz_ushort",
"test_implicit_double_short",
"test_convert_double_short",
"test_convert_double_rte_short",
"test_convert_double_rtp_short",
"test_convert_double_rtn_short",
"test_convert_double_rtz_short",
"test_implicit_double_uint",
"test_convert_double_uint",
"test_convert_double_rte_uint",
"test_convert_double_rtp_uint",
"test_convert_double_rtn_uint",
"test_convert_double_rtz_uint",
"test_implicit_double_int",
"test_convert_double_int",
"test_convert_double_rte_int",
"test_convert_double_rtp_int",
"test_convert_double_rtn_int",
"test_convert_double_rtz_int",
"test_implicit_double_float",
"test_convert_double_float",
"test_convert_double_rte_float",
"test_convert_double_rtp_float",
"test_convert_double_rtn_float",
"test_convert_double_rtz_float",
"test_implicit_double_double",
"test_convert_double_double",
"test_convert_double_rte_double",
"test_convert_double_rtp_double",
"test_convert_double_rtn_double",
"test_convert_double_rtz_double",
"test_implicit_double_ulong",
"test_convert_double_ulong",
"test_convert_double_rte_ulong",
"test_convert_double_rtp_ulong",
"test_convert_double_rtn_ulong",
"test_convert_double_rtz_ulong",
"test_implicit_double_long",
"test_convert_double_long",
"test_convert_double_rte_long",
"test_convert_double_rtp_long",
"test_convert_double_rtn_long",
"test_convert_double_rtz_long",
"test_implicit_ulong_double",
"test_convert_ulong_double",
"test_convert_ulong_rte_double",
"test_convert_ulong_rtp_double",
"test_convert_ulong_rtn_double",
"test_convert_ulong_rtz_double",
"test_convert_ulong_sat_double",
"test_convert_ulong_sat_rte_double",
"test_convert_ulong_sat_rtp_double",
"test_convert_ulong_sat_rtn_double",
"test_convert_ulong_sat_rtz_double",
"test_implicit_long_double",
"test_convert_long_double",
"test_convert_long_rte_double",
"test_convert_long_rtp_double",
"test_convert_long_rtn_double",
"test_convert_long_rtz_double",
"test_convert_long_sat_double",
"test_convert_long_sat_rte_double",
"test_convert_long_sat_rtp_double",
"test_convert_long_sat_rtn_double",
"test_convert_long_sat_rtz_double",
};
log_info("test_conversions_double\n");
return test_suite(device, size_t_width, folder, test_name, sizeof(test_name) / sizeof(const char *), "cl_khr_fp64");
}
bool test_geometrics (cl_device_id device, cl_uint size_t_width, const char *folder)
{
static const char* test_name[] = {
"sample_test.geom_cross_float3",
"sample_test.geom_cross_float4",
"sample_test.geom_dot_float",
"sample_test.geom_dot_float2",
"sample_test.geom_dot_float3",
"sample_test.geom_dot_float4",
"sample_test.geom_distance_float",
"sample_test.geom_distance_float2",
"sample_test.geom_distance_float3",
"sample_test.geom_distance_float4",
"sample_test.geom_fast_distance_float",
"sample_test.geom_fast_distance_float2",
"sample_test.geom_fast_distance_float3",
"sample_test.geom_fast_distance_float4",
"sample_test.geom_length_float",
"sample_test.geom_length_float2",
"sample_test.geom_length_float3",
"sample_test.geom_length_float4",
"sample_test.geom_fast_length_float",
"sample_test.geom_fast_length_float2",
"sample_test.geom_fast_length_float3",
"sample_test.geom_fast_length_float4",
"sample_test.geom_normalize_float",
"sample_test.geom_normalize_float2",
"sample_test.geom_normalize_float3",
"sample_test.geom_normalize_float4",
"sample_test.geom_fast_normalize_float",
"sample_test.geom_fast_normalize_float2",
"sample_test.geom_fast_normalize_float3",
"sample_test.geom_fast_normalize_float4",
};
log_info("test_geometrics\n");
return test_suite(device, size_t_width, folder, test_name, sizeof(test_name) / sizeof(const char *), "");
}
bool test_geometrics_double (cl_device_id device, cl_uint size_t_width, const char *folder)
{
static const char* test_name[] = {
"sample_test.geom_cross_double3",
"sample_test.geom_cross_double4",
"sample_test.geom_dot_double",
"sample_test.geom_dot_double2",
"sample_test.geom_dot_double3",
"sample_test.geom_dot_double4",
"sample_test.geom_distance_double",
"sample_test.geom_distance_double2",
"sample_test.geom_distance_double3",
"sample_test.geom_distance_double4",
"sample_test.geom_length_double",
"sample_test.geom_length_double2",
"sample_test.geom_length_double3",
"sample_test.geom_length_double4",
"sample_test.geom_normalize_double",
"sample_test.geom_normalize_double2",
"sample_test.geom_normalize_double3",
"sample_test.geom_normalize_double4",
};
log_info("test_geometrics_double\n");
return test_suite(device, size_t_width, folder, test_name, sizeof(test_name) / sizeof(const char *), "cl_khr_fp64");
}
bool test_half (cl_device_id device, cl_uint size_t_width, const char *folder)
{
static const char* test_name[] = {
"test.vload_half_global",
"test.vload_half_private",
"test.vload_half_local",
"test.vload_half_constant",
"test.vload_half2_global",
"test.vload_half2_private",
"test.vload_half2_local",
"test.vload_half2_constant",
"test.vload_half4_global",
"test.vload_half4_private",
"test.vload_half4_local",
"test.vload_half4_constant",
"test.vload_half8_global",
"test.vload_half8_private",
"test.vload_half8_local",
"test.vload_half8_constant",
"test.vload_half16_global",
"test.vload_half16_private",
"test.vload_half16_local",
"test.vload_half16_constant",
"test.vload_half3_global",
"test.vload_half3_private",
"test.vload_half3_local",
"test.vload_half3_constant",
"test.vloada_half_global",
"test.vloada_half_private",
"test.vloada_half_local",
"test.vloada_half_constant",
"test.vloada_half2_global",
"test.vloada_half2_private",
"test.vloada_half2_local",
"test.vloada_half2_constant",
"test.vloada_half4_global",
"test.vloada_half4_private",
"test.vloada_half4_local",
"test.vloada_half4_constant",
"test.vloada_half8_global",
"test.vloada_half8_private",
"test.vloada_half8_local",
"test.vloada_half8_constant",
"test.vloada_half16_global",
"test.vloada_half16_private",
"test.vloada_half16_local",
"test.vloada_half16_constant",
"test.vloada_half3_global",
"test.vloada_half3_private",
"test.vloada_half3_local",
"test.vloada_half3_constant",
"test.vstore_half_global_float",
"test.vstore_half_private_float",
"test.vstore_half_local_float",
"test.vstore_half_global_float2",
"test.vstore_half_private_float2",
"test.vstore_half_local_float2",
"test.vstore_half_global_float4",
"test.vstore_half_private_float4",
"test.vstore_half_local_float4",
"test.vstore_half_global_float8",
"test.vstore_half_private_float8",
"test.vstore_half_local_float8",
"test.vstore_half_global_float16",
"test.vstore_half_private_float16",
"test.vstore_half_local_float16",
"test.vstore_half_global_float3",
"test.vstore_half_private_float3",
"test.vstore_half_local_float3",
"test.vstorea_half_global_float2",
"test.vstorea_half_private_float2",
"test.vstorea_half_local_float2",
"test.vstorea_half_global_float4",
"test.vstorea_half_private_float4",
"test.vstorea_half_local_float4",
"test.vstorea_half_global_float8",
"test.vstorea_half_private_float8",
"test.vstorea_half_local_float8",
"test.vstorea_half_global_float16",
"test.vstorea_half_private_float16",
"test.vstorea_half_local_float16",
"test.vstorea_half_global_float3",
"test.vstorea_half_private_float3",
"test.vstorea_half_local_float3",
"test.vstore_half_rte_global_float",
"test.vstore_half_rte_private_float",
"test.vstore_half_rte_local_float",
"test.vstore_half_rte_global_float2",
"test.vstore_half_rte_private_float2",
"test.vstore_half_rte_local_float2",
"test.vstore_half_rte_global_float4",
"test.vstore_half_rte_private_float4",
"test.vstore_half_rte_local_float4",
"test.vstore_half_rte_global_float8",
"test.vstore_half_rte_private_float8",
"test.vstore_half_rte_local_float8",
"test.vstore_half_rte_global_float16",
"test.vstore_half_rte_private_float16",
"test.vstore_half_rte_local_float16",
"test.vstore_half_rte_global_float3",
"test.vstore_half_rte_private_float3",
"test.vstore_half_rte_local_float3",
"test.vstorea_half_rte_global_float2",
"test.vstorea_half_rte_private_float2",
"test.vstorea_half_rte_local_float2",
"test.vstorea_half_rte_global_float4",
"test.vstorea_half_rte_private_float4",
"test.vstorea_half_rte_local_float4",
"test.vstorea_half_rte_global_float8",
"test.vstorea_half_rte_private_float8",
"test.vstorea_half_rte_local_float8",
"test.vstorea_half_rte_global_float16",
"test.vstorea_half_rte_private_float16",
"test.vstorea_half_rte_local_float16",
"test.vstorea_half_rte_global_float3",
"test.vstorea_half_rte_private_float3",
"test.vstorea_half_rte_local_float3",
"test.vstore_half_rtz_global_float",
"test.vstore_half_rtz_private_float",
"test.vstore_half_rtz_local_float",
"test.vstore_half_rtz_global_float2",
"test.vstore_half_rtz_private_float2",
"test.vstore_half_rtz_local_float2",
"test.vstore_half_rtz_global_float4",
"test.vstore_half_rtz_private_float4",
"test.vstore_half_rtz_local_float4",
"test.vstore_half_rtz_global_float8",
"test.vstore_half_rtz_private_float8",
"test.vstore_half_rtz_local_float8",
"test.vstore_half_rtz_global_float16",
"test.vstore_half_rtz_private_float16",
"test.vstore_half_rtz_local_float16",
"test.vstore_half_rtz_global_float3",
"test.vstore_half_rtz_private_float3",
"test.vstore_half_rtz_local_float3",
"test.vstorea_half_rtz_global_float2",
"test.vstorea_half_rtz_private_float2",
"test.vstorea_half_rtz_local_float2",
"test.vstorea_half_rtz_global_float4",
"test.vstorea_half_rtz_private_float4",
"test.vstorea_half_rtz_local_float4",
"test.vstorea_half_rtz_global_float8",
"test.vstorea_half_rtz_private_float8",
"test.vstorea_half_rtz_local_float8",
"test.vstorea_half_rtz_global_float16",
"test.vstorea_half_rtz_private_float16",
"test.vstorea_half_rtz_local_float16",
"test.vstorea_half_rtz_global_float3",
"test.vstorea_half_rtz_private_float3",
"test.vstorea_half_rtz_local_float3",
"test.vstore_half_rtp_global_float",
"test.vstore_half_rtp_private_float",
"test.vstore_half_rtp_local_float",
"test.vstore_half_rtp_global_float2",
"test.vstore_half_rtp_private_float2",
"test.vstore_half_rtp_local_float2",
"test.vstore_half_rtp_global_float4",
"test.vstore_half_rtp_private_float4",
"test.vstore_half_rtp_local_float4",
"test.vstore_half_rtp_global_float8",
"test.vstore_half_rtp_private_float8",