[compiler-rt] [AArch64][compiler-rt] Add memcpy, memset, memmove, memchr simple imp… (PR #77496)
Sander de Smalen via llvm-commits
llvm-commits at lists.llvm.org
Fri Jan 19 06:57:32 PST 2024
================
@@ -0,0 +1,140 @@
+// REQUIRES: aarch64-target-arch, aarch64-sme-available
+// RUN: %clangxx_builtins %s %librt -o %t && %run %t
+
+#include <cassert>
+#include <initializer_list>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+
+extern "C" {
+void *__arm_sc_memcpy(void *, const void *, size_t);
+void *__arm_sc_memset(void *, int, size_t);
+void *__arm_sc_memmove(void *, const void *, size_t);
+void *__arm_sc_memchr(const void *, int, size_t);
+}
+
+template <unsigned N> class Memory {
+public:
+ uint8_t ptr[N];
+
+ Memory(int Stride = 0) {
+ if (Stride != 0) {
+ for (unsigned I = 0, Elem = 0; I < N; I++, Elem += Stride) {
+ ptr[I] = Elem;
+ }
+ }
----------------
sdesmalen-arm wrote:
nit:
```suggestion
if (Stride == 0)
return;
for (unsigned I = 0; I < N; ++I)
ptr[I] = I * Stride;
```
https://github.com/llvm/llvm-project/pull/77496
More information about the llvm-commits
mailing list