[clang] [llvm] [InstCombine] Combine ((ext(A) * ext(B)) >> N) -> ext(mulh(A, B)). (PR #224311)

Ricardo Jesus via cfe-commits cfe-commits at lists.llvm.org
Sat Sep 19 02:11:54 PDT 2026


rj-jesus wrote:

> Without the default cost-model committed this was looking pretty bad on both Arm and AArch64, but with it it seemed OK overall. (There are lots of healthy improvements). I don't think our Neon mulh optimization are as good as they could be as they came up less frequently in DAG before this.

Yeah #224002 should be merged first (now done). Are you aware of any other tidy-ups we should also do? Unsigned mul overflow checks may be one (https://godbolt.org/z/Y1nY9Gb7v), and the AArch64-specific costs as you wrote in the other PR.

> Looks like SLPVectorizer is not ready :)

I think that failure was unrelated, but the recently added default costs could expose other issues. 

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


More information about the cfe-commits mailing list