forked from llvm/llvm-project
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
DAG: Avoid breaking legal vector_shuffle with multiple uses (llvm#123712
) 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.
- Loading branch information
Showing
10 changed files
with
1,763 additions
and
2,325 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
280 changes: 114 additions & 166 deletions
280
llvm/test/CodeGen/AMDGPU/shufflevector.v4f32.v2f32.ll
Large diffs are not rendered by default.
Oops, something went wrong.
272 changes: 129 additions & 143 deletions
272
llvm/test/CodeGen/AMDGPU/shufflevector.v4f32.v3f32.ll
Large diffs are not rendered by default.
Oops, something went wrong.
809 changes: 343 additions & 466 deletions
809
llvm/test/CodeGen/AMDGPU/shufflevector.v4f32.v4f32.ll
Large diffs are not rendered by default.
Oops, something went wrong.
280 changes: 114 additions & 166 deletions
280
llvm/test/CodeGen/AMDGPU/shufflevector.v4i32.v2i32.ll
Large diffs are not rendered by default.
Oops, something went wrong.
272 changes: 129 additions & 143 deletions
272
llvm/test/CodeGen/AMDGPU/shufflevector.v4i32.v3i32.ll
Large diffs are not rendered by default.
Oops, something went wrong.
809 changes: 343 additions & 466 deletions
809
llvm/test/CodeGen/AMDGPU/shufflevector.v4i32.v4i32.ll
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.