Add a combiner helper that replaces G_UNMERGE of big constants into direct
use of smaller constants.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Paths
| Differential D87166
[GlobalISel] Add G_UNMERGE(Cst) -> Cst1, Cst2, ... combine ClosedPublic Authored by qcolombet on Sep 4 2020, 2:31 PM.
Details Summary Add a combiner helper that replaces G_UNMERGE of big constants into direct
Diff Detail
Event Timelineqcolombet added a parent revision: D87117: [GlobalISel] Add G_UNMERGE_VALUES(G_MERGE_VALUES) combine.Sep 4 2020, 2:32 PM qcolombet added a child revision: D87174: [GlobalISel] Add `X,Y<dead> = G_UNMERGE Z` -> X = G_TRUNC Z.Sep 4 2020, 6:30 PM This revision is now accepted and ready to land.Sep 11 2020, 2:06 PM Closed by commit rGa36278c2f8b5: [GlobalISel] Add G_UNMERGE(Cst) -> Cst1, Cst2, ... combine (authored by qcolombet). · Explain WhySep 14 2020, 4:31 PM This revision was automatically updated to reflect the committed changes. qcolombet marked an inline comment as done.
Revision Contents
Diff 290047 llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
llvm/include/llvm/Target/GlobalISel/Combine.td
llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
llvm/test/CodeGen/AArch64/GlobalISel/combine-unmerge.mir
llvm/test/CodeGen/AMDGPU/GlobalISel/saddsat.ll
llvm/test/CodeGen/AMDGPU/GlobalISel/sdiv.i64.ll
llvm/test/CodeGen/AMDGPU/GlobalISel/srem.i64.ll
llvm/test/CodeGen/AMDGPU/GlobalISel/ssubsat.ll
llvm/test/CodeGen/AMDGPU/GlobalISel/udiv.i64.ll
llvm/test/CodeGen/AMDGPU/GlobalISel/urem.i64.ll
|
Should also handle G_FCONSTANT