[all-commits] [llvm/llvm-project] cf8120: DAG: Fix vector bin op scalarize defining a partia...

Matt Arsenault via All-commits all-commits at lists.llvm.org
Thu Jan 16 17:32:30 PST 2025


  Branch: refs/heads/users/arsenm/dag-fix-scalarize-bin-op-of-splats-overdefining-one-undef-operand
  Home:   https://github.com/llvm/llvm-project
  Commit: cf8120e4b585ef47831efb065361844afb1eac17
      https://github.com/llvm/llvm-project/commit/cf8120e4b585ef47831efb065361844afb1eac17
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2025-01-17 (Fri, 17 Jan 2025)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/test/CodeGen/AMDGPU/trunc-combine.ll

  Log Message:
  -----------
  DAG: Fix vector bin op scalarize defining a partially undef vector

This avoids some of the pending regressions after AMDGPU implements
isExtractVecEltCheap.

In a case like shl <value, undef>, splat k, because the second operand
was fully defined, we would fall through and use the splat value for the
first operand, losing the undef high bits. This would result in an additional
instruction to handle the high bits. Add some reduced testcases for different
opcodes for one of the regressions.


  Commit: a4a1f28bd58198a87ea192a870f81f70059829d7
      https://github.com/llvm/llvm-project/commit/a4a1f28bd58198a87ea192a870f81f70059829d7
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2025-01-17 (Fri, 17 Jan 2025)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  Log Message:
  -----------
  Just use insert_vector_elt


  Commit: 351dfdfb6c12e137f94a900afa111049accdc6b2
      https://github.com/llvm/llvm-project/commit/351dfdfb6c12e137f94a900afa111049accdc6b2
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2025-01-17 (Fri, 17 Jan 2025)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  Log Message:
  -----------
  Check if getNode folded to undef instead


  Commit: 70d7ce12230e70813a5eee17506609b7eabb29f8
      https://github.com/llvm/llvm-project/commit/70d7ce12230e70813a5eee17506609b7eabb29f8
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2025-01-17 (Fri, 17 Jan 2025)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  Log Message:
  -----------
  Don't bother counting the undefs

It folds to undef or a constant and seems to have the best result
anyway rather than overdefining by splatting the variable value.


  Commit: da27407f430cc6ef990880798a1a4971c2863ba4
      https://github.com/llvm/llvm-project/commit/da27407f430cc6ef990880798a1a4971c2863ba4
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2025-01-17 (Fri, 17 Jan 2025)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  Log Message:
  -----------
  Update comment


  Commit: c41456e1c0e8ded167f197b62e148912c657eb23
      https://github.com/llvm/llvm-project/commit/c41456e1c0e8ded167f197b62e148912c657eb23
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2025-01-17 (Fri, 17 Jan 2025)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  Log Message:
  -----------
  Fix comment again


Compare: https://github.com/llvm/llvm-project/compare/ea735413cd1f...c41456e1c0e8

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