HappenLee opened a new pull request, #70513:
URL: https://github.com/apache/doris/pull/70513
### What problem does this PR solve?
Issue Number: None
Problem Summary:
Fixed-size numeric bucket hashing uses software lookup tables on ARM64 even
when the build enables the CRC extension. Use IEEE CRC32 intrinsics for 1-, 2-,
4- and 8-byte values in `HashUtil::zlib_crc32_fixed`.
Preserve zlib-compatible seed handling, byte order and incremental hash
results through the existing alignment-safe little-endian loads. Keep the table
implementation for targets without the ARM64 CRC extension and the zlib
fallback for other input sizes. Add byte-pattern and mixed-width chaining tests
against zlib.
### Release note
None
### Check List (For Author)
- Test
- [ ] Regression test
- [x] Unit Test
- All 14 `ZlibCRC32Fixed` tests passed in a separately linked x86_64
ASAN binary compiled from the current test translation unit.
- [x] Manual test (add detailed scripts or steps below)
- Cross-compiled an extracted-template harness for ARM64 with and
without `+crc`; verified `crc32b`, `crc32h`, `crc32w`, `crc32x` and the
software fallback.
- clang-format 16, build hygiene, diff checks and clang-tidy on
modified lines passed.
- The standard `./run-be-ut.sh -j 48 --run
--filter='ZlibCRC32Fixed.*'` build was blocked by existing
`ColumnVector`/`PODArray` constructor compilation errors in the local workspace.
- Native ARM64 correctness and performance testing remain pending.
No measured speedup is claimed.
- Behavior changed:
- [x] No.
- [ ] Yes.
- Does this need documentation?
- [x] No.
- [ ] Yes.
### Check List (For Reviewer who merge this PR)
- [ ] Confirm the release note
- [ ] Confirm test cases
- [ ] Confirm document
- [ ] Add branch pick label
--
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]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]