[all-commits] [llvm/llvm-project] 77434c: [DAGCombiner] Teach `reduceLoadWidth` to look past...

Henry Jiang via All-commits all-commits at lists.llvm.org
Thu Apr 30 09:38:02 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 77434ce19a48c519f8c90043e94fc602d6f86de9
      https://github.com/llvm/llvm-project/commit/77434ce19a48c519f8c90043e94fc602d6f86de9
  Author: Henry Jiang <henry_jiang2 at apple.com>
  Date:   2026-04-30 (Thu, 30 Apr 2026)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/test/CodeGen/AArch64/load-store-forwarding.ll
    A llvm/test/CodeGen/AArch64/reduce-load-width-freeze.ll
    M llvm/test/CodeGen/PowerPC/widen-vec-correctly-be.ll
    M llvm/test/CodeGen/RISCV/bitint-fp-conv-200.ll
    M llvm/test/CodeGen/X86/and-mask-variable.ll
    M llvm/test/CodeGen/X86/bit-manip-i256.ll
    M llvm/test/CodeGen/X86/bit-manip-i512.ll
    M llvm/test/CodeGen/X86/freeze-vector.ll
    A llvm/test/CodeGen/X86/reduce-load-width-freeze.ll
    M llvm/test/CodeGen/X86/select.ll
    M llvm/test/CodeGen/X86/shift-i128.ll
    M llvm/test/CodeGen/X86/shift-i256.ll
    M llvm/test/CodeGen/X86/shift-i512.ll

  Log Message:
  -----------
  [DAGCombiner] Teach `reduceLoadWidth` to look past `ISD:FREEZE` (#189317)

Teach `DAGCombiner::reduceLoadWidth` to look through freeze SDNodes when
narrowing loads. The narrowed result is then wrapped in freeze to
preserve the original semantics. Currently, several folds were blocked
by the freeze:
```
and(freeze(load), 0xff) -> AssertZext(freeze(zextload, i8))
trunc(freeze(load i32), i8) -> freeze(load i8)
sext_inreg(freeze(load), i8) -> AssertSext(freeze(sextload, i8))
```
and many other patterns due to legalizer or upstream IR passes inserting
freeze. This generally has the positive effects of narrowing the load
type.



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