Intel oneAPI TBB apt packages are only available for x86. On ARM64,
build TBB v2021.13.0 from source to provide a compatible version
that works with LLVM 21+ (avoiding enum-constexpr-conversion errors).
Also move cmake installation before TBB build since TBB needs cmake.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
to aarch64
Fix patterns that were too restrictive:
- Add space before * in Bash patterns (git * not git)
- Add *cmake * pattern to match TEST=... cmake commands
- Add */ispc * pattern to match build/bin/ispc
- Add ./build/* for relative paths
- Add missing tools: gh, python3, curl, jq, touch, wc, pwd, which, realpath
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add a new skill that documents:
- Hierarchical target system and targetParentMap
- How builtin linking works (child inherits from parent)
- File structure for builtins directory
- Steps for creating/modifying builtins
- Testing builtins with --debug-phase
Also add reference to the skill in CLAUDE.md common workflows.
Add explicit allowed_tools parameter to enable Claude to run cmake,
clang-format, LLVM tools, and common file operations without manual
approval in CI.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Backward memory access patterns like dst[size-1-i] were generating
inefficient scatter/gather operations. This change transforms them
into contiguous load/store operations with a vector shuffle (reverse).
Changes:
- Extended lVectorIsLinear() to recognize negative stride patterns
(uniform - programIndex) in subtraction operations
- Fixed lCheckShlForLinear() and lCheckMulForLinear() to handle
negative strides using absolute value comparison
- Added lReverseVector() helper to create shuffle for vector reversal
- Added lComputeCommonPointerForNegativeStride() to compute base
pointer from the last (lowest address) element
- Modified lGSToLoadStore() to handle negative strides:
- For scatter: reverse data vector, then store contiguously
- For gather: load contiguously, then reverse result
- Safety: only optimize when mask is all-on (full vector iterations)
to avoid complex partial mask pointer calculations
Performance: ~5-10x speedup for backward access patterns by replacing
scatter/gather with contiguous memory ops + cheap shuffle.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add "Updating ISPC Programs For Changes In ISPC 1.30.0" section
describing the new AMX stdlib support
- Add "Intel AMX (Advanced Matrix Extensions)" section after "Dot product"
documenting tile configuration, data operations, and dot product functions
- Add table of contents entry for the new AMX section
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add explicit requirement to spawn pattern-finder agent as the first
step in the code review process to ensure consistency checking.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add test for tile ID boundary (tile 7 is maximum valid value)
- Add test for invalid tile ID error (tile 8 is out of range)
- Add test for constants through multiple single-predecessor blocks
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Extend COVERITY_SCAN_BRANCH_PATTERN to match both main and releases/*
branches, enabling Coverity static analysis for release branches.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Events triggered by GITHUB_TOKEN (like issue_comment) don't create new
workflow runs due to GitHub's security restrictions. This caused the
automatic Claude fix request to fail when triggered from the analyzer.
Changes:
- Add workflow_call and workflow_dispatch triggers to claude.yml
- Add author_association checks (OWNER/MEMBER) for security
- Change analyzer to call claude.yml as reusable workflow via workflow_call
- Use secrets: inherit to pass ANTHROPIC_API_KEY and GITHUB_TOKEN
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>