reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/CodeGen/SelectionDAG/DAGCombiner.cpp
18227   if (V.isUndef())
18237   if (isNullConstant(Index) && V.getOpcode() == ISD::EXTRACT_SUBVECTOR &&
18238       V.hasOneUse() && isa<ConstantSDNode>(V.getOperand(1))) {
18238       V.hasOneUse() && isa<ConstantSDNode>(V.getOperand(1))) {
18239     if (TLI.isExtractSubvectorCheap(NVT, V.getOperand(0).getValueType(),
18240                                     V.getConstantOperandVal(1)) &&
18242       return DAG.getNode(ISD::EXTRACT_SUBVECTOR, SDLoc(N), NVT, V.getOperand(0),
18243                          V.getOperand(1));
18249   if (isa<ConstantSDNode>(Index) && V.getOpcode() == ISD::BITCAST &&
18250       V.getOperand(0).getValueType().isVector()) {
18251     SDValue SrcOp = V.getOperand(0);
18254     unsigned DestNumElts = V.getValueType().getVectorNumElements();
18265                                          V.getOperand(0), NewIndex);
18278   if (V.getOpcode() == ISD::CONCAT_VECTORS && isa<ConstantSDNode>(Index) &&
18279       V.getOperand(0).getValueType() == NVT) {
18284     return V->getOperand(Idx / NumElems);
18287   V = peekThroughBitcasts(V);
18287   V = peekThroughBitcasts(V);
18290   if (V.getOpcode() == ISD::BUILD_VECTOR) {
18292       EVT InVT = V.getValueType();
18311             SDValue Src = V->getOperand(IdxVal);
18319               ExtractVT, SDLoc(N), V->ops().slice(IdxVal, NumElems));
18326   if (V.getOpcode() == ISD::INSERT_SUBVECTOR) {
18329     EVT SmallVT = V.getOperand(1).getValueType();
18335     auto *InsIdx = dyn_cast<ConstantSDNode>(V.getOperand(2));
18344         return DAG.getBitcast(NVT, V.getOperand(1));
18347           DAG.getBitcast(N->getOperand(0).getValueType(), V.getOperand(0)),