• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

vortex-data / vortex / 16051822264
88%

Build:
DEFAULT BRANCH: develop
Ran 03 Jul 2025 01:35PM UTC
Jobs 1
Files 580
Run time 4min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

03 Jul 2025 01:30PM UTC coverage: 77.879% (+0.02%) from 77.861%
16051822264

push

github

web-flow
feat: migrate take_primitive_simd to stable AVX2 kernel (#3579)

An implementation of TakeKernel for PrimitiveArray that uses AVX2
explicit instructions, falling back to Scalar. For non-x86_64 platforms
the `portable_simd` implementation is still loaded if nightly compiler
is being used.

This is part of the #3546 series of PRs.

Additionally: fixed a soundness issue with lack of bounds checking of
indices for portable_simd impl. This requires us to do a full scan of
the indices upfront before running the kernel to avoid out of bounds
memory access.

## Implementation

The biggest source of added complexity in this PR is the new `avx2`
module which implements a take kernel for primitive indices/values that
uses the AVX2 GATHER operation.

Intel ISA provides 4 different gather intrinsics:

- `_mm256_i32gather_epi32` -> gathering 8x 32bit values with 32bit
indices
- `_mm_i32gather_epi64` -> gathering 4x 64bit values with 32bit indices
- `_mm_i64gather_epi32` -> gathering 8x 32bit values with 32bit indices
- `_mm256_i32gather_epi32` -> gathering 8x 32bit values with 32bit
indices

We implement a generic inner loop with a trait parameter `GatherFn<I,
V>`, and allow specialization to insert the proper loop logic for each
valid index/value type combination.

---------

Signed-off-by: Andrew Duffy <andrew@a10y.dev>

171 of 202 new or added lines in 3 files covered. (84.65%)

43466 of 55812 relevant lines covered (77.88%)

55486.81 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
2
56.67
vortex-array/src/arrays/primitive/compute/take/portable.rs
12
81.54
vortex-array/src/arrays/primitive/compute/take/mod.rs
17
86.72
vortex-array/src/arrays/primitive/compute/take/avx2.rs
Jobs
ID Job ID Ran Files Coverage
1 16051822264.1 03 Jul 2025 01:35PM UTC 580
77.88
GitHub Action Run
Source Files on build 16051822264
  • Tree
  • List 580
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #16051822264
  • 105d6ab5 on github
  • Prev Build on develop (#16051309759)
  • Next Build on develop (#16053725807)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc