I compared against native: #define ITERATIONS 1000 int main() { const size_t BUFFER_SIZE = 64ul \* 1024 \* 1024; __m128i\* data_buffer = (__m128i *)memalign(64, BUFFER_SIZE); const __m128i all_ones = _mm_set1_epi8(0xFF); for (size_t i = 0; i I had to fixup the WAT because set_local and get_local don't exist anymore. They are called local.get and local.set now. At higher number of iterations the C version converges on…
Hi, I'm Syrus from Wasmer. Have you tried with the llvm backend? I believe the results might be even better there! $ time ./wasmer run --llvm fill_buffer.wasm -i fillBufferWithSIMD 1000
real 0m5,233s
It seems to be a 25% longer run-time with LLVM backend. I did not know about that option! Very interesting.