[PATCH] D60375: [X86] combineVectorTruncationWithPACKUS - remove split/concatenation of mask

Simon Pilgrim via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Apr 7 05:25:25 PDT 2019


RKSimon created this revision.
RKSimon added reviewers: craig.topper, spatel.
Herald added a project: LLVM.

combineVectorTruncationWithPACKUS is currently splitting the upper bit bit masking into 128-bit subregs and then concatenating them back together.

This was originally done to avoid regressions that caused existing subregs to be concatenated to the larger type just for the AND masking before being extracted again. This was fixed by @spatel (notably rL303997 <https://reviews.llvm.org/rL303997> and rL347356 <https://reviews.llvm.org/rL347356>).

This also lets SimplifyDemandedBits do some further improvements before it hits the recursive depth limit.

My only annoyance with this is that we were broadcasting some xmm masks but we seem to have lost them by moving to ymm - but that's a known issue as the logic in lowerBuildVectorAsBroadcast isn't great.


Repository:
  rL LLVM

https://reviews.llvm.org/D60375

Files:
  lib/Target/X86/X86ISelLowering.cpp
  test/CodeGen/X86/masked_store_trunc.ll
  test/CodeGen/X86/psubus.ll
  test/CodeGen/X86/vector-trunc-math-widen.ll
  test/CodeGen/X86/vector-trunc-math.ll
  test/CodeGen/X86/vector-trunc-packus-widen.ll
  test/CodeGen/X86/vector-trunc-packus.ll
  test/CodeGen/X86/vector-trunc-ssat-widen.ll
  test/CodeGen/X86/vector-trunc-ssat.ll
  test/CodeGen/X86/vector-trunc-usat-widen.ll
  test/CodeGen/X86/vector-trunc-usat.ll
  test/CodeGen/X86/vector-trunc-widen.ll
  test/CodeGen/X86/vector-trunc.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D60375.194056.patch
Type: text/x-patch
Size: 233371 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190407/b8d44cb5/attachment-0001.bin>


More information about the llvm-commits mailing list