[llvm] [WebAssembly] Fold extended vector shifts by constant to extmul (PR #184007)

Sam Parker via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 4 00:02:02 PST 2026


================
@@ -195,3 +195,47 @@ define <8 x i32> @zext_sext_mul_v8i16(<8 x i16> %a, <8 x i16> %b) {
   %mul = mul <8 x i32> %wide.a, %wide.b
   ret <8 x i32> %mul
 }
+
+define <4 x i32> @sext_mul_v8i16_with_symmetric_constant_vector(<8 x i16> %v) {
----------------
sparker-arm wrote:

My suggestion would have been to to lower the v8i32 `shl` into a pair of `extmul_low` and `extmul_high` and returned them with `CONCAT_VECTORS`. But your suggested approach sounds like less effort, which sounds good to me!

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


More information about the llvm-commits mailing list