
Simd Intrinsics
Teaches Claude to read compiler vectorization reports, write SSE2/AVX2/NEON intrinsics, and debug why loops aren't auto-vectorizing. Covers the full workflow from checking GCC's fopt-info-vec output to manually writing intrinsics when the compiler can't optimize your code. Includes runtime CPU feature detection with __builtin_cpu_supports, common auto-vectorization blockers like pointer aliasing, and concrete intrinsics examples for x86 and ARM. The guidance on when to use intrinsics versus letting the compiler handle it is honest: try auto-vectorization first, only drop to intrinsics for hand-tuned shuffles or when the compiler fails. Useful if you're profiling hot loops and need to squeeze out performance without rewriting everything in assembly.
- skills.sh installs
- 701
- GitHub stars
- 279
- last updated
- Aug 21, 2026
Install
$ npx -y skills add mohitmishra786/low-level-dev-skills --skill simd-intrinsics --agent claude-codeInstalls into .claude/skills of the current project.
Files
SIMD Intrinsics
Purpose
Guide agents through SIMD: reading auto-vectorization output, writing SSE2/AVX2/NEON intrinsics, runtime CPU feature detection, and choosing between compiler auto-vectorization and manual intrinsics.
Triggers
- "How do I check if my loop is being auto-vectorized?"
- "How do I write SSE2/AVX2 intrinsics?"
- "Auto-vectorization failed — how do I fix it?"
- "How do I check for CPU features at runtime?"
- "Should I use intrinsics or let the compiler vectorize?"
- "How do I write NEON intrinsics for ARM?"
Workflow
1. Check auto-vectorization
# GCC: show vectorization info
gcc -O2 -march=native -fopt-info-vec src/hot.c -o hot
# Verbose: show missed + successful
gcc -O2 -march=native -fopt-info-vec-missed -fopt-info-vec-optimized src/hot.c
# Clang: vectorization remarks
clang -O2 -march=native \
-Rpass=loop-vectorize \
-Rpass-missed=loop-vectorize \
-Rpass-analysis=loop-vectorize \
src/hot.c -o hot
# Example missed message:
# hot.c:15:5: remark: loop not vectorized: value that could not be identified as
# reduction is used outside the loop [-Rpass-missed=loop-vectorize]
Common auto-vectorization blockers:
Sponsors
Details
- Repository
- github.com/mohitmishra786/low-level-dev-skills
- Categories
- Documentation, Databases
- First seen
- Jun 3, 2026
More from mohitmishra786/low-level-dev-skills
All 54- Make697
- Memory Model693
- Freertos691
- Linux Kernel Modules689
- Ninja681
- Heaptrack676
- Rust Profiling673
- Ebpf672
- Msvc Cl671
- Fuzzing670
- Binutils665
- Linkers Lto663
- Conan Vcpkg659
- Dynamic Linking650
- Rust Security624
- Rust Ffi613
- Rust Unsafe611
- Pgo610
- Interpreters609
- Cargo Workflows608
- Rust Sanitizers Miri604
- Meson603
- Cpp Modules597
- Rust Debugging597