If scalar truncates are free, attempt to pre-truncate build_vectors source operands.
Only attempt to do this before legalization as we often end up with truncations/extensions during build_vector lowering.
Paths
| Differential D59654
[DAGCombiner] Fold truncate(build_vector(x,y)) -> build_vector(truncate(x),truncate(y)) ClosedPublic Authored by RKSimon on Mar 21 2019, 10:35 AM.
Details Summary If scalar truncates are free, attempt to pre-truncate build_vectors source operands. Only attempt to do this before legalization as we often end up with truncations/extensions during build_vector lowering.
Diff Detail
Event TimelineThis revision is now accepted and ready to land.Mar 26 2019, 11:51 AM Closed by commit rL357161: [DAGCombiner] Fold truncate(build_vector(x,y)) -> build_vector(truncate(x)… (authored by RKSimon). · Explain WhyMar 28 2019, 4:36 AM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 192607 llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
llvm/trunk/test/CodeGen/X86/bool-vector.ll
llvm/trunk/test/CodeGen/X86/known-signbits-vector.ll
|