[all-commits] [llvm/llvm-project] ab6b48: DAG: Avoid stack lowering if bitcast has an illega...
Matt Arsenault via All-commits
all-commits at lists.llvm.org
Sun Jan 15 09:37:26 PST 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: ab6b48b7116d118131e7ef459e4d234b4366564f
https://github.com/llvm/llvm-project/commit/ab6b48b7116d118131e7ef459e4d234b4366564f
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2023-01-15 (Sun, 15 Jan 2023)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.ll
M llvm/test/CodeGen/AMDGPU/copy-illegal-type.ll
M llvm/test/CodeGen/AMDGPU/copy-to-reg-scc-clobber.ll
M llvm/test/CodeGen/AMDGPU/flat_atomics_i64.ll
M llvm/test/CodeGen/AMDGPU/global_atomics_i64.ll
M llvm/test/CodeGen/AMDGPU/insert_vector_dynelt.ll
M llvm/test/CodeGen/AMDGPU/select.f16.ll
M llvm/test/CodeGen/AMDGPU/v_madak_f16.ll
M llvm/test/CodeGen/AMDGPU/vector_shuffle.packed.ll
Log Message:
-----------
DAG: Avoid stack lowering if bitcast has an illegal vector result type
A bitcast of <10 x i32> to <5 x i64> was ending up on the
stack. Instead of doing that, handle the case where the new type
doesn't evenly divide but the elements do. Extract the individual
elements and pad with undef.
Avoids stack usage for bitcasts involving <5 x i64>. In some of these
cases, later optimizations actually eliminated the stack objects but
left behind the unused temporary stack object to final emission.
Fixes: SWDEV-377548
More information about the All-commits
mailing list