Skip to content

Commit

Permalink
Detect availability of intrinsics on intel macs just in case
Browse files Browse the repository at this point in the history
  • Loading branch information
kovidgoyal committed Nov 16, 2023
1 parent de8affd commit c3c4ef8
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 1 deletion.
6 changes: 5 additions & 1 deletion kitty/simd-string.c
Original file line number Diff line number Diff line change
Expand Up @@ -243,8 +243,12 @@ init_simd(void *x) {
PyObject *module = (PyObject*)x;
#define A(x, val) { Py_INCREF(Py_##val); if (0 != PyModule_AddObject(module, #x, Py_##val)) return false; }
#ifdef __APPLE__
// Modern Apple Intel processors should all support AVX2. And simde takes care of NEON on Apple Silicon
#ifdef __arm64__
// simde takes care of NEON on Apple Silicon
has_sse4_2 = true; has_avx2 = true;
#else
has_sse4_2 = __builtin_cpu_supports("sse4.2") != 0; has_avx2 = __builtin_cpu_supports("avx2");
#endif
#else
#ifdef __aarch64__
// no idea how to probe ARM cpu for NEON support. This file uses pretty
Expand Down
2 changes: 2 additions & 0 deletions kitty_tests/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -298,6 +298,8 @@ def env_for_python_tests(report_env: bool = False) -> Iterator[None]:
if os.environ.get('CI') == 'true' or report_env:
print('Using PATH in test environment:', path)
print('Python:', python_for_type_check())
from kitty.fast_data_types import has_avx2, has_sse4_2
print(f'Intrinsics: {has_avx2=} {has_sse4_2=}')

with TemporaryDirectory() as tdir, env_vars(
HOME=tdir,
Expand Down

0 comments on commit c3c4ef8

Please sign in to comment.