# clang-tidy configuration for sse2neon
# Focus: performance, bugprone, and cppcoreguidelines checks
# Excludes checks that produce false positives in SIMD/intrinsics code

Checks: >
  -*,
  bugprone-*,
  performance-*,
  cppcoreguidelines-*,
  -bugprone-branch-clone,
  -bugprone-easily-swappable-parameters,
  -bugprone-implicit-widening-of-multiplication-result,
  -bugprone-macro-parentheses,
  -bugprone-narrowing-conversions,
  -bugprone-reserved-identifier,
  -bugprone-switch-missing-default-case,
  -cppcoreguidelines-avoid-c-arrays,
  -cppcoreguidelines-avoid-do-while,
  -cppcoreguidelines-avoid-magic-numbers,
  -cppcoreguidelines-avoid-non-const-global-variables,
  -cppcoreguidelines-init-variables,
  -cppcoreguidelines-no-malloc,
  -cppcoreguidelines-owning-memory,
  -cppcoreguidelines-macro-usage,
  -cppcoreguidelines-narrowing-conversions,
  -cppcoreguidelines-pro-bounds-array-to-pointer-decay,
  -cppcoreguidelines-pro-bounds-constant-array-index,
  -cppcoreguidelines-pro-bounds-pointer-arithmetic,
  -cppcoreguidelines-pro-type-const-cast,
  -cppcoreguidelines-pro-type-cstyle-cast,
  -cppcoreguidelines-pro-type-member-init,
  -cppcoreguidelines-pro-type-reinterpret-cast,
  -cppcoreguidelines-pro-type-union-access,
  -cppcoreguidelines-pro-type-vararg,
  -cppcoreguidelines-use-enum-class,
  -performance-enum-size,
  -performance-no-int-to-ptr,

WarningsAsErrors: ''

HeaderFilterRegex: 'sse2neon\.h'

CheckOptions:
  - key: bugprone-assert-side-effect.AssertMacros
    value: assert
  - key: bugprone-sizeof-expression.WarnOnSizeOfIntegerExpression
    value: false
  - key: performance-unnecessary-value-param.AllowedTypes
    value: '__m128;__m128i;__m128d;__m64'
