-
Notifications
You must be signed in to change notification settings - Fork 259
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bug on Arm when using simde/x86/sse.h #897
Comments
I don't understand...
Perhaps you're looking for a generic prefetcher: |
Please have a look at line 2244 in https://github.com/DLTcollab/sse2neon/blob/master/sse2neon.h That implementation works fine with GCC on Arm. In this case, the compilers don't accept char const* p, they need const void *p to match what __builtin_prefetch has. |
The function signature of As far as I can tell, such a cast should not be needed (godbolt). But don't be discouraged, I'm not a part of this project. |
@aqrit is right, SSE2NEON is using the wrong type. So are GCC and clang, though. MSVC and ICC use the correct type ( I've gone back and forth a bit on whether to change it. Using I think I'll go ahead and change SIMDe to accept |
This should work without the cast now. This also reminded me that the implementation had a lot of room for improvement, so I added a much more complete implementation which should work pretty reliably on most compilers and architectures. Thanks for reporting this, please let me know if you notice any other issues :) |
Hi,
in simde/x86/sse.h the replacement for mm_prefetch is defined as
simde_mm_prefetch (char const* p, int i)
This falls back to the compiler's buildin_prefetch which is defined as __builtin_prefetch (const void *addr[, rw[, locality]])
(https://developer.arm.com/documentation/101458/2100/Optimize/Prefetching-with---builtin-prefetch)
So in simde/x86/sse.h, it should really be the following
simde_mm_prefetch (const void *p, int i)
Please can someone take a look.
Thanks
The text was updated successfully, but these errors were encountered: