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]

Reply via email to