mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-11-01 00:17:01 +00:00
Generate better select code by allowing the target to use scalar select, and not sign-extend.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163086 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -475,10 +475,9 @@ SDValue VectorLegalizer::ExpandSELECT(SDValue Op) {
|
||||
// What is the size of each element in the vector mask.
|
||||
EVT BitTy = MaskTy.getScalarType();
|
||||
|
||||
// Turn the mask into an all-one or all-zero word.
|
||||
Mask = DAG.getAnyExtOrTrunc(Mask, DL, BitTy);
|
||||
Mask = DAG.getNode(ISD::SIGN_EXTEND_INREG, DL, BitTy, Mask,
|
||||
DAG.getValueType(MVT::i1));
|
||||
Mask = DAG.getNode(ISD::SELECT, DL, BitTy, Mask,
|
||||
DAG.getConstant(APInt::getAllOnesValue(BitTy.getSizeInBits()), BitTy),
|
||||
DAG.getConstant(3, BitTy));
|
||||
|
||||
// Broadcast the mask so that the entire vector is all-one or all zero.
|
||||
SmallVector<SDValue, 8> Ops(NumElem, Mask);
|
||||
|
||||
Reference in New Issue
Block a user