[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