Home | History | Annotate | Download | only in SelectionDAG

Lines Matching defs:Zext

1149     // fold (aext (zext x)) -> (zext x)
1757 // add (sext i1), X -> sub X, (zext i1)
1762 SDValue ZExt = DAG.getNode(ISD::ZERO_EXTEND, DL, VT, N0.getOperand(0));
1763 return DAG.getNode(ISD::SUB, DL, VT, N1, ZExt);
1771 SDValue ZExt = DAG.getNode(ISD::AND, DL, VT, N1.getOperand(0),
1773 return DAG.getNode(ISD::SUB, DL, VT, N0, ZExt);
1953 SDValue ZExt = DAG.getNode(ISD::AND, DL, VT, N1.getOperand(0),
1955 return DAG.getNode(ISD::ADD, DL, VT, N0, ZExt);
2712 // fold (OP (zext x), (zext y)) -> (zext (OP x, y))
3110 SDValue Zext = DAG.getNode(ISD::ZERO_EXTEND, SDLoc(N),
3114 CombineTo(N, Zext);
3119 CombineTo(N0.getNode(), Zext);
4099 // If the shift amount is sign/zext/any-extended just peel it off.
4189 // fold (not (zext (setcc x, y))) -> (zext (not (setcc x, y)))
4506 // fold (shl (zext (srl x, C)), C) -> (zext (shl (srl x, C), C))
4507 // Only fold this if the inner zext has no other uses to avoid increasing
5773 /// Try to fold a sext/zext/aext dag node into a ConstantSDNode or
5775 /// This function is called by the DAGCombiner when visiting sext/zext/aext
5792 // fold (zext c1) -> c1
5798 // fold (zext (build_vector AllConstants) -> (build_vector AllConstants)
5827 Elts.push_back(DAG.getConstant(C.zext(VTBits), DL, SVT));
5855 // Sign bits will be lost after a zext.
5918 // FIXME: Bring more similar combines here, common to sext/zext (maybe aext?).
5928 // fold (sext (load x)) to multiple smaller sextloads; same for zext.
6229 // fold (sext x) -> (zext x) if the sign bit is known zero.
6281 // fold (zext (zext x)) -> (zext x)
6282 // fold (zext (aext x)) -> (zext x)
6287 // fold (zext (truncate x)) -> (zext x) or
6288 // (zext (truncate x)) -> (truncate x)
6311 // fold (zext (truncate (load x))) -> (zext (smaller load x))
6312 // fold (zext (truncate (srl (load x), c))) -> (zext (small load (x+c/n)))
6325 zext (truncate x)) -> (and x, mask)
6327 // fold (zext (truncate (load x))) -> (zext (smaller load x))
6328 // fold (zext (truncate (srl (load x), c))) -> (zext (smaller load (x+c/n)))
6367 // Fold (zext (and (trunc x), cst)) -> (and x, cst),
6382 Mask = Mask.zext(VT.getSizeInBits());
6388 // fold (zext (load x)) -> (zext (truncate (zextload x)))
6418 // fold (zext (load x)) to multiple smaller zextloads.
6423 // fold (zext (and/or/xor (load x), cst)) ->
6424 // (and/or/xor (zextload x), (zext cst))
6457 Mask = Mask.zext(VT.getSizeInBits());
6473 // fold (zext (zextload x)) -> (zext (truncate (zextload x)))
6474 // fold (zext ( extload x)) -> (zext (truncate (zextload x)))
6510 // zext(setcc) -> (and (vsetcc), (1, 1, ...) for vectors.
6530 // zext(setcc x,y,cc) -> select_cc x, y, 1, 0, cc
6539 // (zext (shl (zext x), cst)) -> (shl (zext x), cst)
6579 // fold (aext (zext x)) -> (zext x)
6604 return TruncOp; // x iff x size == zext size.
6624 Mask = Mask.zext(VT.getSizeInBits());
7717 zextOrTrunc(SrcBitSize).zext(DstBitSize);
9015 // fold (sint_to_fp (zext (setcc x, y, cc))) ->
9073 // Fold (fp_to_{s/u}int ({s/u}int_to_fpx)) -> zext x, sext x, trunc x, or x
10184 /// [Inst = zext Slice to Ty2], only if SliceTy <> Ty2
10299 UsedBits = UsedBits.zext(BitWidth);
10363 // Check that the zext is legal if it needs one.
10470 // 3. Check that we do not have a zext in the way.
10706 "It takes more than a zext to get to the loaded slice!!");
11302 StoreInt |= C->getAPIntValue().zext(SizeInBits);
11304 StoreInt |= C->getValueAPF().bitcastToAPInt().zext(SizeInBits);
11710 // must not be zext, volatile, indexed, and they must be consecutive.
14331 // If the caller doesn't want us to simplify this into a zext of a compare,