Home | History | Annotate | Download | only in SelectionDAG

Lines Matching defs:Trunc

158                          SDValue Trunc, SDValue ExtLoad, SDLoc DL,
720 SDValue Trunc = DAG.getNode(ISD::TRUNCATE, dl, VT, SDValue(ExtLoad, 0));
725 Trunc.getNode()->dump(&DAG);
728 DAG.ReplaceAllUsesOfValueWith(SDValue(Load, 0), Trunc);
732 AddToWorkList(Trunc.getNode());
2373 // fold (OP (trunc x), (trunc y)) -> (trunc (OP x, y)) (if trunc isn't free)
2535 Mask = Mask.trunc(N0Op0.getValueSizeInBits());
3642 // fold (shl x, (trunc (and y, c))) -> (shl x, (and (trunc y), (trunc c))).
3651 TruncC = TruncC.trunc(TruncVT.getSizeInBits());
3793 // -> (sign_extend (trunc (shl X, (sub (sub result_size, n), m)))) for
3821 SDValue Trunc = DAG.getNode(ISD::TRUNCATE, SDLoc(N0), TruncVT,
3824 N->getValueType(0), Trunc);
3829 // fold (sra x, (trunc (and y, c))) -> (sra x, (and (trunc y), (trunc c))).
3838 TruncC = TruncC.trunc(TruncVT.getScalarType().getSizeInBits());
3849 // fold (sra (trunc (sr x, c1)), c2) -> (trunc (sra x, c1+c2))
3850 // if c1 is equal to the number of bits the trunc removes
3926 // fold (srl (trunc (srl x, c1)), c2) -> 0 or (trunc (srl x, (add c1, c2)))
4017 // fold (srl x, (trunc (and y, c))) -> (srl x, (and (trunc y), (trunc c))).
4026 TruncC = TruncC.trunc(TruncVT.getSizeInBits());
4371 SDValue Trunc, SDValue ExtLoad, SDLoc DL,
4380 if (SOp == Trunc)
4421 // eliminate the trunc/sext pair.
4477 SDValue Trunc = DAG.getNode(ISD::TRUNCATE, SDLoc(N0),
4479 CombineTo(N0.getNode(), Trunc, ExtLoad.getValue(1));
4480 ExtendSetCCUses(SetCCs, Trunc, ExtLoad, SDLoc(N),
4536 SDValue Trunc = DAG.getNode(ISD::TRUNCATE,
4540 CombineTo(N0.getOperand(0).getNode(), Trunc, ExtLoad.getValue(1));
4541 ExtendSetCCUses(SetCCs, Trunc, ExtLoad, SDLoc(N),
4730 // Fold (zext (and (trunc x), cst)) -> (and x, cst),
4770 SDValue Trunc = DAG.getNode(ISD::TRUNCATE, SDLoc(N0),
4772 CombineTo(N0.getNode(), Trunc, ExtLoad.getValue(1));
4774 ExtendSetCCUses(SetCCs, Trunc, ExtLoad, SDLoc(N),
4807 SDValue Trunc = DAG.getNode(ISD::TRUNCATE,
4811 CombineTo(N0.getOperand(0).getNode(), Trunc, ExtLoad.getValue(1));
4812 ExtendSetCCUses(SetCCs, Trunc, ExtLoad, SDLoc(N),
4961 // Fold (aext (and (trunc x), cst)) -> (and x, cst)
4962 // if the trunc is not free.
5000 SDValue Trunc = DAG.getNode(ISD::TRUNCATE, SDLoc(N0),
5002 CombineTo(N0.getNode(), Trunc, ExtLoad.getValue(1));
5003 ExtendSetCCUses(SetCCs, Trunc, ExtLoad, SDLoc(N),
5181 // then the result of the shift+trunc is zero/undef (handled elsewhere).
5425 // Fold extract-and-trunc into a narrow extract. For example:
5465 // (2xi32 trunc (bitcast ((4xi32)buildvector x, x, y, y) 2xi64)) to
5497 // For example "trunc (or (shl x, 8), y)" // -> trunc y
5514 // fold (trunc (concat ... x ...)) -> (concat ..., (trunc x), ...)),
5877 APInt ThisVal = OpVal.trunc(DstBitSize);
6821 SDNode *Trunc = 0;
6824 Trunc = N1.getNode();
6869 if (Trunc) {
6870 removeFromWorkList(Trunc);
6871 DAG.DeleteNode(Trunc);
6883 if (Trunc)
7717 APInt NewImm = (Imm & Mask).lshr(ShAmt).trunc(NewBW);
8557 // If this is an FP_ROUND or TRUNC followed by a store, fold this into a