simdfuncs.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #pragma once
  2. #include<simdconfig.h>
  3. /* Yes, I do know that arr[4] decays into a pointer
  4. * as a function argument. Don't do this in real code
  5. * but for this test it is ok.
  6. */
  7. void increment_fallback(float arr[4]);
  8. #if HAVE_MMX
  9. int mmx_available();
  10. void increment_mmx(float arr[4]);
  11. #endif
  12. #if HAVE_SSE
  13. int sse_available();
  14. void increment_sse(float arr[4]);
  15. #endif
  16. #if HAVE_SSE2
  17. int sse2_available();
  18. void increment_sse2(float arr[4]);
  19. #endif
  20. #if HAVE_SSE3
  21. int sse3_available();
  22. void increment_sse3(float arr[4]);
  23. #endif
  24. #if HAVE_SSSE3
  25. int ssse3_available();
  26. void increment_ssse3(float arr[4]);
  27. #endif
  28. #if HAVE_SSE41
  29. int sse41_available();
  30. void increment_sse41(float arr[4]);
  31. #endif
  32. #if HAVE_SSE42
  33. int sse42_available();
  34. void increment_sse42(float arr[4]);
  35. #endif
  36. #if HAVE_AVX
  37. int avx_available();
  38. void increment_avx(float arr[4]);
  39. #endif
  40. #if HAVE_AVX2
  41. int avx2_available();
  42. void increment_avx2(float arr[4]);
  43. #endif
  44. #if HAVE_NEON
  45. int neon_available();
  46. void increment_neon(float arr[4]);
  47. #endif
  48. #if HAVE_ALTIVEC
  49. int altivec_available();
  50. void increment_altivec(float arr[4]);
  51. #endif
  52. /* And so on. */