7876 Commits
Author SHA1 Message Date
dependabot[bot] e99a37840c ci: bump the ga-dependencies group with 2 updates
Bumps the ga-dependencies group with 2 updates: [actions/setup-node](https://github.com/actions/setup-node) and [zizmorcore/zizmor-action](https://github.com/zizmorcore/zizmor-action).


Updates `actions/setup-node` from 6.4.0 to 7.0.0
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e...820762786026740c76f36085b0efc47a31fe5020)

Updates `zizmorcore/zizmor-action` from 0.5.0 to 0.6.0
- [Release notes](https://github.com/zizmorcore/zizmor-action/releases)
- [Commits](https://github.com/zizmorcore/zizmor-action/compare/0dce2577a4760a2749d8cfb7a84b7d5585ebcb7d...6599ee8b7a49aef6a770f63d261d214911a7ce02)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: ga-dependencies
- dependency-name: zizmorcore/zizmor-action
  dependency-version: 0.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ga-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-20 21:45:50 -07:00
Antoni ZwolskiandClaude Sonnet 5 7740fa16df Fix #3882: Narrow overly-broad CHECK-NOT in 3882.ispc lit test
CHECK-NOT: zeroinitializer also matched unrelated select instructions
used for masked address computation on some targets (e.g. host CI's
4-wide target), causing false failures unrelated to the decrement fix.
Scope the negative check to the actual buggy pattern: add ..., zeroinitializer.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-19 21:40:29 -07:00
Antoni Zwolski 61b46cc242 Fix #3882: Avoid UB in float-to-unsigned constant conversion causing decrement miscompile
lLLVMConstantValue() cast a negative double directly to an unsigned
integer type (e.g. (unsigned int)(-1.0)) when emitting the step
constant for varying unsigned decrement. This conversion is undefined
behavior in C++ for out-of-range values; on aarch64 hosts it saturates
to 0, silently turning `--` into a no-op, and for UINT64 it tripped an
Assert. Route the conversion through a signed intermediate type first,
which is well-defined for -1, then narrow to the unsigned type.
2026-07-19 21:40:29 -07:00
Antoni Zwolski 59d2950a68 Remove stale XFAIL for 2169.ispc on PPC64LE_HOST 2026-07-08 18:05:20 -07:00
Antoni Zwolski 03256af4e7 Improve lit test CHECK-LABEL patterns 2026-07-08 18:05:20 -07:00
Antoni Zwolski f711ca4814 Fix crashing gather index 2026-07-08 18:05:20 -07:00
Antoni Zwolski 754d9b90b2 Add crashing gather index test 2026-07-08 18:05:20 -07:00
dependabot[bot] 32dd2c7a68 ci: bump the ga-dependencies group across 1 directory with 5 updates
Bumps the ga-dependencies group with 5 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [actions/checkout](https://github.com/actions/checkout) | `6.0.0` | `7.0.0` |
| [actions/github-script](https://github.com/actions/github-script) | `7.0.1` | `9.0.0` |
| [dtolnay/rust-toolchain](https://github.com/dtolnay/rust-toolchain) | `3c5f7ea28cd621ae0bf5283f0e981fb97b8a7af9` | `fa04a1451ff1842e2626ccb99004d0195b455a88` |
| [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) | `4.1.0` | `4.2.0` |
| [github/codeql-action/upload-sarif](https://github.com/github/codeql-action) | `4.36.0` | `4.37.0` |



Updates `actions/checkout` from 6.0.0 to 7.0.0
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/1af3b93b6815bc44a9784bd300feb67ff0d1eeb3...9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0)

Updates `actions/github-script` from 7.0.1 to 9.0.0
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](https://github.com/actions/github-script/compare/v7.0.1...3a2844b7e9c422d3c10d287c895573f7108da1b3)

Updates `dtolnay/rust-toolchain` from 3c5f7ea28cd621ae0bf5283f0e981fb97b8a7af9 to fa04a1451ff1842e2626ccb99004d0195b455a88
- [Release notes](https://github.com/dtolnay/rust-toolchain/releases)
- [Commits](https://github.com/dtolnay/rust-toolchain/compare/3c5f7ea28cd621ae0bf5283f0e981fb97b8a7af9...fa04a1451ff1842e2626ccb99004d0195b455a88)

Updates `docker/setup-buildx-action` from 4.1.0 to 4.2.0
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5...bb05f3f5519dd87d3ba754cc423b652a5edd6d2c)

Updates `github/codeql-action/upload-sarif` from 4.36.0 to 4.37.0
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/7211b7c8077ea37d8641b6271f6a365a22a5fbfa...99df26d4f13ea111d4ec1a7dddef6063f76b97e9)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: ga-dependencies
- dependency-name: actions/github-script
  dependency-version: 9.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: ga-dependencies
- dependency-name: dtolnay/rust-toolchain
  dependency-version: fa04a1451ff1842e2626ccb99004d0195b455a88
  dependency-type: direct:production
  dependency-group: ga-dependencies
- dependency-name: docker/setup-buildx-action
  dependency-version: 4.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ga-dependencies
- dependency-name: github/codeql-action/upload-sarif
  dependency-version: 4.37.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ga-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-08 17:20:47 -07:00
claude[bot]andaneshlya 32217788b9 Fix #3159: Adapt to LLVM 23 API change for AArch64 CPU extensions
LLVM trunk (23.0) removed CpuInfo::getImpliedExtensions() method.
Access the DefaultExtensions field directly for LLVM 23+, while
maintaining backward compatibility with LLVM 22 and earlier.

Co-authored-by: aneshlya <aneshlya@users.noreply.github.com>
2026-07-06 13:20:00 -07:00
Arina Neshlyaeva 13713a66c4 Fix first-interaction input names (repo_token/pr_message; add issue_message) 2026-06-26 20:19:05 -07:00
Arina Neshlyaeva c4d1bf0d10 Split Linux unwind-v3 check into separate test gated on LINUX_ENABLED 2026-06-26 14:59:01 -07:00
Arina NeshlyaevaandClaude Opus 4.8 fa592289f9 Optimize Claude workflows
Build LLVM+ISPC only for fix tasks, drop the redundant issues:[opened]
trigger, and remove the unused checkout from the dedup workflow, which now
classifies non-duplicate issues by type (Bug/Enhancement).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 14:59:01 -07:00
Arina NeshlyaevaandClaude Opus 4.8 e5ba144f74 Add first-time contributor welcome workflow for pull requests
Greets first-time PR authors via actions/first-interaction. Uses
pull_request_target but checks out no fork code and only posts a comment.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 14:59:01 -07:00
Arina NeshlyaevaandClaude Opus 4.8 2627f358c3 Add CODEOWNERS, MAINTAINERS.md, and issue auto-acknowledgement
Auto-requests review from the code owner, documents additional maintainers
who are not auto-requested, and posts a thank-you comment linking to
CONTRIBUTING on new issues from non-maintainers.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 14:59:01 -07:00
Arina Neshlyaeva 49f8aa71b2 Bump ISPC version to 1.32.0dev 2026-06-25 12:47:00 -07:00
Arina Neshlyaeva fcf819ae05 Always build TBB in Ubuntu 18.04 Docker images 2026-06-25 12:47:00 -07:00
Arina Neshlyaeva 3db22a8845 Release notes and docs for v1.31.0 2026-06-24 11:13:18 -07:00
Arina Neshlyaeva 0bf932e0af Add release docker for v1.31.0 2026-06-24 11:13:18 -07:00
Arina NeshlyaevaandClaude Opus 4.8 386acedc1b Fix int8 reduce_add type mismatch on Xe targets
The Xe int8 add helpers were instantiated via xe_add(i16, int8),
defining __add_varying_int8/__add_uniform_int8 over i16 while
__reduce_add_int8 calls them with i8 operands. The resulting
implicit bitcast-call is undefined behavior and produced wrong
results for reduce_add on negative int8/uint8 values. Use
xe_add(i8, int8) so the helper types match.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-23 20:48:45 -07:00
Arina Neshlyaeva da8317dff3 Pin avx2 target in 3846.ispc so it passes on macOS ARM 2026-06-23 20:48:45 -07:00
Arina Neshlyaeva 2728d35f28 CI: add VS 2026 (windows-2025) to MSVC compiler-warnings matrix 2026-06-23 20:48:45 -07:00
Arina Neshlyaeva 5dd17d5c07 Suppress GCC 13+ -Wdangling-reference false positive from LLVM 23 headers 2026-06-23 20:48:45 -07:00
Arina Neshlyaeva 9b6d044705 superbuild: update LLVM 23 SHA 2026-06-23 20:48:45 -07:00
Arina Neshlyaeva 60e9678ede Restructure CI test matrix and SDE selection for LLVM 23
Split full test flow into basic/avx512/avx10 groups, move LLVM 20/21 to a
weekly llvm-legacy workflow, and default to the newer SDE (overriding to the
older 9.58.0 only for basic/avx512). Fix the avx10 SDE ternary so NVL targets
get the newer SDE that supports the -nvl knob.
2026-06-23 20:48:45 -07:00
Arina Neshlyaeva fa56243ef8 func-tests: split large fmod tests to fix O0 Windows LLVM 23 compfail 2026-06-23 20:48:45 -07:00
Arina Neshlyaeva d3871f4686 Force FastISel for AArch64 -O0 to work around LLVM 23 float16 GISel bug 2026-06-23 20:48:45 -07:00
Arina Neshlyaeva 997a8a46b2 Adapt Xe build, lit tests and SPIR-V output for LLVM 23 2026-06-23 20:48:45 -07:00
Arina Neshlyaeva 2422afeb6e Switch to LLVM 23 by default 2026-06-23 20:48:45 -07:00
Arina Neshlyaeva e797201954 Update build infra for LLVM 23 (presets, Dockerfiles, rebuild workflow) 2026-06-23 20:48:45 -07:00
azwolski 3b0372f1db Fix #3782: Migrate optimization pass emission to poison (#3824)
* Fix #3782: Migrate optimization pass emission to poison

Replace UndefValue::get with PoisonValue::get in optimization passes
where intermediate vectors are created as placeholders before being
filled with loaded or computed values. Using poison instead of undef
enables LLVM to apply stronger optimizations (e.g. eliminating dead
code in select chains).
2026-06-23 14:24:57 -07:00
azwolskiandClaude Sonnet 4.6 6e021c57e5 Fix #3782: Migrate builtins IR and M4 macros to use poison instead of undef (#3825)
Replace all occurrences of the deprecated undef keyword with poison in ISPC's
built-in IR library files (builtins/*.ll) and M4 macro files
(builtins/util.m4, builtins/util-xe.m4, builtins/svml.m4).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-23 09:10:35 -07:00
Dmitry Babokin b97225bc8e Fix _mm_shuffle_pd test coverage 2026-06-22 10:53:20 -07:00
claude[bot]andaneshlya 122ade2f96 Fix #3863: Correct _mm_shuffle_pd immediate decoding and add tests
- Fixed _mm_shuffle_pd to use 1-bit selector fields instead of 2-bit fields
- The intrinsic now correctly interprets the immediate as two 1-bit selectors
  (one for each output lane) instead of treating it like _mm_shuffle_ps
- Added LIT test covering all four shuffle masks: (0,0), (0,1), (1,0), (1,1)
- Added functional test to verify runtime correctness
- Updated copyright year to 2026

Co-authored-by: aneshlya <aneshlya@users.noreply.github.com>
2026-06-22 10:53:20 -07:00
Jérôme Richard f6fed70a43 Add a test checking reduce_add(uint8) results in a fast code 2026-06-22 09:45:38 -07:00
Jérôme Richard 588f0f8906 Use the generic code for uint8-based reduce_add calls (except on Xe targets) 2026-06-22 09:45:38 -07:00
Jérôme Richardandaneshlya ad98479aa7 Update docs/ispc.rst (proposed in review)
Co-authored-by: aneshlya <arina.neshlyaeva@intel.com>
2026-06-22 09:45:38 -07:00
Jérôme Richard a330880122 Make the breaking change more clear/visible in the doc 2026-06-22 09:45:38 -07:00
Jérôme Richard aec25a7ead Call generic functions instead of target-specific code 2026-06-22 09:45:38 -07:00
Jérôme Richard db9294dae3 Update copyright headers (2026) 2026-06-22 09:45:38 -07:00
Jérôme Richard 0f32131062 Fix tests so to avoid overflows, check also negative numbers, add an uint8 test 2026-06-22 09:45:38 -07:00
Jérôme Richard 1eec437189 Fix a test calling reduce_add (expecting wider output types) 2026-06-22 09:45:38 -07:00
Jérôme Richard fcd0bff917 Update the doc 2026-06-22 09:45:38 -07:00
Jérôme Richard 19bf112da7 Convert alias to function calls due to symbol redefinition issues 2026-06-22 09:45:38 -07:00
Jérôme Richard 264f405b2b Fix reduce_add functions 2026-06-22 09:45:38 -07:00
Arina NeshlyaevaandClaude Opus 4.8 05a3939ce5 Fix disable-apx warning to run after target resolution
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 14:13:32 -07:00
Arina Neshlyaeva 39568fc7a3 CI: test dmr and nvl targets amd add LLVM 23 testing 2026-06-19 14:13:32 -07:00
Arina Neshlyaeva bf8641bfc7 Add --opt=disable-apx to disable x86 APX sub-features and select Windows
unwind v3 for EGPR
2026-06-19 14:13:32 -07:00
Arina NeshlyaevaandClaude Sonnet 4.6 02178d2e26 Fix build with LLVM trunk: cast CreateIntrinsic result to CallInst
LLVM trunk changed IRBuilder::CreateIntrinsic to return Value* instead
of CallInst* to allow constant folding. Cast the result back to CallInst*
which is safe for these void AMX intrinsics that are never folded.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-06-18 13:56:42 -07:00
Arina NeshlyaevaandClaude Opus 4.8 5101e97e35 Dispatcher: gate AMX server variants on an AMX capability requirement
The multi-target runtime dispatcher selected a variant via a linear
ICMP_SGE walk over the Target::ISA enumerant, assuming each ISA is a
superset of all lower-numbered ones. Nova Lake (NVL) breaks that: it has
AVX10.2 (so it sorts above the AMX-bearing SPR/GNR tiers) but no AMX, so
an NVL system would mis-select an SPR/GNR variant and fault on AMX.

Replace the prior NVL-specific blocklist guard (systemISA != NVL) with a
requirement (allowlist): the AMX server tiers (SPR/GNR/DMR) require the
orthogonal "system has AMX" capability. Any non-AMX line -- NVL today,
future clients tomorrow -- fails that requirement with no dispatcher
change. Detection reads the same CPUID AMX bits get_x86_isa() uses to
separate the AMX tiers from NVL, and additionally gates on OS AMX tile
state (XCR0), mirroring how get_x86_isa() gates AVX/AVX512 on OS XSAVE
state -- on Linux AMX tile state is off until a process requests it via
prctl(ARCH_REQ_XCOMP_PERM). The check is exposed as a new __system_has_amx()
query alongside __get_system_best_isa(), and tools/check_isa.cpp reuses
the shared __os_has_amx_support() helper.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-16 11:19:20 -07:00
Arina Neshlyaeva 4bfe359a35 Add avx10.2nvl family of targets (Intel Nova Lake)
Add the avx10.2nvl-x{4,8,16,32,64} x86 target family for Intel Nova Lake
(NVL). NVL implements AVX10.2 but, unlike Diamond Rapids (DMR), has no AMX.
It is therefore modeled as "DMR without AMX": its target hierarchy inherits
from ICL (avx512icl) rather than DMR/GNR, and none of the AMX capabilities
(AmxTile/AmxInt8/AmxBf16/AmxFp16) are advertised. The half-precision
rcp/rsqrt builtins are reused from the shared target-avx512fp16-x*-common.ll
files. The targets require LLVM >= 22 and are gated accordingly throughout.
2026-06-16 11:19:20 -07:00