[llvm] [WebAssembly] Optimize away mask of 63 for sra and srl( zext (and i32 63))) (PR #170128)
Luke Lau via llvm-commits
llvm-commits at lists.llvm.org
Mon Dec 1 06:48:25 PST 2025
================
@@ -59,6 +74,22 @@ define i32 @srl_i32(i32 %v, i32 %x) {
ret i32 %a
}
+define i64 @srl_i64_zext(i64 %v, i32 %x) {
+; CHECK-LABEL: srl_i64_zext:
+; CHECK: .functype srl_i64_zext (i64, i32) -> (i64)
+; CHECK-NEXT: # %bb.0:
+; CHECK-NEXT: local.get 0
+; CHECK-NEXT: local.get 1
+; CHECK-NEXT: i64.extend_i32_u
+; CHECK-NEXT: i64.shr_u
+; CHECK-NEXT: # fallthrough-return
+ %m = and i32 %x, 63
+ %z = zext i32 %m to i64
+ %a = lshr i64 %v, %z
+ ret i64 %a
+}
+
+
----------------
lukel97 wrote:
Nit, extra newline
https://github.com/llvm/llvm-project/pull/170128
More information about the llvm-commits
mailing list