Revert "[x86] fold vector (X > -1) & Y to shift+andn"
This casued assertion failures: llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:9446: void llvm::SelectionDAG::ReplaceAllUsesWith(llvm::SDNode *, llvm::SDNode *): Assertion `(!From->hasAnyUseOfValue(i) || From->getValueType(i) == To->getValueType(i)) && "Cannot use this version of ReplaceAllUsesWith!"' failed. See comment on the code review. (Had to update some expectations in test/CodeGen/X86/vselect-zero.ll manually due to other changes having landed after the reverted one.) > and (pcmpgt X, -1), Y --> pandn (vsrai X, BitWidth-1), Y > > This avoids the -1 constant vector in favor of an arithmetic shift > instruction if it exists (the ISA is still not complete after all > these years...). > > We catch this pattern late in combining by matching PCMPGT, so it > should not interfere with more general folds. > > Differential Revision: https://reviews.llvm.org/D113603 This reverts commit bf5748a1.
parent
9fec50f0
Please register or sign in to comment