[all-commits] [llvm/llvm-project] caacf8: [DAG] Fold freeze(shuffle(x, y, m)) -> shuffle(freez...

Simon Pilgrim via All-commits all-commits at lists.llvm.org
Sat May 4 04:03:31 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: caacf8685ac49526103b748b6b439dea84c30274
      https://github.com/llvm/llvm-project/commit/caacf8685ac49526103b748b6b439dea84c30274
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-05-04 (Sat, 04 May 2024)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
    M llvm/test/CodeGen/SystemZ/pr60413.ll
    M llvm/test/CodeGen/X86/freeze-binary.ll
    M llvm/test/CodeGen/X86/sdiv_fix_sat.ll
    M llvm/test/CodeGen/X86/setcc-non-simple-type.ll
    M llvm/test/CodeGen/X86/widen-load-of-small-alloca-with-zero-upper-half.ll

  Log Message:
  -----------
  [DAG] Fold freeze(shuffle(x,y,m)) -> shuffle(freeze(x),freeze(y),m) (#90952)

If the shuffle mask contains no undef elements, then we can move the freeze through a shuffle node.

This requires special case handling to create a new ShuffleVectorSDNode.

Includes VECTOR_SHUFFLE support for isGuaranteedNotToBeUndefOrPoison  / canCreateUndefOrPoison.



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