Skip to content

POCL: avoid Int128 in bounds checks of a StepRange - #835

Merged
vchuravy merged 1 commit into
mainfrom
vc/pocl-steprange-checkbounds
Oct 4, 2026
Merged

vchuravy merged 1 commit into
mainfrom
vc/pocl-steprange-checkbounds

Conversation

@vchuravy

@vchuravy vchuravy commented Oct 4, 2026

Copy link
Copy Markdown
Member

Julia 1.12 checks the bounds of a StepRange with widemul (JuliaLang/julia#56750), i.e. in 128-bit integers, which the SPIR-V back-end cannot lower:

LLVM ERROR: OpTypeInt type with a width other than 8, 16, 32 or 64 bits requires the following SPIR-V extension: SPV_ALTERA_arbitrary_precision_integers

This is reached e.g. by indexing a strided view (view(A, 1:2:8, 2:2:10)) with --check-bounds=yes, which is what makes the foreach_index tests of #827 fail on Julia 1.12 and 1.13.

This adds the device override that Metal.jl, OpenCL.jl and oneAPI.jl have, which checks against the length instead. Unlike theirs, it covers all the types Base's method does rather than only Int64/UInt64: a range of Int32 indexed with an Int64 (as in a kernel) widens to Int128 too.

The new test calls checkbounds on a StepRange in a kernel, so it does not depend on --check-bounds=yes. Without the override, all four range cases fail to compile; with it, the test passes with and without --check-bounds=yes (locally, Julia 1.12.7).

🤖 Generated with Claude Code

Julia 1.12 checks the bounds of a `StepRange` with `widemul`, i.e. in
128-bit integers, which the SPIR-V back-end cannot lower:

    LLVM ERROR: OpTypeInt type with a width other than 8, 16, 32 or 64
    bits requires the following SPIR-V extension:
    SPV_ALTERA_arbitrary_precision_integers

This is reached e.g. by indexing a strided view with
`--check-bounds=yes`. Override it as Metal.jl, OpenCL.jl and oneAPI.jl
do, but for all the types Base's method covers: a range of `Int32`
indexed with an `Int64` widens to `Int128` as well.

Assisted-by: Claude Code (Opus 5.5)
@codecov

codecov Bot commented Oct 4, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 66.66667% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 79.05%. Comparing base (e70abc3) to head (f901796).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
src/pocl/device/quirks.jl 66.66% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #835      +/-   ##
==========================================
- Coverage   79.06%   79.05%   -0.02%     
==========================================
  Files          24       24              
  Lines        2040     2043       +3     
==========================================
+ Hits         1613     1615       +2     
- Misses        427      428       +1     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@github-actions

github-actions Bot commented Oct 4, 2026

Copy link
Copy Markdown
Contributor

Benchmark Results

Show table
main f901796... main / f901796...
const/@Const/Float32/262144 0.573 ± 0.015 ms 0.573 ± 0.015 ms 1 ± 0.037
const/@Const/Float32/65536 0.172 ± 0.0049 ms 0.171 ± 0.0057 ms 1.01 ± 0.044
const/@Const/Float64/262144 0.913 ± 0.004 ms 0.914 ± 0.0058 ms 0.999 ± 0.0077
const/@Const/Float64/65536 0.322 ± 0.012 ms 0.323 ± 0.012 ms 0.997 ± 0.053
const/unmarked/Float32/262144 2.67 ± 0.031 ms 2.82 ± 0.046 ms 0.948 ± 0.019
const/unmarked/Float32/65536 0.654 ± 0.013 ms 0.658 ± 0.012 ms 0.994 ± 0.027
const/unmarked/Float64/262144 3.33 ± 0.037 ms 3.33 ± 0.036 ms 1 ± 0.015
const/unmarked/Float64/65536 0.847 ± 0.012 ms 0.844 ± 0.012 ms 1 ± 0.02
launch/3D static workgroup, dynamic ndrange 17.3 ± 0.96 μs 16.7 ± 2.7 μs 1.04 ± 0.18
launch/3D static workgroup, static ndrange 12.6 ± 0.98 μs 12.6 ± 1 μs 0.994 ± 0.11
launch/dynamic workgroup, dynamic ndrange 12.2 ± 0.34 μs 10 ± 2.3 μs 1.22 ± 0.28
launch/dynamic workgroup, dynamic ndrange, workgroupsize given 10.5 ± 2.2 μs 9.85 ± 0.49 μs 1.07 ± 0.23
launch/static workgroup, dynamic ndrange 12.4 ± 3.7 μs 9.73 ± 3.5 μs 1.27 ± 0.6
launch/static workgroup, static ndrange 12 ± 3.5 μs 15.3 ± 4.1 μs 0.78 ± 0.31
partition/dynamic workgroup, dynamic ndrange 0.0598 ± 0.0049 μs 0.0589 ± 0.0018 μs 1.02 ± 0.088
partition/static workgroup, dynamic ndrange 0.06 ± 0.014 μs 0.0694 ± 0.013 μs 0.863 ± 0.26
partition/static workgroup, static ndrange 1.74 ± 0.001 ns 1.74 ± 0.001 ns 1 ± 0.00081
saxpy/default/Float16/1024 15.6 ± 0.6 μs 19.5 ± 1.2 μs 0.803 ± 0.058
saxpy/default/Float16/1048576 1.63 ± 0.015 ms 1.64 ± 0.017 ms 0.997 ± 0.014
saxpy/default/Float16/16384 0.0631 ± 0.0043 ms 0.0634 ± 0.0045 ms 0.994 ± 0.098
saxpy/default/Float16/2048 0.0432 ± 0.0019 ms 0.0442 ± 0.0018 ms 0.976 ± 0.059
saxpy/default/Float16/256 14 ± 3.5 μs 17.9 ± 1.3 μs 0.78 ± 0.2
saxpy/default/Float16/262144 0.444 ± 0.015 ms 0.445 ± 0.016 ms 0.999 ± 0.05
saxpy/default/Float16/32768 0.0892 ± 0.0051 ms 0.0876 ± 0.0044 ms 1.02 ± 0.078
saxpy/default/Float16/4096 0.0462 ± 0.0017 ms 0.0473 ± 0.0019 ms 0.976 ± 0.053
saxpy/default/Float16/512 14.5 ± 2.7 μs 13.9 ± 0.8 μs 1.05 ± 0.21
saxpy/default/Float16/64 13.2 ± 2.5 μs 12.7 ± 3.5 μs 1.04 ± 0.35
saxpy/default/Float16/65536 0.141 ± 0.0074 ms 0.14 ± 0.0062 ms 1 ± 0.069
saxpy/default/Float32/1024 17.5 ± 3 μs 16.5 ± 4.1 μs 1.06 ± 0.32
saxpy/default/Float32/1048576 0.964 ± 0.068 ms 0.957 ± 0.13 ms 1.01 ± 0.15
saxpy/default/Float32/16384 0.0489 ± 0.0053 ms 0.0504 ± 0.0045 ms 0.969 ± 0.14
saxpy/default/Float32/2048 15.4 ± 2.6 μs 17.1 ± 3.1 μs 0.903 ± 0.22
saxpy/default/Float32/256 14.8 ± 3.9 μs 16.6 ± 1.7 μs 0.891 ± 0.25
saxpy/default/Float32/262144 0.245 ± 0.033 ms 0.248 ± 0.04 ms 0.99 ± 0.21
saxpy/default/Float32/32768 0.0647 ± 0.0066 ms 0.0655 ± 0.004 ms 0.988 ± 0.12
saxpy/default/Float32/4096 0.0433 ± 0.0033 ms 0.0428 ± 0.0038 ms 1.01 ± 0.12
saxpy/default/Float32/512 15.5 ± 4.2 μs 17.5 ± 1.7 μs 0.882 ± 0.26
saxpy/default/Float32/64 16.1 ± 4.1 μs 13.2 ± 4 μs 1.22 ± 0.49
saxpy/default/Float32/65536 0.0914 ± 0.0079 ms 0.0906 ± 0.0057 ms 1.01 ± 0.11
saxpy/default/Float64/1024 15.1 ± 0.86 μs 15.2 ± 0.94 μs 0.99 ± 0.083
saxpy/default/Float64/1048576 1.86 ± 0.42 ms 1.96 ± 0.44 ms 0.946 ± 0.3
saxpy/default/Float64/16384 0.0557 ± 0.0054 ms 0.0569 ± 0.0056 ms 0.979 ± 0.14
saxpy/default/Float64/2048 17.7 ± 3.5 μs 16.3 ± 2.9 μs 1.09 ± 0.29
saxpy/default/Float64/256 14.1 ± 0.51 μs 14.4 ± 0.74 μs 0.976 ± 0.061
saxpy/default/Float64/262144 0.307 ± 0.045 ms 0.313 ± 0.047 ms 0.981 ± 0.21
saxpy/default/Float64/32768 0.0764 ± 0.0079 ms 0.0738 ± 0.0064 ms 1.04 ± 0.14
saxpy/default/Float64/4096 0.0429 ± 0.0038 ms 0.0432 ± 0.004 ms 0.994 ± 0.13
saxpy/default/Float64/512 14.3 ± 0.95 μs 15.5 ± 3.3 μs 0.922 ± 0.2
saxpy/default/Float64/64 13.4 ± 5 μs 16.7 ± 1.2 μs 0.801 ± 0.31
saxpy/default/Float64/65536 0.11 ± 0.017 ms 0.108 ± 0.014 ms 1.02 ± 0.21
saxpy/static workgroup=(1024,)/Float16/1024 15.4 ± 0.61 μs 15.8 ± 4.2 μs 0.978 ± 0.27
saxpy/static workgroup=(1024,)/Float16/1048576 1.65 ± 0.025 ms 1.64 ± 0.018 ms 1 ± 0.019
saxpy/static workgroup=(1024,)/Float16/16384 0.0636 ± 0.0046 ms 0.0635 ± 0.0033 ms 1 ± 0.089
saxpy/static workgroup=(1024,)/Float16/2048 0.0432 ± 0.0019 ms 0.044 ± 0.0027 ms 0.982 ± 0.075
saxpy/static workgroup=(1024,)/Float16/256 13.7 ± 0.78 μs 17.6 ± 1.1 μs 0.778 ± 0.066
saxpy/static workgroup=(1024,)/Float16/262144 0.446 ± 0.016 ms 0.444 ± 0.016 ms 1 ± 0.051
saxpy/static workgroup=(1024,)/Float16/32768 0.0882 ± 0.0039 ms 0.0889 ± 0.0048 ms 0.992 ± 0.069
saxpy/static workgroup=(1024,)/Float16/4096 0.0461 ± 0.0021 ms 0.0465 ± 0.0025 ms 0.992 ± 0.07
saxpy/static workgroup=(1024,)/Float16/512 17.3 ± 4.6 μs 14.3 ± 1.2 μs 1.21 ± 0.34
saxpy/static workgroup=(1024,)/Float16/64 16.9 ± 3.9 μs 13.1 ± 3.8 μs 1.29 ± 0.48
saxpy/static workgroup=(1024,)/Float16/65536 0.142 ± 0.0052 ms 0.139 ± 0.0072 ms 1.02 ± 0.065
saxpy/static workgroup=(1024,)/Float32/1024 17 ± 4 μs 14.6 ± 0.56 μs 1.16 ± 0.28
saxpy/static workgroup=(1024,)/Float32/1048576 0.979 ± 0.14 ms 0.964 ± 0.18 ms 1.02 ± 0.23
saxpy/static workgroup=(1024,)/Float32/16384 0.0496 ± 0.0046 ms 0.0497 ± 0.0043 ms 0.998 ± 0.13
saxpy/static workgroup=(1024,)/Float32/2048 15.5 ± 3.1 μs 16.2 ± 3.4 μs 0.958 ± 0.28
saxpy/static workgroup=(1024,)/Float32/256 14.1 ± 2.2 μs 17.5 ± 1.3 μs 0.805 ± 0.14
saxpy/static workgroup=(1024,)/Float32/262144 0.249 ± 0.049 ms 0.243 ± 0.04 ms 1.03 ± 0.26
saxpy/static workgroup=(1024,)/Float32/32768 0.0658 ± 0.0062 ms 0.0627 ± 0.0055 ms 1.05 ± 0.14
saxpy/static workgroup=(1024,)/Float32/4096 0.0405 ± 0.0037 ms 0.0398 ± 0.0043 ms 1.02 ± 0.15
saxpy/static workgroup=(1024,)/Float32/512 15.2 ± 3.9 μs 14.5 ± 0.63 μs 1.05 ± 0.27
saxpy/static workgroup=(1024,)/Float32/64 17.4 ± 3.8 μs 13.8 ± 6.1 μs 1.27 ± 0.63
saxpy/static workgroup=(1024,)/Float32/65536 0.092 ± 0.0097 ms 0.0899 ± 0.007 ms 1.02 ± 0.13
saxpy/static workgroup=(1024,)/Float64/1024 17 ± 2.6 μs 16.2 ± 2.6 μs 1.04 ± 0.23
saxpy/static workgroup=(1024,)/Float64/1048576 1.73 ± 0.76 ms 1.69 ± 0.62 ms 1.03 ± 0.59
saxpy/static workgroup=(1024,)/Float64/16384 0.057 ± 0.0066 ms 0.0571 ± 0.0049 ms 0.998 ± 0.14
saxpy/static workgroup=(1024,)/Float64/2048 16.1 ± 3.2 μs 16.1 ± 3.1 μs 1 ± 0.28
saxpy/static workgroup=(1024,)/Float64/256 16.4 ± 4.5 μs 15.3 ± 4.3 μs 1.07 ± 0.42
saxpy/static workgroup=(1024,)/Float64/262144 0.311 ± 0.038 ms 0.317 ± 0.038 ms 0.979 ± 0.17
saxpy/static workgroup=(1024,)/Float64/32768 0.0775 ± 0.0085 ms 0.0771 ± 0.0072 ms 1.01 ± 0.14
saxpy/static workgroup=(1024,)/Float64/4096 0.0429 ± 0.004 ms 0.0422 ± 0.0035 ms 1.02 ± 0.13
saxpy/static workgroup=(1024,)/Float64/512 15.1 ± 2.5 μs 17.7 ± 3.4 μs 0.855 ± 0.22
saxpy/static workgroup=(1024,)/Float64/64 13.8 ± 0.85 μs 17.2 ± 4.5 μs 0.801 ± 0.22
saxpy/static workgroup=(1024,)/Float64/65536 0.112 ± 0.019 ms 0.11 ± 0.013 ms 1.02 ± 0.21
time_to_load 0.548 ± 0.013 s 0.532 ± 0.0098 s 1.03 ± 0.032
main f901796... main / f901796...
const/@Const/Float32/262144 9 allocs: 0.203 kB 9 allocs: 0.203 kB 1
const/@Const/Float32/65536 9 allocs: 0.203 kB 9 allocs: 0.203 kB 1
const/@Const/Float64/262144 9 allocs: 0.203 kB 9 allocs: 0.203 kB 1
const/@Const/Float64/65536 9 allocs: 0.203 kB 9 allocs: 0.203 kB 1
const/unmarked/Float32/262144 9 allocs: 0.203 kB 9 allocs: 0.203 kB 1
const/unmarked/Float32/65536 9 allocs: 0.203 kB 9 allocs: 0.203 kB 1
const/unmarked/Float64/262144 9 allocs: 0.203 kB 9 allocs: 0.203 kB 1
const/unmarked/Float64/65536 9 allocs: 0.203 kB 9 allocs: 0.203 kB 1
launch/3D static workgroup, dynamic ndrange 9 allocs: 0.219 kB 9 allocs: 0.219 kB 1
launch/3D static workgroup, static ndrange 9 allocs: 0.219 kB 9 allocs: 0.219 kB 1
launch/dynamic workgroup, dynamic ndrange 5 allocs: 0.0938 kB 5 allocs: 0.0938 kB 1
launch/dynamic workgroup, dynamic ndrange, workgroupsize given 5 allocs: 0.0938 kB 5 allocs: 0.0938 kB 1
launch/static workgroup, dynamic ndrange 5 allocs: 0.0938 kB 5 allocs: 0.0938 kB 1
launch/static workgroup, static ndrange 5 allocs: 0.0938 kB 5 allocs: 0.0938 kB 1
partition/dynamic workgroup, dynamic ndrange 2 allocs: 0.0625 kB 2 allocs: 0.0625 kB 1
partition/static workgroup, dynamic ndrange 2 allocs: 32 B 2 allocs: 32 B 1
partition/static workgroup, static ndrange 0 allocs: 0 B 0 allocs: 0 B
saxpy/default/Float16/1024 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/default/Float16/1048576 12 allocs: 0.25 kB 12 allocs: 0.25 kB 1
saxpy/default/Float16/16384 12 allocs: 0.25 kB 12 allocs: 0.25 kB 1
saxpy/default/Float16/2048 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/default/Float16/256 5 allocs: 0.0938 kB 5 allocs: 0.0938 kB 1
saxpy/default/Float16/262144 12 allocs: 0.25 kB 12 allocs: 0.25 kB 1
saxpy/default/Float16/32768 12 allocs: 0.25 kB 12 allocs: 0.25 kB 1
saxpy/default/Float16/4096 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/default/Float16/512 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/default/Float16/64 5 allocs: 0.0938 kB 5 allocs: 0.0938 kB 1
saxpy/default/Float16/65536 12 allocs: 0.25 kB 12 allocs: 0.25 kB 1
saxpy/default/Float32/1024 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/default/Float32/1048576 12 allocs: 0.25 kB 12 allocs: 0.25 kB 1
saxpy/default/Float32/16384 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/default/Float32/2048 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/default/Float32/256 5 allocs: 0.0938 kB 5 allocs: 0.0938 kB 1
saxpy/default/Float32/262144 12 allocs: 0.25 kB 12 allocs: 0.25 kB 1
saxpy/default/Float32/32768 12 allocs: 0.25 kB 12 allocs: 0.25 kB 1
saxpy/default/Float32/4096 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/default/Float32/512 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/default/Float32/64 5 allocs: 0.0938 kB 5 allocs: 0.0938 kB 1
saxpy/default/Float32/65536 12 allocs: 0.25 kB 12 allocs: 0.25 kB 1
saxpy/default/Float64/1024 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/default/Float64/1048576 12 allocs: 0.25 kB 12 allocs: 0.25 kB 1
saxpy/default/Float64/16384 12 allocs: 0.25 kB 8 allocs: 0.141 kB 1.78
saxpy/default/Float64/2048 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/default/Float64/256 5 allocs: 0.0938 kB 5 allocs: 0.0938 kB 1
saxpy/default/Float64/262144 12 allocs: 0.25 kB 12 allocs: 0.25 kB 1
saxpy/default/Float64/32768 12 allocs: 0.25 kB 12 allocs: 0.25 kB 1
saxpy/default/Float64/4096 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/default/Float64/512 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/default/Float64/64 5 allocs: 0.0938 kB 5 allocs: 0.0938 kB 1
saxpy/default/Float64/65536 12 allocs: 0.25 kB 12 allocs: 0.25 kB 1
saxpy/static workgroup=(1024,)/Float16/1024 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/static workgroup=(1024,)/Float16/1048576 12 allocs: 0.25 kB 12 allocs: 0.25 kB 1
saxpy/static workgroup=(1024,)/Float16/16384 12 allocs: 0.25 kB 12 allocs: 0.25 kB 1
saxpy/static workgroup=(1024,)/Float16/2048 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/static workgroup=(1024,)/Float16/256 5 allocs: 0.0938 kB 5 allocs: 0.0938 kB 1
saxpy/static workgroup=(1024,)/Float16/262144 12 allocs: 0.25 kB 12 allocs: 0.25 kB 1
saxpy/static workgroup=(1024,)/Float16/32768 12 allocs: 0.25 kB 8 allocs: 0.141 kB 1.78
saxpy/static workgroup=(1024,)/Float16/4096 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/static workgroup=(1024,)/Float16/512 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/static workgroup=(1024,)/Float16/64 5 allocs: 0.0938 kB 5 allocs: 0.0938 kB 1
saxpy/static workgroup=(1024,)/Float16/65536 12 allocs: 0.25 kB 12 allocs: 0.25 kB 1
saxpy/static workgroup=(1024,)/Float32/1024 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/static workgroup=(1024,)/Float32/1048576 12 allocs: 0.25 kB 12 allocs: 0.25 kB 1
saxpy/static workgroup=(1024,)/Float32/16384 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/static workgroup=(1024,)/Float32/2048 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/static workgroup=(1024,)/Float32/256 5 allocs: 0.0938 kB 5 allocs: 0.0938 kB 1
saxpy/static workgroup=(1024,)/Float32/262144 12 allocs: 0.25 kB 12 allocs: 0.25 kB 1
saxpy/static workgroup=(1024,)/Float32/32768 12 allocs: 0.25 kB 12 allocs: 0.25 kB 1
saxpy/static workgroup=(1024,)/Float32/4096 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/static workgroup=(1024,)/Float32/512 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/static workgroup=(1024,)/Float32/64 5 allocs: 0.0938 kB 5 allocs: 0.0938 kB 1
saxpy/static workgroup=(1024,)/Float32/65536 12 allocs: 0.25 kB 12 allocs: 0.25 kB 1
saxpy/static workgroup=(1024,)/Float64/1024 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/static workgroup=(1024,)/Float64/1048576 12 allocs: 0.25 kB 12 allocs: 0.25 kB 1
saxpy/static workgroup=(1024,)/Float64/16384 12 allocs: 0.25 kB 8 allocs: 0.141 kB 1.78
saxpy/static workgroup=(1024,)/Float64/2048 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/static workgroup=(1024,)/Float64/256 5 allocs: 0.0938 kB 5 allocs: 0.0938 kB 1
saxpy/static workgroup=(1024,)/Float64/262144 12 allocs: 0.25 kB 12 allocs: 0.25 kB 1
saxpy/static workgroup=(1024,)/Float64/32768 12 allocs: 0.25 kB 12 allocs: 0.25 kB 1
saxpy/static workgroup=(1024,)/Float64/4096 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/static workgroup=(1024,)/Float64/512 8 allocs: 0.141 kB 8 allocs: 0.141 kB 1
saxpy/static workgroup=(1024,)/Float64/64 5 allocs: 0.0938 kB 5 allocs: 0.0938 kB 1
saxpy/static workgroup=(1024,)/Float64/65536 12 allocs: 0.25 kB 12 allocs: 0.25 kB 1
time_to_load 0.2 k allocs: 11.8 kB 0.2 k allocs: 11.8 kB 1

Benchmark Plots

A plot of the benchmark results have been uploaded as an artifact to the workflow run for this PR.
Go to "Actions"->"Benchmark a pull request"->[the most recent run]->"Artifacts" (at the bottom).

@vchuravy
vchuravy merged commit 921ca81 into main Oct 4, 2026
66 of 69 checks passed
@vchuravy
vchuravy deleted the vc/pocl-steprange-checkbounds branch October 4, 2026 08:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant