xref: /llvm-project/mlir/lib/ExecutionEngine/SpirvCpuRuntimeWrappers.cpp (revision 0e39b1348e5fcadb129a6f113e5d708a526d8faa)
1 //===- SpirvCpuRuntimeWrappers.cpp - Runner testing library -===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 //
9 // A small library for SPIR-V cpu runner testing.
10 //
11 //===----------------------------------------------------------------------===//
12 
13 #include "mlir/ExecutionEngine/CRunnerUtils.h"
14 
15 #ifdef _WIN32
16 #define EXPORT __declspec(dllexport)
17 #else
18 #define EXPORT __attribute__((visibility("default")))
19 #endif
20 
21 // NOLINTBEGIN(*-identifier-naming)
22 
23 extern "C" EXPORT void
24 _mlir_ciface_fillI32Buffer(StridedMemRefType<int32_t, 1> *mem_ref,
25                            int32_t value) {
26   std::fill_n(mem_ref->basePtr, mem_ref->sizes[0], value);
27 }
28 
29 extern "C" EXPORT void
30 _mlir_ciface_fillF32Buffer1D(StridedMemRefType<float, 1> *mem_ref,
31                              float value) {
32   std::fill_n(mem_ref->basePtr, mem_ref->sizes[0], value);
33 }
34 
35 extern "C" EXPORT void
36 _mlir_ciface_fillF32Buffer2D(StridedMemRefType<float, 2> *mem_ref,
37                              float value) {
38   std::fill_n(mem_ref->basePtr, mem_ref->sizes[0] * mem_ref->sizes[1], value);
39 }
40 
41 extern "C" EXPORT void
42 _mlir_ciface_fillF32Buffer3D(StridedMemRefType<float, 3> *mem_ref,
43                              float value) {
44   std::fill_n(mem_ref->basePtr,
45               mem_ref->sizes[0] * mem_ref->sizes[1] * mem_ref->sizes[2], value);
46 }
47 
48 // NOLINTEND(*-identifier-naming)
49