[all-commits] [llvm/llvm-project] 5dcaee: DAG: Avoid breaking legal vector_shuffle with mult...

Matt Arsenault via All-commits all-commits at lists.llvm.org
Mon Jan 27 20:19:50 PST 2025


  Branch: refs/heads/users/arsenm/dag/avoid-breaking-multi-use-legal-shuffle-after-legalize
  Home:   https://github.com/llvm/llvm-project
  Commit: 5dcaeee65d34f9fdb2da870f5abf3ce2a28091b4
      https://github.com/llvm/llvm-project/commit/5dcaeee65d34f9fdb2da870f5abf3ce2a28091b4
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2025-01-28 (Tue, 28 Jan 2025)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/test/CodeGen/AMDGPU/shufflevector.v4f32.v2f32.ll
    M llvm/test/CodeGen/AMDGPU/shufflevector.v4f32.v3f32.ll
    M llvm/test/CodeGen/AMDGPU/shufflevector.v4f32.v4f32.ll
    M llvm/test/CodeGen/AMDGPU/shufflevector.v4i32.v2i32.ll
    M llvm/test/CodeGen/AMDGPU/shufflevector.v4i32.v3i32.ll
    M llvm/test/CodeGen/AMDGPU/shufflevector.v4i32.v4i32.ll
    M llvm/test/CodeGen/AMDGPU/shufflevector.v4p3.v2p3.ll
    M llvm/test/CodeGen/AMDGPU/shufflevector.v4p3.v3p3.ll
    M llvm/test/CodeGen/AMDGPU/shufflevector.v4p3.v4p3.ll

  Log Message:
  -----------
  DAG: Avoid breaking legal vector_shuffle with multiple uses

Previously this combine would undo AMDGPU's new custom legalization of
wide vector shuffles into 2 element pieces. The comment also
states that this combine is only done before legalization,
but the case with a build_vector source was unconditional.

We probably don't want to do this if the multiple uses are full
scalarization of the vector, but this seems to work well enough.
Scalarizing extracts should have folded out pre-legalize.


  Commit: 912a1879422a6c0325b53a7952937a3899d6b54c
      https://github.com/llvm/llvm-project/commit/912a1879422a6c0325b53a7952937a3899d6b54c
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2025-01-28 (Tue, 28 Jan 2025)

  Changed paths:
    M llvm/test/CodeGen/AMDGPU/shufflevector.v4f32.v2f32.ll
    M llvm/test/CodeGen/AMDGPU/shufflevector.v4f32.v3f32.ll
    M llvm/test/CodeGen/AMDGPU/shufflevector.v4f32.v4f32.ll
    M llvm/test/CodeGen/AMDGPU/shufflevector.v4i32.v2i32.ll
    M llvm/test/CodeGen/AMDGPU/shufflevector.v4i32.v3i32.ll
    M llvm/test/CodeGen/AMDGPU/shufflevector.v4i32.v4i32.ll
    M llvm/test/CodeGen/AMDGPU/shufflevector.v4p3.v2p3.ll
    M llvm/test/CodeGen/AMDGPU/shufflevector.v4p3.v3p3.ll
    M llvm/test/CodeGen/AMDGPU/shufflevector.v4p3.v4p3.ll

  Log Message:
  -----------
  Update tests for base commit changes


Compare: https://github.com/llvm/llvm-project/compare/30ea5347ae4a...912a1879422a

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