[llvm] [DemandedBits] Support non-constant shift amounts for funnel shifts (PR #180569)

Panagiotis Karouzakis via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 4 03:06:12 PST 2026


karouzakisp wrote:

> Looks like this has no hits on llvm-opt-benchmark. Can you please provide some motivation for why it is practically useful to implement demanded bits support for non-constant funnel shifts?

That's correct.

After I've added statistics, I found ~200 hits across several real-world projects that belong to performance-critical domains. 

The projects include:

ClamAV (LLVM test-suite), OpenSSL, LibSodium, ngtcp2, ffmpeg, and zstd.

These correspond to the following application areas:

Antivirus/Security: ClamAV,
Cryptography: LibSodium, OpenSSL,
Networking: ngtcp2,
Compression: zstd.

This isn't an exhaustive search, so there might be more real-world projects that contain similar patterns.

Given the presence of these operations in perfomance critical domains, the patch can enable additional simplifications. 

https://github.com/llvm/llvm-project/pull/180569


More information about the llvm-commits mailing list