[PATCH] D57247: Simply operands of masked stores and scatters based on demanded elements

Philip Reames via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 25 09:47:16 PST 2019


reames created this revision.
reames added reviewers: spatel, craig.topper, RKSimon.
Herald added subscribers: bollu, mcrosier.

If we know we're not storing a lane, we don't need to compute the lane.  This could be improved by using the undef element result to further prune the mask, but I want to separate that into its own change since it's relatively likely to expose other problems.

Question for reviewer: Surely there's a better way to go from an <N x i1> mask to the demanded elements bits?  One that works for more than just constant masks?

In the same spirit as https://reviews.llvm.org/D57177.  Once these two are in, will extend to gather and masked.load.  This is in the broader context of improving vector pointer instcombine under https://reviews.llvm.org/D57140.


https://reviews.llvm.org/D57247

Files:
  include/llvm/Analysis/VectorUtils.h
  lib/Analysis/VectorUtils.cpp
  lib/Transforms/InstCombine/InstCombineCalls.cpp
  lib/Transforms/InstCombine/InstCombineInternal.h
  test/Transforms/InstCombine/masked_intrinsics.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D57247.183565.patch
Type: text/x-patch
Size: 7795 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190125/4d187950/attachment.bin>


More information about the llvm-commits mailing list