16#ifndef HWY_TESTS_TEST_UTIL_H_
17#define HWY_TESTS_TEST_UTIL_H_
50 const uint64_t s0 =
s1_;
51 const uint64_t
bits = s1 + s0;
54 s1 ^= s0 ^ (s1 >> 18) ^ (s0 >> 5);
61 z = (z ^ (z >> 30)) * 0xBF58476D1CE4E5B9ull;
62 z = (z ^ (z >> 27)) * 0x94D049BB133111EBull;
71 return static_cast<uint32_t
>((*rng)());
85 asm volatile(
"" :
"+r"(output) : :
"memory");
90 const size_t size,
size_t* pos =
nullptr);
93 const char* target_name,
const char* filename,
int line);
97template <
typename T,
typename TU = MakeUn
signed<T>>
100 if (expected == actual)
return 0;
104 if (std::isnan(expected) && std::isnan(actual))
return 0;
118 const void* actual_ptr);
121 const TypeInfo& info,
const void* expected_ptr,
const void* actual_ptr,
122 const char* target_name,
const char* filename,
int line,
size_t lane = 0,
123 size_t num_lanes = 1);
126 const void* expected_void,
127 const void* actual_void,
size_t N,
128 const char* target_name,
129 const char* filename,
int line);
153 const char* target_name,
const char* filename,
154 int line,
size_t lane = 0) {
158 filename,
line, lane);
164 size_t count,
const char* target_name,
165 const char* filename,
int line) {
uint8_t * bits
Definition TileProcessor.h:59
#define HWY_MAX(a, b)
Definition base.h:135
#define HWY_NORETURN
Definition base.h:74
#define HWY_MIN(a, b)
Definition base.h:134
#define HWY_INLINE
Definition base.h:70
Definition test_util.h:41
static uint64_t SplitMix64(uint64_t z)
Definition test_util.h:60
HWY_INLINE uint64_t operator()()
Definition test_util.h:48
uint64_t s0_
Definition test_util.h:66
uint64_t s1_
Definition test_util.h:67
RandomState(const uint64_t seed=0x123456789ull)
Definition test_util.h:43
#define HWY_TEST_DLLEXPORT
Definition highway_export.h:15
HWY_DLLEXPORT void TypeName(const TypeInfo &info, size_t N, char *string100)
TU ComputeUlpDelta(const T expected, const T actual)
Definition test_util.h:98
HWY_TEST_DLLEXPORT HWY_NORETURN void PrintMismatchAndAbort(const TypeInfo &info, const void *expected_ptr, const void *actual_ptr, const char *target_name, const char *filename, int line, size_t lane=0, size_t num_lanes=1)
HWY_TEST_DLLEXPORT bool IsEqual(const TypeInfo &info, const void *expected_ptr, const void *actual_ptr)
HWY_TEST_DLLEXPORT void AssertArrayEqual(const TypeInfo &info, const void *expected_void, const void *actual_void, size_t N, const char *target_name, const char *filename, int line)
HWY_INLINE TypeInfo MakeTypeInfo()
Definition print.h:40
Definition aligned_allocator.h:27
void AssertStringEqual(const char *expected, const char *actual, const char *target_name, const char *filename, int line)
HWY_TEST_DLLEXPORT bool BytesEqual(const void *p1, const void *p2, const size_t size, size_t *pos=nullptr)
constexpr size_t kTestMaxVectorSize
Definition test_util.h:37
HWY_INLINE bool IsEqual(const T expected, const T actual)
Definition test_util.h:146
HWY_API void CopySameSize(const From *HWY_RESTRICT from, To *HWY_RESTRICT to)
Definition base.h:961
HWY_INLINE void AssertArrayEqual(const T *expected, const T *actual, size_t count, const char *target_name, const char *filename, int line)
Definition test_util.h:163
static HWY_INLINE uint64_t Random64(RandomState *rng)
Definition test_util.h:74
std::string TypeName(T, size_t N)
Definition test_util.h:138
HWY_INLINE void AssertEqual(const T expected, const T actual, const char *target_name, const char *filename, int line, size_t lane=0)
Definition test_util.h:152
static HWY_INLINE uint32_t Random32(RandomState *rng)
Definition test_util.h:70
void PreventElision(T &&output)
Definition test_util.h:81
HWY_DLLEXPORT HWY_NORETURN void int line
Definition base.h:992