Home | History | Annotate | Download | only in SelectionDAG

Lines Matching defs:Undef

740     // FIXME: We blindly ignore splats which include undef which is overly
1592 // fold (add x, undef) -> undef
1593 if (N0.getOpcode() == ISD::UNDEF)
1595 if (N1.getOpcode() == ISD::UNDEF)
1889 // If either operand of a sub is undef, the result is undef
1890 if (N0.getOpcode() == ISD::UNDEF)
1892 if (N1.getOpcode() == ISD::UNDEF)
1974 // fold (mul x, undef) -> 0
1975 if (N0.getOpcode() == ISD::UNDEF || N1.getOpcode() == ISD::UNDEF)
2168 // undef / X -> 0
2169 if (N0.getOpcode() == ISD::UNDEF)
2171 // X / undef -> undef
2172 if (N1.getOpcode() == ISD::UNDEF)
2219 // undef / X -> 0
2220 if (N0.getOpcode() == ISD::UNDEF)
2222 // X / undef -> undef
2223 if (N1.getOpcode() == ISD::UNDEF)
2261 // undef % X -> 0
2262 if (N0.getOpcode() == ISD::UNDEF)
2264 // X % undef -> undef
2265 if (N1.getOpcode() == ISD::UNDEF)
2314 // undef % X -> 0
2315 if (N0.getOpcode() == ISD::UNDEF)
2317 // X % undef -> undef
2318 if (N1.getOpcode() == ISD::UNDEF)
2339 // fold (mulhs x, undef) -> 0
2340 if (N0.getOpcode() == ISD::UNDEF || N1.getOpcode() == ISD::UNDEF)
2375 // fold (mulhu x, undef) -> 0
2376 if (N0.getOpcode() == ISD::UNDEF || N1.getOpcode() == ISD::UNDEF)
2652 if (N->getOpcode() == ISD::XOR && ShOp.getOpcode() != ISD::UNDEF) {
2673 if (N->getOpcode() == ISD::XOR && ShOp.getOpcode() != ISD::UNDEF) {
2704 // fold (and x, undef) -> 0
2705 if (N0.getOpcode() == ISD::UNDEF || N1.getOpcode() == ISD::UNDEF)
2811 // do not return N0, because undef node may exist in N0
2817 // do not return N1, because undef node may exist in N1
2899 // Undef bits can contribute to a possible optimisation if set, so
3372 // fold (or x, undef) -> -1
3374 (N0.getOpcode() == ISD::UNDEF || N1.getOpcode() == ISD::UNDEF)) {
3478 // do not return N0, because undef node may exist in N0
3484 // do not return N1, because undef node may exist in N1
3517 // Both shuffle indexes are undef. Propagate Undef.
3882 // fold (xor undef, undef) -> 0. This is a common idiom (misuse).
3883 if (N0.getOpcode() == ISD::UNDEF && N1.getOpcode() == ISD::UNDEF)
3885 // fold (xor x, undef) -> undef
3886 if (N0.getOpcode() == ISD::UNDEF)
3888 if (N1.getOpcode() == ISD::UNDEF)
4180 // fold (shl x, c >= size(x)) -> undef
4186 // fold (shl undef, x) -> 0
4187 if (N0.getOpcode() == ISD::UNDEF)
4345 // fold (sra x, (setge c, size(x))) -> undef
4488 // fold (srl x, c >= size(x)) -> undef
4544 // Shifting in all undef bits?
4961 // Skip BV elements until we find one that's not an UNDEF
4962 // After we find an UNDEF element, keep looping until we get to half the
4963 // length of the BV and see if all the non-undef nodes are the same.
4966 if (Cond->getOperand(i)->getOpcode() == ISD::UNDEF)
4978 if (Cond->getOperand(i)->getOpcode() == ISD::UNDEF)
5265 } else if (SCC->getOpcode() == ISD::UNDEF) {
5266 // When the condition is UNDEF, just return the first operand. This is
5332 if (Op->getOpcode() == ISD::UNDEF) {
6324 // then the result of the shift+trunc is zero/undef (handled elsewhere).
6440 if (isa<ConstantSDNode>(N0) || N0.getOpcode() == ISD::UNDEF)
6543 if (Op->getOpcode() == ISD::UNDEF) {
6706 // where ... are all 'undef'.
6715 if (X.getOpcode() != ISD::UNDEF) {
6720 // Stop if more than one members are non-undef.
6939 /// We know that BV is a build_vector node with Constant, ConstantFP or Undef
7015 if (Op.getOpcode() == ISD::UNDEF) continue;
7040 if (BV->getOperand(i).getOpcode() == ISD::UNDEF) {
9006 SDValue Undef = DAG.getUNDEF(N->getValueType(0));
9018 Undef.getNode()->dump(&DAG);
9021 DAG.ReplaceAllUsesOfValueWith(SDValue(N, 0), Undef);
9271 if (Origin->getOffset().getOpcode() != ISD::UNDEF)
10204 // Do not handle stores to undef base pointers.
10205 if (BasePtr.Base.getOpcode() == ISD::UNDEF)
10613 // Turn 'store undef, Ptr' -> nothing.
10614 if (Value.getOpcode() == ISD::UNDEF && ST->isUnindexed())
10833 // If the inserted element is an UNDEF, just use the input vector.
10834 if (InVal.getOpcode() == ISD::UNDEF)
10869 // Check that the operand is a BUILD_VECTOR (or UNDEF, which can essentially
10878 } else if (InVec.getOpcode() == ISD::UNDEF) {
11017 // Extracting an undef index is undef.
11144 // If Idx was -1 above, Elt is going to be -1, so just return undef.
11179 // Ignore undef inputs.
11180 if (In.getOpcode() == ISD::UNDEF) continue;
11235 Cast.getOpcode() == ISD::UNDEF) && "Invalid cast opcode");
11237 if (Cast.getOpcode() == ISD::UNDEF)
11278 if (Opc == ISD::UNDEF)
11324 if (In.getOpcode() == ISD::UNDEF)
11340 // A vector built entirely of undefs is undef.
11366 // Ignore undef inputs.
11367 if (Op.getOpcode() == ISD::UNDEF) continue;
11408 if (Opcode == ISD::UNDEF) {
11455 // If we only have one small input, widen it by adding undef values.
11490 // If VecIn2 is unused then change it to undef.
11522 SDValue ScalarUndef = DAG.getNode(ISD::UNDEF, DL, SVT);
11531 else if (ISD::UNDEF == Op.getOpcode())
11549 // Replace UNDEFs by another scalar UNDEF node, of the final desired type.
11552 ScalarUndef = DAG.getNode(ISD::UNDEF, DL, SVT);
11557 if (Op.getOpcode() == ISD::UNDEF)
11586 // Optimize concat_vectors where all but the first of the vectors are undef.
11588 return Op.getOpcode() == ISD::UNDEF;
11593 // Transform: concat_vectors(scalar, undef) -> scalar_to_vector(sclr).
11600 // concat_vectors(trunc(scalar), undef) -> scalar_to_vector(scalar)
11622 // Fold any combination of BUILD_VECTOR or UNDEF nodes into one BUILD_VECTOR.
11623 // We have already tested above for an UNDEF only concatenation.
11627 return ISD::UNDEF == Op.getOpcode() || ISD::BUILD_VECTOR == Op.getOpcode();
11653 if (ISD::UNDEF == Op.getOpcode())
11673 // Fold CONCAT_VECTORS of only bitcast scalars (or undef) to BUILD_VECTOR.
11687 if (Op.getOpcode() == ISD::UNDEF)
11885 // as concat(shuffle(A,B),UNDEF) if the shuffle doesn't set any of the high
11887 if (NumElemsPerConcat * 2 == NumElts && N1.getOpcode() == ISD::UNDEF &&
11942 // Canonicalize shuffle undef, undef -> undef
11943 if (N0.getOpcode() == ISD::UNDEF && N1.getOpcode() == ISD::UNDEF)
11948 // Canonicalize shuffle v, v -> v, undef
11960 // Canonicalize shuffle undef, v -> v, undef. Commute the shuffle mask.
11961 if (N0.getOpcode() == ISD::UNDEF) {
11977 // Remove references to rhs if it is undef
11978 if (N1.getOpcode() == ISD::UNDEF) {
12014 if (V->getOperand(i).getOpcode() != ISD::UNDEF) {
12048 // or components with undef.
12054 (N1.getOpcode() == ISD::UNDEF ||
12104 N1.getOpcode() == ISD::UNDEF && Level < AfterLegalizeVectorOps &&
12178 // shuffle(B, shuffle(A, Undef)) -> shuffle(shuffle(A, Undef), B)
12190 bool IsSV1Undef = SV1.getOpcode() == ISD::UNDEF;
12219 // Propagate Undef.
12230 // Propagate Undef.
12242 // Simple case where 'CurrentVec' is UNDEF.
12243 if (CurrentVec.getOpcode() == ISD::UNDEF) {
12269 // Check if all indices in Mask are Undef. In case, propagate Undef.
12476 if (FoldOp.getOpcode() != ISD::UNDEF &&
12489 // Fold (VBinOp (shuffle (A, Undef, Mask)), (shuffle (B, Undef, Mask)))
12490 // -> (shuffle (VBinOp (A, B)), Undef, Mask).
12493 LHS.getOperand(1).getOpcode() == ISD::UNDEF &&
12494 RHS.getOperand(1).getOpcode() == ISD::UNDEF) {