[all-commits] [llvm/llvm-project] c90a8c: [WebAssembly] Handle wide mask reductions in perfo...
hanbeom via All-commits
all-commits at lists.llvm.org
Sun May 31 21:06:46 PDT 2026
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: c90a8c270328f5d88b7688f7a4eece8f2100f931
https://github.com/llvm/llvm-project/commit/c90a8c270328f5d88b7688f7a4eece8f2100f931
Author: hanbeom <kese111 at gmail.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
M llvm/test/CodeGen/WebAssembly/simd-setcc-reductions.ll
M llvm/test/CodeGen/WebAssembly/simd-vecreduce-bool.ll
Log Message:
-----------
[WebAssembly] Handle wide mask reductions in performSETCCCombine (#189358)
This extends `performSETCCCombine` to handle wide fixed-length mask
reductions such as `v32i1` and `v64i1`.
Small mask reductions already had good combines, but `v32i1`/`v64i1`
cases still fell back to scalar bitmask materialization. This change
adds a wide-mask path using chunked `wasm_anytrue` / `wasm_alltrue`,
while preserving the existing small-mask combines.
For example, a reduction like
%1 = icmp eq <32 x i16> %v, zeroinitializer
%2 = bitcast <32 x i1> %1 to i32
%3 = icmp ne i32 %2, 0
now avoids scalar bitmask reconstruction.
Fixed: https://github.com/llvm/llvm-project/issues/187294
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list