#include "memory_check_utils.h"
#include "src/__support/macros/config.h"
#include "src/__support/macros/properties/os.h"
#include "src/__support/macros/properties/types.h"
#include "src/string/memory_utils/op_aarch64.h"
#include "src/string/memory_utils/op_builtin.h"
#include "src/string/memory_utils/op_generic.h"
#include "src/string/memory_utils/op_riscv.h"
#include "src/string/memory_utils/op_x86.h"
#include "test/UnitTest/Test.h"
namespace LIBC_NAMESPACE_DECL {
template <typename T> struct has_head_tail { … };
template <typename T> struct has_loop_and_tail { … };
struct Buffers { … };
MemcpyImplementations;
static inline cpp::byte *as_byte(cpp::span<char> span) { … }
template <auto FnImpl>
void CopyAdaptor(cpp::span<char> dst, cpp::span<char> src, size_t size) { … }
template <size_t Size, auto FnImpl>
void CopyBlockAdaptor(cpp::span<char> dst, cpp::span<char> src, size_t size) { … }
TYPED_TEST(LlvmLibcOpTest, Memcpy, MemcpyImplementations) { … }
MemsetImplementations;
template <auto FnImpl>
void SetAdaptor(cpp::span<char> dst, uint8_t value, size_t size) { … }
template <size_t Size, auto FnImpl>
void SetBlockAdaptor(cpp::span<char> dst, uint8_t value, size_t size) { … }
TYPED_TEST(LlvmLibcOpTest, Memset, MemsetImplementations) { … }
#ifdef LIBC_TARGET_ARCH_IS_X86_64
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wignored-attributes"
#endif
BcmpImplementations;
#ifdef LIBC_TARGET_ARCH_IS_X86_64
#pragma GCC diagnostic pop
#endif
template <auto FnImpl>
int CmpAdaptor(cpp::span<char> p1, cpp::span<char> p2, size_t size) { … }
template <size_t Size, auto FnImpl>
int CmpBlockAdaptor(cpp::span<char> p1, cpp::span<char> p2, size_t size) { … }
TYPED_TEST(LlvmLibcOpTest, Bcmp, BcmpImplementations) { … }
#ifdef LIBC_TARGET_ARCH_IS_X86_64
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wignored-attributes"
#endif
MemcmpImplementations;
#ifdef LIBC_TARGET_ARCH_IS_X86_64
#pragma GCC diagnostic pop
#endif
TYPED_TEST(LlvmLibcOpTest, Memcmp, MemcmpImplementations) { … }
}