[PATCH] D30390: [X86] Use APInt instead of SmallBitVector for tracking Zeroable elements in shuffle lowering

Simon Pilgrim via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 27 06:24:52 PST 2017


RKSimon accepted this revision.
RKSimon added a comment.
This revision is now accepted and ready to land.

Looks fine to me with a couple of minor suggestions.



================
Comment at: lib/Target/X86/X86ISelLowering.cpp:8104
+        if (Val == 0)
+          Zeroable.setBit(i);
       } else if (ConstantFPSDNode *Cst = dyn_cast<ConstantFPSDNode>(Op)) {
----------------
How useful would it be to change APInt::setBit(int pos) to APInt::setBit(int pos, bool val = true)?


================
Comment at: lib/Target/X86/X86ISelLowering.cpp:26827
 
-    if (Zeroable.any() &&
+    if (Zeroable != 0 &&
         matchVectorShuffleAsInsertPS(V1, V2, PermuteImm, Zeroable, Mask, DAG)) {
----------------
Zeroable.getBoolValue() ?


https://reviews.llvm.org/D30390





More information about the llvm-commits mailing list