mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2026-10-28 16:18:23 +08:00
Vectorization was disabled for all integer types on aarch64 because it made `round(Int64)` 20% slower: NEON has no 64-bit multiply-high, so each lane goes through general purpose registers. Narrower types use widening multiplies instead, and `llvm-mca` predicts 4x to 20x fewer cycles per element on Neoverse V1. Keep it disabled for 64 bits and up. The perf test keeps one query per distinct code path, adding `Int32` and `Float32`, since only 10 random queries run per test. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
15 lines
1.1 KiB
XML
15 lines
1.1 KiB
XML
<test>
|
|
<query>SELECT count() FROM numbers(100000000) WHERE NOT ignore(round(toInt64(number), -2))</query>
|
|
<query>SELECT count() FROM numbers(100000000) WHERE NOT ignore(roundBankers(toInt64(number), -2))</query>
|
|
<query>SELECT count() FROM numbers(100000000) WHERE NOT ignore(round(toInt32(number), -2))</query>
|
|
<query>SELECT count() FROM numbers(100000000) WHERE NOT ignore(trunc(toInt32(number), -2))</query>
|
|
|
|
<query>SELECT count() FROM numbers(100000000) WHERE NOT ignore(round(toFloat64(number), -2))</query>
|
|
<query>SELECT count() FROM numbers(100000000) WHERE NOT ignore(roundBankers(toFloat64(number), 2))</query>
|
|
<query>SELECT count() FROM numbers(100000000) WHERE NOT ignore(round(toFloat32(number), -2))</query>
|
|
<query>SELECT count() FROM numbers(100000000) WHERE NOT ignore(floor(toFloat32(number)))</query>
|
|
|
|
<query>SELECT count() FROM numbers(10000000) WHERE NOT ignore(round(toDecimal128(number, 0), -2))</query>
|
|
<query>SELECT count() FROM numbers(10000000) WHERE NOT ignore(roundBankers(toDecimal128(number, 0), -2))</query>
|
|
</test>
|