[PATCH] D25691: [DAGCombiner] Add vector demanded elements support to computeKnownBits
Eli Friedman via llvm-commits
llvm-commits at lists.llvm.org
Mon Oct 17 15:56:38 PDT 2016
efriedma added a comment.
Maybe it would make more sense to do this in the IR version of computeKnownBits first? We should prefer to perform optimizations on IR where possible.
I think this approach makes sense; we don't want to track each individual bit of a very wide vector.
Comment at: lib/CodeGen/SelectionDAG/SelectionDAG.cpp:2101
+ SDValue Src = Op.getOperand(0);
+ uint64_t Idx = SubIdx->getZExtValue();
+ unsigned NumSrcElts = Src.getValueType().getVectorNumElements();
Need to check that SubIdx is less than the number of elements in the vector.
Comment at: lib/CodeGen/SelectionDAG/SelectionDAG.cpp:2549
+ APInt DemandedElt = APInt::getOneBitSet(VecVT.getVectorNumElements(),
+ computeKnownBits(InVec, KnownZero, KnownOne, DemandedElt, Depth + 1);
You need to check whether ConstEltNo is less than the number of elements in the vector.
More information about the llvm-commits