[llvm] r363808 - [X86] Merge extract_subvector(*_EXTEND) and extract_subvector(*_EXTEND_VECTOR_INREG) handling. NFCI.
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Wed Jun 19 07:25:27 PDT 2019
Author: rksimon
Date: Wed Jun 19 07:25:27 2019
New Revision: 363808
URL: http://llvm.org/viewvc/llvm-project?rev=363808&view=rev
Log:
[X86] Merge extract_subvector(*_EXTEND) and extract_subvector(*_EXTEND_VECTOR_INREG) handling. NFCI.
Modified:
llvm/trunk/lib/Target/X86/X86ISelLowering.cpp
Modified: llvm/trunk/lib/Target/X86/X86ISelLowering.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp?rev=363808&r1=363807&r2=363808&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86ISelLowering.cpp Wed Jun 19 07:25:27 2019
@@ -43538,26 +43538,22 @@ static SDValue combineExtractSubvector(S
return DAG.getNode(X86ISD::VFPEXT, SDLoc(N), VT, InVec.getOperand(0));
}
}
- if ((InOpcode == ISD::ANY_EXTEND || InOpcode == ISD::ZERO_EXTEND ||
- InOpcode == ISD::SIGN_EXTEND) &&
+ if ((InOpcode == ISD::ANY_EXTEND ||
+ InOpcode == ISD::ANY_EXTEND_VECTOR_INREG ||
+ InOpcode == ISD::ZERO_EXTEND ||
+ InOpcode == ISD::ZERO_EXTEND_VECTOR_INREG ||
+ InOpcode == ISD::SIGN_EXTEND ||
+ InOpcode == ISD::SIGN_EXTEND_VECTOR_INREG) &&
VT.is128BitVector() &&
InVec.getOperand(0).getSimpleValueType().is128BitVector()) {
- unsigned ExtOp;
- switch(InOpcode) {
- default: llvm_unreachable("Unknown extension opcode");
+ unsigned ExtOp = InOpcode;
+ switch (InOpcode) {
case ISD::ANY_EXTEND: ExtOp = ISD::ANY_EXTEND_VECTOR_INREG; break;
case ISD::SIGN_EXTEND: ExtOp = ISD::SIGN_EXTEND_VECTOR_INREG; break;
case ISD::ZERO_EXTEND: ExtOp = ISD::ZERO_EXTEND_VECTOR_INREG; break;
}
return DAG.getNode(ExtOp, SDLoc(N), VT, InVec.getOperand(0));
}
- if ((InOpcode == ISD::ANY_EXTEND_VECTOR_INREG ||
- InOpcode == ISD::ZERO_EXTEND_VECTOR_INREG ||
- InOpcode == ISD::SIGN_EXTEND_VECTOR_INREG) &&
- VT.is128BitVector() &&
- InVec.getOperand(0).getSimpleValueType().is128BitVector()) {
- return DAG.getNode(InOpcode, SDLoc(N), VT, InVec.getOperand(0));
- }
}
return SDValue();
More information about the llvm-commits
mailing list