alamb opened a new pull request, #11192: URL: https://github.com/apache/arrow-rs/pull/11192
# Which issue does this PR close? N/A (follow up to review discussion on https://github.com/apache/arrow-rs/pull/10136) # Rationale for this change The "Test Release Mode" job in `arrow.yml` compiles with the default `x86_64` target, which only enables SSE2: ``` $ rustc --print cfg --target x86_64-unknown-linux-gnu | grep target_feature target_feature="fxsr" target_feature="sse" target_feature="sse2" ``` So any code gated on `cfg(target_feature = ...)`, such as the AVX / AVX2 paths in `arrow-arith/src/aggregate.rs` and `arrow-array/src/array/union_array.rs`, or the BMI2 `pext` path proposed in #10136, is never compiled or tested on CI. Only the portable fallbacks are. # What changes are included in this PR? Add `-C target-cpu=native` to `RUSTFLAGS` for the `linux-release-test` job, so the low level crates it already tests in release mode are built with every instruction set extension of the runner CPU. Notes: - `native` means the exact feature set depends on which runner model the job lands on. All GitHub hosted x86 runners support at least `x86-64-v3` (AVX2, BMI2), so `-C target-cpu=x86-64-v3` would be a reproducible alternative if we prefer that. - The flag is appended to the `RUSTFLAGS` that `setup-builder` exports via `GITHUB_ENV`, and only affects this one job. # Are these changes tested? By CI: this job should now build and run the tests with the target features enabled. # Are there any user-facing changes? No -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
