If we're splitting the 512-bit vector anyway and we have zero/sign bits, then we might as well use pack instructions to concat and truncate at once.
Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM
| Paths 
 |  Differential  D65904  
[X86] Allow pack instructions to be used for 512->256 truncates when -mprefer-vector-width=256 is causing 512-bit vectors to be split ClosedPublic Authored by craig.topper on Aug 7 2019, 1:59 PM. 
Details Summary If we're splitting the 512-bit vector anyway and we have zero/sign bits, then we might as well use pack instructions to concat and truncate at once. 
Diff Detail 
 Event TimelineThis revision is now accepted and ready to land.Aug 7 2019, 2:06 PM Closed by commit rL368210: [X86] Allow pack instructions to be used for 512->256 truncates when -mprefer… (authored by ctopper).  ·  Explain WhyAug 7 2019, 2:15 PM This revision was automatically updated to reflect the committed changes. 
Revision Contents 
 
Diff 213995 llvm/trunk/lib/Target/X86/X86ISelLowering.cpp
 
 llvm/trunk/test/CodeGen/X86/min-legal-vector-width.ll
 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||